|
Metasploit 在 2003 年发布时,渗透没人想到它会变成渗透测试领域的测试“瑞士军刀”。HD Moore 用 Perl 写了第一版,工具后来重写为 Ruby,框架现在整个框架有超过 2000 个模块。渗透但真正让它站住脚的测试,是工具那个 msfconsole 交互终端——你可以在里面加载模块、设置 payload、框架反弹 shell,渗透一条龙走完。测试我见过不少团队把 Metasploit 当唯一工具,工具结果遇到自定义协议或内存破坏类漏洞就卡住了。框架框架再强,渗透也只是测试框架。 渗透测试工具框架大概分三层。工具最底层是信息收集和漏洞扫描,Nmap、Masscan、Nuclei 这类。中间层是漏洞利用和载荷投递,Metasploit、Cobalt Strike、Sliver 算代表。最上层是后渗透和协作平台,比如 Empire、Mythic、以及国内常用的 Viper。每层解决的问题不一样,混着用容易乱。有人拿 Cobalt Strike 做扫描,纯属浪费——它的强项是 beacon 管理和横向移动,不是端口探测。 说说 Cobalt Strike。这玩意儿在红队圈子里几乎是标配,但它的授权费不便宜,而且 4.0 之后被破解得厉害,导致大量“野生”CS 服务器暴露在公网。2021 年有个统计,Shodan 上能搜到超过 3000 个未授权的 CS 团队服务器。攻击者反过来用这些服务器做跳板,或者直接投毒。工具本身没问题,问题在于人。我见过一个案例:某甲方买了 CS 正版,结果团队把 teamserver 部署在阿里云默认安全组里,密码还是弱口令。渗透测试工具框架的第一课,永远是环境隔离和访问控制。 开源框架里,Sliver 值得单独提。BishopFox 出品,Go 语言写的,支持 mTLS、WireGuard、DNS 等多种 C2 通道。它的 implant 生成比 Metasploit 灵活,而且没有 CS 那种“被重点盯防”的待遇。2022 年之后,很多红队开始从 CS 迁移到 Sliver,原因很简单:CS 的流量特征太明显了,EDR 厂商早就把它的默认 profile 摸透了。Sliver 允许你自定义 HTTP 头、URI 路径、甚至 TLS 指纹,对抗检测的能力强不少。但它的生态不如 CS 成熟,比如缺少现成的 BOF(Beacon Object File)库,很多后渗透操作得自己写。 再说 Mythic。这个框架的思路不太一样——它把 C2 和 agent 彻底解耦。你可以用 Apollo(C#)、Athena(.NET)、Apollo 的变种,甚至自己写 agent。Mythic 本身只提供 Web UI 和任务调度。这种设计的好处是:当某个 agent 被查杀时,换一个就行,不用重写整个框架。我去年在一个内网环境里用 Mythic + Apollo,EDR 完全没反应。但它的文档烂得可以,很多功能得翻源码才能搞明白。开源项目的通病。 国内的话,Viper 算是比较活跃的。它集成了 Metasploit 和 MSF 的 RPC 接口,加上自己的 UI 和模块管理。优点是中文文档全,上手快。缺点是底层还是 MSF,遇到 MSF 不支持的漏洞就没办法。而且 Viper 的更新节奏依赖作者个人,2019 年之后明显慢了。相比之下,Nuclei 这种专注扫描的框架反而更稳定——它的模板生态由社区维护,一天能更新几十个 POC。 选框架这事,别追新,别贪全。先搞清楚你的目标是什么:是合规扫描、红队评估、还是应急响应?合规扫描用 Nessus 或 OpenVAS 就够了,没必要上 CS。红队评估看团队习惯,CS 和 Sliver 各有拥趸。应急响应反而更依赖 Volatility、Velociraptor 这类取证框架。工具框架是手段,不是目的。我见过太多人花两周搭环境,结果实战时连一个弱口令都没扫出来。 最后提一句:所有框架都有指纹。Metasploit 的 meterpreter 流量、CS 的 beacon 心跳、Sliver 的默认证书,EDR 厂商都有检测规则。真正有效的渗透测试,往往是在框架基础上做二次开发——改流量特征、换 payload 编码、甚至自己写 loader。框架给你的是起点,不是终点。 |