重生之我是AI人:让 AI 替我挖洞 — 从一次甲方任务聊起
TtTeam
2026年6月12日 14:00
海南
在小说阅读器读本章
去阅读
以下文章来源于威胁情报Z分析
,作者Gachong
威胁情报Z分析
.
国际网络安全威胁情报,地缘政治事件分析。
- 故事从\"翻车\"开始
2025年末,那会我还在甲方,接到领导指示要全面落实全自动化渗透测试。一开始挺乐观的。市面上的工具我都熟 — nmap 扫端口、sqlmap 注入、nuclei 跑模板、burp 抓包,这些是基本功。我心里的方案大概是写个 shell 脚本:nmap → nikto → nuclei → sqlmap,出报告,完事。写了三天,跑了一次,甲方回了一句:\"这报告跟你自己写有啥区别?工具拼凑痕迹太重,看不出'人'在判断。\"这句话戳到我了。我意识到一个问题:工具不会思考。sqlmap 不知道今天扫到的是电商站还是政府站,不知道该避开订单接口还是先打支付接口。它只管按规则发 payload。nuclei 跑完几千个模板,但如果目标用的是某个冷门框架 + 已知 0day,模板里压根没有 — 工具就放弃了。
我想,如果有个\"会思考的工具调度员\"就好了 — 它能看着目标的情况,临时决定:\"这家看起来是 PHP+ThinkPHP,试试 5.0.23 那条 RCE 链\";\"这个登录页似乎没有 CSRF token,顺手测一下认证绕过\";\"上次在 XX 系统上见过类似接口被绕过的 case,这次也试试\"。这个念头在脑子里转了一段时间。直到 LLM 工具调用变得足够稳定 — 便顺手把它造出来。它就是 Hati。
Hati — 名字取自北欧神话里追逐月亮的那头魔狼。每逢月夜,跨越天际追猎明月。我希望它能像狼一样,耐心地、不放过任何边角地追踪目标的每一寸攻击面,直到找到破绽。
- 真的能挖洞
先说结论 — 测试了一段时间,大概每周用来做实际项目。Hati 在 8 轮决策内,平均能在授权目标上确认 1-3 个真实漏洞,以中危、高危为主。
上个月的一次实战(已脱敏):用户输入\"对 http://testphp.vulnweb.com 渗透测试\"。
Web UI 上流式输出过程,大概 6 分钟:
它做的事情,我截几个关键节点:
● 00:00 启动,加载 47 个攻击技能到内存
● 00:08 调用 nmap 扫到 80 + 3306 端口开放
● 00:15 httpx 识别出 PHP + Apache + MySQL 技术栈
● 00:42 LLM 第一轮决策:\"目标有数据库端口,优先测 SQL 注入\" → 匹配 sqli-sql-injection 技能
● 01:30 LLM 适配,把通用模板改写成 /artists.php?artist=1' OR '1'='1
● 02:18 实际发包,响应里出现 MySQL syntax error 关键词 → 确认 SQL 注入
● 03:45 第二轮决策:\"首页有 search 框,顺手测个 XSS\"
● 05:20 生成 reports/20260601\_xxx\_target\_xxxxxxxx.md 报告
报告长这样:
值得补充的是,目前所有的ai自动化渗透工具,都无法完全替代人类,但他可以为我们提供一些思路或者做一些力所能及的工作,依托Hati打辅助,在最新的版本,作者也是拿到了一些成果,如sql注入类:
- 传统扫描器到底有啥不一样
可能有人会问:你这就是把 sqlmap 套了个 AI 外壳吧?
不一样。用三组对比来直观说明。
第一个不一样:能不能\"看菜吃饭\"
传统扫描器是无差别扫。nuclei -u target.com 跑下来,几千个模板挨个过,不管目标是谁。
Hati 是先看、后想、再打。比如它先看 nmap 扫到 3306 端口开了,httpx 看到 PHP,首页 HTML 里有 \"search\" 关键词 — LLM 综合这些信息判断:\"这家八成有 SQL 注入面,优先测\"。这一步判断对老手来说不稀奇,但传统工具就是不会。
第二个不一样:能不能\"用经验\"
如果 LLM 凭自己记,大概率会写出错的 POC。MySQL 和 PostgreSQL 的注入语法不一样,Struts2 S2-045 和 S2-046 触发点不同 — 这些细节靠 LLM 记忆容易出错。
Hati 有个 RAG 知识库,塞了 799 个真实产品的历史 POC。LLM 在动手前会先查\"Apache 相关的注入有哪些\",拿到 top 3 历史案例,照着改写而不是凭记忆。这一步叫\"借经验\",是从老渗透测试工程师的笔记本里学来的。
第三个不一样:能不能\"试错了再换\"
传统工具一发就过。Hati 是循环的:
LLM 想下一步 → 执行 → 看结果 → 根据结果再想 → ...
比如第一轮试 SQL 注入,响应没报错 — LLM 看到没异常,会换策略:\"试试 XSS\"或者\"试试认证绕过\"。这种自我调整是传统工具的硬伤。
- 整体设计:三个脑子 + 一双隔离的手
先说架构,这个我们后面几章会逐个拆。
简单一句话总结这个架构:大脑(LLM)住在主机,手脚(MCP 工具)关在 VM 沙箱里,中间用 SSH 隧道通信。
为什么这么分?因为渗透测试工具有合规风险。nmap 的 SYN 扫描会触发对方 IDS,sqlmap 跑起来会爆对方 WAF 日志,hydra 暴力破解会被风控盯上 — 这些东西还是不要让它直接跑在主机的本地环境里。
所以搞了个 Kali Linux VM充当沙箱,当然也可以搞一个云沙箱,一百多个安全工具全在那跑。主机这边只发指令、收结果,真正执行的是 VM。这样即使工具在执行过程中出了意外(比如某个 payload 触发对方反制、或者工具自身有 bug),影响也只在 VM 内,不会波及主机的开发环境。
三层隔离的安全边界:主机仅做 LLM 推理和任务调度 → 通过 HTTP/SSH 隧道 → Kali VM 沙箱执行实际工具 → 访问授权目标
- 接下来 7 篇你会看到啥
8 篇写完,你能自己改、能自己加技能、能把架构搬走用。
第 2 篇就开始动手了。我建议小伙伴按那篇的步骤,自己把 Hati 跑起来 — 跑通一次比看 10 篇概念性的文章有用。
初试版本的代码已开源,欢迎大家star~
https://github.com/Gach0ng/Hati
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论