被安全圈疯传的多智能体渗透框架:Docker隔离+AI自主决策,企业级红队实战
原创
菜狗
菜狗
只会看监控的实习生
2026年10月9日 16:00
广东
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
【AI渗透测试工具】BlacksmithAI:多个AI Agent协同工作,让渗透测试流程自动跑起来
做过渗透测试的都知道,一次完整的测试往往要用到不少工具。前期收集资产,中间做端口扫描、服务识别,发现问题后还要进一步验证,最后再整理漏洞证据和测试报告。
这些工作单独做起来不难,麻烦的是不同工具之间需要人工衔接,很多时间都花在重复操作上。
BlacksmithAI 是一个尝试解决这个问题的开源项目。它采用多 Agent 架构,把信息收集、端口扫描、漏洞分析和漏洞验证等任务交给不同的 Agent,再由总控 Agent 统一协调。
简单理解,就是让 AI 根据当前测试结果,决定下一步该做什么,并调用相应的安全工具执行任务。
0x01 项目介绍
项目地址:https://github.com/yohannesgk/blacksmith
BlacksmithAI 是一个基于 Python 和 LangGraph 的 AI 渗透测试框架,提供 CLI 和 Web UI 两种使用方式,安全工具则通过 Docker 环境运行。
项目的思路比较直接:不重新开发一套扫描器,而是把现有的安全工具组织起来,让 AI 参与任务规划、工具调用和结果分析。
主要功能包括:
- 多个 Agent 分工执行不同测试任务
- 集成常见的信息收集、端口扫描和漏洞检测工具
- 支持云端模型及本地模型配置
- 提供命令行和 Web 界面
- 汇总测试发现、风险和相关证据
- 使用 Docker 管理安全工具运行环境
0x02 多个 Agent 怎么配合
BlacksmithAI 的重点是多 Agent 协作,不同 Agent 负责不同的工作,总控 Agent 负责协调任务。
| Agent | 主要工作 |
|---|---|
| Orchestrator | 制定测试计划、分配任务、汇总结果 |
| Recon Agent | 收集域名、DNS、证书等信息 |
| Scan/Enum Agent | 扫描端口、识别服务、枚举入口 |
| Vulnerability Analysis Agent | 分析扫描结果,判断潜在漏洞 |
| Exploit Agent | 对发现的问题进行进一步验证 |
| Post-Exploit Agent | 分析漏洞可能造成的影响 |
举个例子,在授权测试中,前面的信息收集发现了一个开放服务,后续就可以继续识别服务类型、分析可能存在的漏洞,再根据结果决定是否需要验证。
这比单纯执行一批扫描命令多了一层任务编排。不过,Agent 的判断也可能出错,扫描结果更不能直接等同于漏洞成立,关键结论还是要结合证据复核。
0x03 集成的安全工具
项目通过 Docker 中的安全工具环境执行各类命令,涉及资产发现、端口扫描、Web 检测和漏洞验证等环节。
| 使用场景 | 工具示例 |
|---|---|
| 信息收集 | assetfinder 、subfinder、whois、dig、dnsrecon |
| 端口扫描 | nmap 、masscan |
| 服务识别 | whatweb 、fingerprintx |
| Web 检测 | gobuster 、nikto、wpscan |
| 漏洞扫描 | nuclei 、sslscan |
| 漏洞验证 | sqlmap 、hydra、medusa、ncrack |
| 其他辅助工具 | curl 、httpie、netcat、socat |
| 敏感信息检查 | trufflehog |
具体工具及其可用功能,以仓库当前版本为准。
这些工具本身并不陌生,比较有意思的是,Agent 可以根据前一步的结果继续安排后续任务,而不是每次都要测试人员手动切换工具。
0x04 一次测试大致怎么跑
按照项目的设计,整个流程可以拆成几个阶段。
第一步:收集目标信息。
从域名、DNS、证书等信息入手,先把目标的基本情况摸清楚。
第二步:扫描和服务识别。
对授权范围内的目标进行端口扫描,识别开放服务和相关技术栈,整理出值得进一步检查的入口。
第三步:分析潜在漏洞。
结合服务信息和扫描结果,分析可能存在的漏洞或配置问题,并确定下一步的检查方向。
第四步:验证发现的问题。
对需要确认的漏洞进行验证,尽量获取可以复核的证据,而不是只根据扫描器的一条告警就下结论。
第五步:分析影响并整理结果。
根据验证情况,评估漏洞可能带来的影响,汇总问题、证据和修复建议。
整个流程的价值,在于减少人工衔接工具的工作量。但具体能自动完成多少,仍然取决于模型能力、工具执行情况和目标环境。
0x05 模型配置
BlacksmithAI 支持配置不同的模型服务,项目文档提供了 OpenRouter、vLLM 等接入方式。
相关配置主要涉及两个文件:
| 文件 | 用途 |
|---|---|
blacksmithAI/.env |
保存 API Key 等环境变量 |
blacksmithAI/config.json |
配置模型提供方、接口地址和默认模型 |
先复制环境变量模板:
cp blacksmithAI/.env.example blacksmithAI/.env
然后根据自己使用的模型服务填写相应配置。
如果使用云端模型,需要准备对应的 API Key;如果使用本地 vLLM,则需要先把模型服务启动起来,再配置对应的接口地址。
需要注意的是,换一个模型不代表测试效果一定会更好。工具调用是否稳定、模型能否正确理解输出,以及多轮任务中的上下文管理,都会影响实际效果。
0x06 CLI 和 Web UI
项目提供了两种使用方式。
CLI 模式更适合习惯终端的安全人员,可以直接在命令行中操作。
Web UI 模式则提供浏览器界面,方便查看和管理任务。
如果只是想研究框架怎么调用工具,可以先从 CLI 开始;如果需要观察整个任务的执行过程,再部署 Web UI。
0x07 环境准备
项目使用 Python、Docker 和前端工具链,主要环境要求如下。
| 组件 | 用途 |
|---|---|
| Python 3.12 | 运行 Python 部分 |
| uv | 管理 Python 环境和依赖 |
| Docker | 运行安全工具容器 |
| Docker Compose | 管理容器服务 |
| Node.js 18+ | 前端运行环境 |
| pnpm | 管理前端依赖 |
| 大模型服务 | 提供 AI 分析和任务规划能力 |
项目给出的基础内存参考为 2GB,建议 4GB 或以上。实际运行时还要考虑 Docker 镜像、前端服务和任务并发带来的额外开销。
如果打算在本地运行大模型,还需要根据模型规模单独评估内存、显存和推理性能。
0x08 安装部署
先克隆项目:
git clone https://github.com/yohannesgk/blacksmith.git
cd blacksmith
查看项目提供的命令:
make help
按照项目提供的 Makefile,执行环境初始化:
make setup
接下来配置环境变量:
cp blacksmithAI/.env.example blacksmithAI/.env
根据使用的模型服务,填写 API Key,并检查 blacksmithAI/config.json 中的相关配置。
启动 CLI
make start-cli
启动 Web UI
按照项目文档,需要分别启动相关服务。
启动 Docker 工具环境:
cd blacksmithAI
docker compose up -d
启动前端:
cd frontend
pnpm install
pnpm build
pnpm start
启动 LangGraph 开发服务:
cd blacksmithAI
uv run langgraph dev
以上命令需要结合项目当前版本的目录结构执行。如果启动失败,优先检查 README、Makefile 中的实际命令,以及模型接口和 Docker 环境是否配置正确。
0x09 安全人员能拿它做什么
如果平时就在做渗透测试,这类框架比较适合拿来研究自动化测试流程。
比如,资产收集完成后,让 Agent 接着做服务识别;扫描器发现问题后,再结合服务信息分析风险;测试结束后,把不同工具的输出统一整理成报告。
另外,对于想研究 AI Agent 的人,也可以重点看它是怎么规划任务、调用工具、处理返回结果,以及决定下一步操作的。
不过,涉及漏洞利用、凭据测试和后续影响分析时,还是要设置明确的授权范围和执行限制。建议先在本地靶场或自建测试环境中跑通,再考虑用于真实业务资产。
0x0A 使用时需要注意的地方
AI 参与渗透测试,并不意味着测试人员可以完全放手。
首先,扫描器会误报,模型也可能误判。发现问题后,仍然需要结合请求响应、服务版本和实际环境进行验证。
其次,自动化工具可能对目标产生影响。特别是漏洞利用、口令测试等操作,需要限制执行范围,避免影响正常业务。
还有一点容易被忽略:如果使用云端模型,测试过程中涉及的资产信息、请求内容和漏洞证据可能会发送到外部服务。用于企业环境前,需要确认数据处理要求和模型服务的安全边界。
Docker 可以帮助隔离工具环境,但不能替代权限控制、网络限制和操作审计。
0x0B 项目信息
| 项目 | 说明 |
|---|---|
| 项目名称 | BlacksmithAI |
| 项目地址 | https://github.com/yohannesgk/blacksmith |
| 核心技术 | Python、LangGraph、Docker |
| 操作方式 | CLI、Web UI |
| 主要用途 | AI 辅助渗透测试与安全工具编排 |
| 许可证 | GPL-3.0-only,使用和分发前建议核对仓库许可证文件 |
0x0C 写在最后
BlacksmithAI 这个项目,核心还是把已有的安全工具串起来,再通过多个 Agent 组织测试流程。
它适合用来研究 AI 如何参与资产收集、漏洞分析和测试结果整理,也能给想做自动化渗透测试的人提供一些思路。
但现阶段,AI 更适合做辅助。扫描结果是否准确、漏洞能否复现、操作是否会影响业务,最终还是需要安全人员把关。
项目地址:https://github.com/yohannesgk/blacksmith
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论