渗透攻击工具

Metasploit 刚发布那会儿,渗透圈子里不少人觉得这玩意儿就是攻击工具个玩具。命令行界面,渗透模块零零散散,攻击工具跑个 exploit 还得手动配 payload。渗透谁能想到它后来成了渗透测试的攻击工具标配。我第一台笔记本上装的渗透就是 BackTrack 4,里面默认带了 MSF,攻击工具那时候连 `show options` 都敲不利索,渗透对着屏幕干瞪眼。攻击工具

渗透攻击工具的渗透本质其实不复杂——找漏洞,打进去,攻击工具拿权限。渗透听起来像三步走,攻击工具实际每一步都有一堆坑。渗透拿 Cobalt Strike 来说,它把 payload 投递、C2 通信、横向移动打包成一套流程,界面还做得挺好看。但真到实战里,EDR 一响,该凉还是凉。工具再顺手,也顶不住蓝队把 Sysmon 规则调得够细。

有人迷信“一键 getshell”那种东西。早些年确实有,比如某款针对 Struts2 的图形化工具,填个 URL 点一下,命令回显就弹出来了。现在?目标环境稍微正常点,WAF 先拦一道,流量加密再拦一道,主机层还有 HIDS 盯着。工具本身没变弱,是防守方的检测面铺开了。

讲个具体例子。去年帮朋友看一个站,ThinkPHP 5.0.23 的 RCE,网上 exp 一抓一大把。我用的是 thinkphp_rce.py,一个不到两百行的 Python 脚本。跑过去,返回 200,但命令没执行。换了个编码方式,还是不行。最后发现目标装了某国产安全狗,把 system、exec 这些函数名全列进黑名单了。绕过的办法也简单——用 file_put_contents 写个 webshell,再连上去。工具是死的,思路得活。

再说说内网渗透里常用的 Impacket。这套 Python 库把 SMB、WMI、LDAP 这些协议封装得挺顺手。psexec.py 和 wmiexec.py 我几乎每次打内网都会用。但它有个毛病——默认的流量特征太明显。psexec 会创建服务,wmiexec 会起 wmiprvse.exe 的子进程,稍微懂点的管理员看日志就能发现。后来我改用 atexec.py,走任务计划,动静小不少。工具选型这事儿,得看目标环境,没有银弹。

流量加密这块,C2 框架卷得厉害。Sliver 用 mTLS 和 WireGuard,Havoc 搞了个 Demon agent,Mythic 干脆把 payload 类型做成插件。防守方也没闲着,JA3 指纹、心跳间隔分析、域前置检测,一层接一层。攻防之间就是互相逼着对方升级。你换个加密方式,我更新个规则;你改个心跳周期,我调个阈值。

工具用多了容易产生依赖。有次我忘了带自己的笔记本,临时用别人的机器,里面只有个老版中国菜刀。当时觉得完了,啥都干不了。结果硬是用菜刀加手工注入,把那个站拿下来了。速度慢,但思路没断。工具是放大器,不是替代品。你脑子里没那条路径,给你全套 Cobalt Strike 也白搭。

最后提一嘴法律边界。这些工具本身不违法,Metasploit 在 GitHub 上开源,Cobalt Strike 也有试用版。但没授权去扫别人的站,那就是另一回事了。我见过有人拿 sqlmap 扫学校官网,被叫去喝茶的。工具没罪,用的人得清楚自己在干什么。