metasploit看
Metasploit 最让人上瘾的地方,是它把“漏洞利用”这件事从手工作业变成了流水线。2003 年 HD Moore 写第一版的时候,大概没想过这东西会变成渗透测试行业的默认入口。我见过太多人第一次打开 msfconsole 时那种表情——像是拿到了一把万能钥匙,虽然实际上他们连锁孔在哪都还没找到。
它的核心其实就三样东西:模块、载荷、还有那个看起来像 DOS 遗产的交互界面。模块分得很细,exploit 负责打进去,payload 负责进去之后干什么,auxiliary 负责扫描和嗅探,post 负责善后。这种拆分思路很工程化,好处是你可以只换 payload 不换 exploit,反过来也行。坏处是新手容易懵,不知道从哪下手。
我刚开始用的时候踩过一个坑。扫到一台 Windows Server 2008 的 SMB 漏洞,兴冲冲地 use exploit/windows/smb/ms17_010_eternalblue,设好 RHOSTS 和 LHOST,run 下去,session 倒是弹回来了,但是个普通用户权限。当时不知道 getsystem 这回事,对着 meterpreter 的提示符发呆。后来才明白,payload 的选择直接决定了你进去之后能走多远——windows/x64/meterpreter/reverse_tcp 和 windows/x64/shell/reverse_tcp 的差别,不是名字长短的问题。
Meterpreter 是 Metasploit 真正的杀手锏。它不是普通的 shell,而是一个注入到进程内存里的动态链接库,走的是内存加载,不碰硬盘。这意味着杀软很难抓到它——当然那是十年前的事了,现在 EDR 厂商早就把 meterpreter 的特征码翻来覆去研究透了。不过 migrate 到稳定进程、hashdump 抓本地哈希、portfwd 做端口转发这些操作,在授权测试里依然好用得让人不想换工具。
但 Metasploit 不是银弹。它的 exploit 库更新速度跟不上漏洞披露的节奏,很多 0day 或者半 0day 根本不会出现在里面。真正做红队的人,更多是把 MSF 当跳板或者后渗透框架用,初始访问往往靠钓鱼、靠供应链、靠自己写的 exp。我认识一个做金融行业渗透的朋友,他的原话是:“MSF 的 exploit 模块我只用三个,剩下的时间都在 meterpreter 里敲命令。”
还有一点常被忽略:Metasploit 的数据库。db_import 把 nmap 的 XML 结果导进去,hosts 和 services 命令一敲,整个攻击面就列出来了。配合 workspace 做项目隔离,比手动记笔记靠谱得多。可惜很多人连 db_status 都没跑过,上来就是 nmap -sV 然后手动抄 IP。
最后说个真实场景。去年帮一个客户做内网评估,他们的域控没打 MS17-010 补丁,但防火墙只开了 445 给几台跳板机。直接扫是扫不到的,得先拿下跳板机,再用 autoroute 加 socks4a 搭隧道,然后从 MSF 里穿过去打域控。整个过程像在玩解谜游戏,每一步都得算好路由和端口。Metasploit 在这里扮演的角色,更像是一个胶水层,把扫描、利用、隧道、后渗透粘在一起。没有它也能做,但效率至少砍一半。
所以看 Metasploit,别把它当神器,也别把它当玩具。它是一个框架,一个把零散技术点串起来的框架。用得好不好,取决于你对网络、对系统、对漏洞本身的理解有多深。工具永远只是工具。