常用的渗透测试工具
Nmap 扫出 10.10.10.5 的常用 445 端口开着,我顺手挂了 `-sV` 看一眼版本,透测SMBv1。试工那一刻基本不用再往下猜了——这台机器要么直接打 MS17-010,常用要么先匿名枚举共享目录碰运气。透测渗透测试做到后面你会发现,试工工具本身没什么神秘的常用,关键是透测你在什么场景下想起用它。
端口扫描这块,试工Nmap 是常用绕不开的。`nmap -sS -sV -O -p- 10.10.10.5` 这条命令我敲过不下几百次,透测SYN 半开扫描快,试工版本探测能直接告诉你对面跑的常用是 Apache 2.4.49 还是 2.4.50——后者带 CVE-2021-41773 路径穿越,前者没有。透测Masscan 适合大网段,试工扫 /16 的时候比 Nmap 快一个数量级,但精度差,通常先用 Masscan 圈出活主机,再拿 Nmap 细看。我习惯把结果导成 XML,`-oX scan.xml`,后面用 `searchsploit` 或者 Metasploit 的 db_import 直接吃进去。
说到 Metasploit,很多人觉得它臃肿。确实,启动要等半天,但它的价值在于把 exploit、payload、handler 串成了一条流水线。拿 MS17-010 举例,`use exploit/windows/smb/ms17_010_eternalblue`,set RHOSTS,set LHOST,run,三步完事。真正费时间的是前面判断目标到底打没打补丁——这时候 auxiliary 模块比 exploit 模块用得更多。我见过有人上来就 run,结果目标蓝屏重启,客户电话直接打过来。所以现在养成了习惯:先 `check`,再动手。
Web 方向,Burp Suite 是主力。Proxy 拦截改包只是基础,Intruder 跑字典才是日常。有一次测一个登录接口,返回包长度在 302 和 200 之间跳,说明用户名枚举是通的。挂上 Intruder,Sniper 模式跑 top100 用户名,按 Length 排序,admin 那行明显短一截——存在。接着拿 admin 去撞密码,Cluster bomb 模式,两个字典交叉,半小时出结果。Burp 的插件生态也实用,Logger++ 记录所有流量,Turbo Intruder 处理高并发场景比原生 Intruder 稳得多。
目录扫描用 dirsearch 或者 gobuster。`gobuster dir -u http://10.10.10.5 -w /usr/share/wordlists/dirb/common.txt -x php,html,txt` 这条命令能翻出不少东西。有次扫到一个 `/backup/` 目录,里面躺着 `db.sql.gz`,解压出来是整站数据库,管理员密码 MD5 没加盐,cmd5 一查就出来了。这种低级失误现在少了,但内网老系统里还是能碰到。
提权阶段,LinPEAS 和 WinPEAS 是标配。把脚本传上去,`chmod +x linpeas.sh && ./linpeas.sh`,输出里红色高亮的部分就是可能的突破口。SUID 文件、sudo 配置、cron 任务、内核版本,挨个看。有台 Ubuntu 16.04 的机器,LinPEAS 标出 `sudo -l` 里有个 `/usr/bin/find` 可以免密执行,直接 `sudo find . -exec /bin/sh \; -quit` 就 root 了。工具告诉你哪里有问题,但怎么利用还得自己琢磨。
密码破解方面,Hashcat 比 John 快,尤其是有 GPU 的时候。`hashcat -m 1000 ntlm.hash rockyou.txt` 跑 NTLM 哈希,一张 1080Ti 大概每秒 20 亿次。但真实环境里更常见的是抓不到哈希,只能靠 Responder 投毒。`responder -I eth0 -rdwv` 开着,等内网机器来查 WPAD,NTLMv2 哈希就到手了,再拿 Hashcat 跑 `-m 5600`。成功率取决于内网有没有人乱点东西,以及 LLMNR 开没开。
最后提一个容易被忽略的:BloodHound。AD 环境里,它把用户、组、ACL、会话关系画成图,哪条路径能走到 Domain Admin 一目了然。采集用 SharpHound,分析用 BloodHound 的 Neo4j 界面。有次客户说“我们域控很安全”,BloodHound 跑出来一条 `UserA -> GenericAll -> GroupB -> AdminTo -> DC` 的路径,三跳就到域管。工具不创造漏洞,它只是把已有的攻击路径摆到你面前。
工具终究是工具。同一把 Nmap,有人只扫端口,有人能结合版本号找到 CVE 再写进报告。区别不在命令敲得多熟,在于你脑子里有没有那张攻击路径图。









