渗透测试工具备忘录
本文翻译自 Penetration Testing Tools Cheat Sheet 。
简介
渗透测试工具备忘录记录渗透测试时常用的命令,更深入的信息推荐参考特定工具的帮助文档或 本站 其他备忘录。
本目录关注网络底层相关的渗透测试,除了少量sqlmap的命令和一些Web服务枚举外,基本不包含Web应用渗透测试的内容。关于Web应用测试,建议参考《黑客攻防技术宝典》,这本书不管是用作专门学习还是参考手册都是很棒的。
文中缺漏之处欢迎 推特 私戳。
更新日志:
17/02/2017 :更新文章,增加VPN,DNS隧道,VLAN hopping(跳跃攻击) 等内容。
开始前
网络配置
设置IP 地址
子网划分
公开来源情报
被动信息收集
DNS
WHOIS 枚举
查询DNS IP
查询MX记录
用DIG 查询域传送
DNS 域传送
邮件
Simply Email
使用Simply Email枚举所有所有网站(GitHub,目标站点等),配上代理或设置较长的访问间隔时间,这样就不会被Google发现是爬虫并用验证码拦住了。Simply Email还可以验证收集的邮件地址。
半主动信息收集
基本指纹识别
手动指纹识别/banner抓取
使用NC抓取banner
主动信息收集
DNS 爆破
DNSRecon
端口扫描
Nmap命令
更多命令,详见 Nmap备忘录 。
基本Nmap 命令:
别在外网采用T4
扫描,使用TCP
连接扫描时用T2
比较合适。T4
扫描用在低延迟高带宽的内部网络测试会更合适。但这也取决于目标设备,如果用T4/T5
扫他们,结果就可能不准确。总的来说,扫描越慢越好,也可以先快速扫描1000个目标方便上手测试,然后再慢慢扫其余的。
Nmap UDP扫描
UDP 协议扫描器
扫描文件中IP地址的所有服务
扫描特定UDP服务
其他主机发现
不使用nmap发现主机的方法:
枚举和攻击网络服务
用于识别/枚举网络服务的工具。
SAMB / SMB / Windows 域枚举
Samba枚举
SMB枚举工具
当然也可参考本站的 nbtscan 的速查表
SMB 版本指纹识别
寻找开放的SMB共享
枚举SMB用户
RID循环(RID Cycling )
Metasploit的RID循环攻击模块
手动测试空会话
NBTScan unixwiz
在Kali上安装使用:
LLMNR / NBT-NS欺骗
从网络中窃取凭证
使用Metasploit进行 LLMNR / NetBIOS请求
欺骗/毒化 LLMNR / NetBIOS请求:
抓取哈希
最后会得到NTLMv2 哈希,可以使用john或者hashcat破解。
Responder.py
你也可以选择使用 responder
注:整个渗透测试过程可以一直允许Responder.py
SNMP枚举工具
SNMP枚举工具有很多。
美化SNMP输出结果使易于阅读。
SNMPv3枚举工具
使用nmap识别SNMPv3服务器
Rory McCune 的脚本可以帮助自动化枚举SNMPv3的用户名枚举。
注意:下面的路径是Kali上Metasploit的SNMP v1和v2的攻击字典,更新的字典可以参考Daniel Miessler 在GitHub上的安全列表 。
远程服务枚举
这已是老生常谈,但为了本文内容的全面还是包含如下。
nmap -A
会进行下面列举的所有远程服务的枚举,所以这里只是顺便提及。
RSH 枚举
RSH运行命令
MetasploitRSH 登陆扫描
使用rusers显示已登陆用户
使用rlogin扫描整个子网
使用finger枚举
利用Solaris的bug显示所有已登录用户
rwho
使用nmap识别运行rwhod服务(513端口,UDP协议)的机器。
TLS&SSL 测试
testssl.sh
测试单一主机并将结果输出的HTML文件:
漏洞评估
在Kali Rolling上安装OpenVAS 8
确认openvas 正在运行:
通过https://127.0.0.1:9392
登陆openvas,密码是在安装时设置好的。
数据库渗透测试
攻击暴露在互联网上的数据库。
Oracle
安装 oscanner:
运行 oscanner:
Oracle TNS版本指纹识别
安装 tnscmd10g :
识别:
爆破Oracle账户
验证默认账户
对Oracle TNS 运行nmap脚本:
Oracle权限提升
利用条件:
Oracle必须暴露在互联网上
使用默认账户,如scott
简明流程:
创建函数
创建表 SYS.DUAL 的索引
刚刚建立的索引执行了SCOTT.DBA_X 函数
函数是被SYS用户执行的,因为表 SYS.DUAL 属于SYS用户
创建具有DBA权限的账户
下面的展示使用SCOTT用户,但其他默认的Oracle用户也是可以的。
使用NMAP NSE脚本验证oracle数据库中的默认账户:
使用脆弱账号登陆(假设你发现了一个)。
确认一个oracle用户的权限级别
Oracle权限提升和访问DBA
运行netcat,netcat -nvlp 443
。
运行查询语句
这时你应该拥有一个DBA用户,可以重新运行上面的命令来验证自己是否拥有DBA特权。
移除利用痕迹:
获取Oracle反弹shell:
MSSQL
枚举/发现
Nmap
Metasploit
爆破 MSSQL登陆
Metasploit MSSQL Shell
网络
Plink.exe 隧道
PuTTY Link 隧道
转发运程端口到本地地址:
跳板(Pivoting)
SSH 跳板(ssh Pivoting)
需在/etc/proxychains.conf
添加sock4 127.0.0.1 1010
利用SSH跳板跨越网络
需在/etc/proxychains.conf
添加sock4 127.0.0.1 1010
在/etc/proxychains.conf
添加sock4 127.0.0.1 1011
Meterpreter Pivoting
TTL 指纹识别
IPv4 速查
各类IP的地址范围
IPv4私有地址
IPv4子网速查表
和渗透测试关系不太大,但确实很有用。
VLAN hopping(跳跃攻击)
使用nccgroup 的脚本简化攻击过程
VPN测试工具
识别VPN服务器
扫描VPN服务器网段:
IKEForce
使用IKEForce枚举或对 VPN 服务器进行字典攻击.
安装:
使用IKEForce对IKE VPN 进行枚举:
使用 IKEForce 爆破 IKE VPN:
IKE 激进模式 PSK 破解
验证VPN服务器
使用 IKEForce 枚举来获得组ID
使用 ike-scan 从IKE 终端抓取 PSK 哈希
使用 psk-crack 破解哈希
Step 1: 验证IKE服务器
Step 2:使用IKEForce枚举组名
Step 3: 使用ike-scan抓取PSK哈希
Step 4: 使用psk-crack 破解PSK 哈希
高级psk-crack 选项:
PPTP Hacking
验证PPTP服务 ,它以TCP协议在1723端口监听
NMAP PPTP 指纹识别:
PPTP字典攻击
DNS 隧道
通过DNS传送数据来绕过防火墙。dns2cat支持和目标主机间 的上传和下载文件(数据或程序)操作。
攻击机器:
安装:
运行dnscat2:
目标机器:
https://downloads.skullsecurity.org/dnscat2/
https://github.com/lukebaggett/dnscat2-powershell/
BOF / Exploit
Exploit 搜索
寻找枚举主机/服务的exp
搜索EXP
安装exploit-db的本地备份:
在Kali上编译WIndows的exp
交叉编译Exploits
利用通用漏洞
利用Shellshock漏洞
一个用来寻找和利用Shellshock漏洞的攻击
cat file (查看文件内容)
Shell Shock 运行bind shell
Shell Shock 反弹shell
简单的本地Web服务器
使用Python命令运行本地Web服务,在接受反向shell和攻击目标机器是很方便。
挂载文件共享
怎样挂载 NFS / CIFS以进行 Windows 和Linux 的文件共享。
HTTP / HTTPS Web服务枚举
数据包侦测
用户名枚举
一些用来枚举目标系统用户名的手法。
SMB 用户枚举
SNMP 用户枚举
密码
字典
爆破服务
使用Hydra 爆破FTP
使用Hydra 爆破POP3
使用Hydra 爆破SMTP
使用 -t
限制并发连接数,如 -t 15
密码破解
渗透测试中用于密码破解的工具。
John The Ripper - JTR
Windows 渗透测试命令
See Windows Penetration Testing Commands.【待原文补充】
Linux 渗透测试命令
参考本站的Linux 命令速查表 ,该表提供了很多有用的命令。
编译EXP
Some notes on compiling exploits.【待原文补充】
判断C代码适用于Windows平台还是Linux
通过#include
的文件来判定
使用GCC编译Exploit
在64位的Kali上用GCC编译32位的EXP
很方便地在64位的攻击机器上交叉编译32位的二进制文件。
在 Linux上编译可运行于Windows的exe文件
SUID 二进制
通常具有SUID的 C二进制文件要求以超级用户登陆shell,您可以按需更新UID / GID和shell。
下面是一些可用的shell:
运行 /bin/bash的SUID C Shell
运行 /bin/sh的SUID C Shell
构建 SUID Shell 二进制
32位
反向Shells
参考 反向 Shell 速查表 。
TTY Shells
Tips / Tricks to spawn a TTY shell from a limited shell in Linux, useful for running commands like su
from reverse shells.
一些模拟出TTY终端窗口以突破shell限制的技巧,便于从反向shell上执行类似 su
的特殊命令。
用Python模拟 TTY Shell的技巧
用sh模拟交互式shell
用Perl模拟 TTY Shell
用Ruby模拟 TTY Shell
用Lua 模拟TTY Shell
从Vi模拟TTY Shell
用NMAP模拟TTY Shell
Metasploit 速查表
这是一个metasploit方便的速查手册。关于跳板技术可参看 Meterpreter Pivoting 。
Meterpreter Payloads
Windows 反向meterpreter payload
Windows VNC Meterpreter payload
Linux 反向Meterpreter payload
Meterpreter速查表
有用的meterpreter 命令。
常用Metasploit 模块
最常用的metasploit 模块。
远程Windows Metasploit 模块(exploits)
本地Windows Metasploit 模块(exploits)
辅助Metasploit 模块
Metasploit Powershell 模块
Windows 后渗透Metasploit 模块
Windows Metasploit 提权模块。
ASCII表速查
对Web应用渗透测试很有用,或者你被困在火星而需要和NASA通信。(梗自《火星救援》)
CISCO IOS(网际操作系统) 命令
收集一些有用的Cisco IOS 命令.
密码学
哈希长度
哈希例子
可以直接使用 hash-identifier 命令判断哈希类型,但这里还是举些例子。
SQLMap例子
小型 SQLMap 速查表:
Last updated