blacksmith
AI 多代理自动化渗透测试框架,通过 LangGraph 协调多个专业 Agent 完成从侦察到后渗
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI 多代理自动化渗透测试框架,通过 LangGraph 协调多个专业 Agent 完成从侦察到后渗
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:某天晚上,一家中型企业的安全团队收到通知——他们的 Web 应用可能存在 SQL 注入漏洞。传统做法是安全工程师手动逐个测试每一个参数,耗时数小时甚至数天。而 BlacksmithAI 的出现,让这一切变成了 AI 驱动的自动化流水线:用户只需输入目标地址,系统就会自动协调多个专业 AI 代理,从侦察、信息收集、漏洞扫描、漏洞利用到后渗透分析,全程无需人工干预,最终生成一份完整的安全评估报告。
渗透测试(Penetration Testing)是网络安全领域最核心的评估手段之一,通过模拟真实攻击来发现系统漏洞。传统渗透测试高度依赖经验丰富的安全工程师,需要他们手动操作 Kali Linux 中的数十种工具(nmap、sqlmap、Nuclei、hydra……),并在整个过程中不断做出判断和调整。这个过程有三个显著痛点:门槛高(需要大量专业知识积累)、耗时长(完整一次测试可能需要数天)、一致性差(不同工程师的测试覆盖范围和深度存在差异)。
近年来,大语言模型(LLM)在代码生成和推理方面展现了强大能力,安全领域开始出现第一批 AI 辅助渗透测试工具。但这些工具大多采用"单 Agent"模式——一个超级 AI 代理试图独自完成所有任务,这种方式存在明显瓶颈:当测试目标变得复杂时,单个 Agent 的上下文窗口会迅速被消耗殆尽,对各阶段工具的调用精度也难以保证。
BlacksmithAI 的作者 Yohannes Gebrekirstos 敏锐地捕捉到了这个痛点,于 2025 年 12 月创建了 BlacksmithAI 项目。它采用层级多代理(Hierarchical Multi-Agent)架构,将渗透测试全流程拆分为多个专业 Agent,由一个 Orchestrator(编排器)统一协调,每个 Agent 专注自己擅长的领域,彼此通过 LangGraph 状态图共享任务上下文。这种设计让系统既能保持专业深度,又具备全局视野。
图1:BlacksmithAI 品牌标识
BlacksmithAI 的核心是 LangGraph 构建的有状态工作流图,整个渗透测试生命周期由以下 Agent 协作完成:
Orchestrator(编排器):作为整个系统的大脑,Orchestrator 负责任务规划、阶段间的状态流转,以及最终安全报告的生成。它维护整个测试流程的状态机,根据当前阶段结果决定下一步调用哪个专业 Agent。当某个 Agent 返回的结果触发特定条件时,Orchestrator 还会动态调整后续策略——比如在发现高危漏洞后,优先触发 Exploit Agent 深入验证。
侦察代理(Reconnaissance Agent):这是渗透测试的起点。Agent 调用 whois、dig、dnsrecon、assetfinder、subfinder、findomain 等工具,对目标进行全面信息收集——域名注册信息、DNS 记录、子域名发现、资产映射。其目标是在最短时间内建立起对目标攻击面的完整认知,为后续阶段提供情报基础。
扫描与枚举代理(Scanner/Enumeration Agent):拿到侦察数据后,该 Agent 接过接力棒,使用 nmap、masscan、gobuster、wpscan、fingerprintx 等工具对目标进行深度端口扫描、服务枚举、Web 指纹识别。它会识别出开放的端口、运行的服务、网站的 CMS 类型,以及任何可进一步利用的入口点。
漏洞映射代理(Vulnerability Mapping Agent):这是连接扫描与利用的关键桥梁。Agent 使用 Nuclei(业界最活跃的漏洞扫描模板库之一)和 sslscan,对识别出的服务和端点进行漏洞匹配。它维护着一个漏洞知识库,能够将 CVSS 评分与扫描结果关联,生成按风险等级排序的漏洞清单。
漏洞利用代理(Exploit Agent):基于漏洞清单,Exploit Agent 调用 sqlmap、hydra、medusa、ncrack 等专业利用工具,验证漏洞可利用性,并生成 PoC(概念验证代码)。该 Agent 还具备动态编程能力——它可以使用 Python、Go、Perl、Ruby 等语言编写针对特定漏洞的利用脚本,通过 mini-kali Docker 容器安全隔离执行。
后渗透代理(Post-Exploitation Agent):一旦成功获取初始访问权限,该 Agent 进入后渗透阶段。它利用 Impacket 工具集(psexec、smbclient、secretsdump)和 netcat、socat 等工具进行横向移动和权限维持分析,评估攻击者在目标网络中能够扩散到什么程度。
每个 Agent 都在 LangGraph 的 checkpointer 机制下运行,支持暂停、恢复和多轮对话。Agent 之间通过结构化消息传递上下文,而非简单的 prompt 拼接,这保证了即使面对复杂的内网渗透场景,整个工作流也能保持稳定和可解释。
图2:BlacksmithAI Web UI 运行界面
BlacksmithAI 的技术选型非常明确——以 LangGraph 作为多 Agent 编排的核心引擎,搭配 LangChain 生态提供工具调用和 LLM 接入能力。
后端(Python 3.12):核心依赖包括:
langgraph==1.0.8 + langgraph-checkpoint==4.0.0:有状态 Agent 工作流langgraph-sdk==0.3.6 + langgraph-api==0.7.37:API 服务化langchain==1.2.10 系列:工具调用框架chromadb==1.5.0:向量数据库,用于存储和检索工具文档嵌入(make embed-tools 流程)deepagents==0.4.1:深度 Agent 框架扩展anthropic==0.79.0 + openai==2.21.0:多 LLM 供应商支持langchain-google-genai==4.2.0:Gemini 模型支持LLM 灵活性是 BlacksmithAI 的一大亮点。config.json 支持 OpenRouter(默认)、vLLM(本地部署)和 OpenAI 三大模式:
openrouter/hunter-alpha 模型,享受统一接口接入数十种模型的优势make vllm-serve 启动 vLLM 服务器,可使用 Mistral-7B、Devstral-2-123B 等开源模型,完全免费且数据不出本机default_embedding_model 统一使用 OpenAI text-embedding-3-small,确保向量检索的一致性前端(Next.js + TypeScript):位于独立的 frontend/ 目录,采用 Next.js 14 App Router 架构,UI 组件基于 Tailwind CSS 构建。提供了现代化的 Web 界面,用户可以在浏览器中配置测试目标、监控 Agent 工作状态、查看实时渗透结果。
持久化层:docker-compose.yml 中配置了 Redis 7(会话状态缓存)和 PostgreSQL(LangGraph checkpoint 持久化),两者均绑定到本地 127.0.0.1 端口,确保数据安全不暴露。
工具环境隔离:最巧妙的设计是 mini-kali-slim Docker 容器。所有渗透测试工具(nmap、sqlmap、Nuclei、hydra 等)都运行在这个只读、tmpfs 隔离的容器环境中。容器通过 curl -f http://localhost:9756/health 暴露健康检查接口,主应用通过 HTTP 请求向其发送命令并获取执行结果。这种设计从根本上隔离了危险操作——即使 Agent 执行了恶意命令,也被限制在容器内部,不会影响宿主机。
图3:BlacksmithAI CLI 模式运行示例
BlacksmithAI 的部署体验可以用"引导清晰、步骤稍多"来概括。
快速上手流程(推荐):
git clone 克隆仓库cd blacksmithAI && uv sync 安装 Python 依赖(uv 会自动创建虚拟环境)make docker-build 构建 mini-kali Docker 镜像cp .env.example .env,填入 OpenRouter API Key(或选择 vLLM 本地模式)make embed-tools 索引工具文档到 ChromaDBmake start-cli 或按文档步骤启动 Web UI整个过程在良好网络环境下约 30 分钟。官方提供了详尽的 Makefile,覆盖了从安装、启动、vLLM 部署到状态查看的全部操作。对于想快速体验的用户,bs.kahanlabs.com 提供了托管版本,无需任何本地配置即可试用。
CLI vs Web UI 的选择:CLI 模式只需一个终端,适合快速验证和安全研究员的日常使用。Web UI 模式需要 2-3 个终端(分别运行 Docker、Next.js 前端和 LangGraph dev server),但提供了更直观的可视化体验。两者共享同一套后端逻辑,数据互通。
本地大模型支持是 BlacksmithAI 的独特优势。vLLM 集成让用户可以在本地 GPU 上运行开源渗透测试专用的 LLM(如 Devstral 2 123B),完全摆脱对第三方 API 的依赖。这对于注重数据隐私的安全团队尤其有价值——渗透测试涉及大量敏感目标信息,API 调用可能带来数据泄露风险。
BlacksmithAI 的出现反映了安全工具领域的一个明确趋势:AI Agent 正在从辅助角色走向自动化流水线的主角。传统的渗透测试工具(Burp Suite、Metasploit)以人工操作为设计原点,AI 的加入只是增加了一些自动化脚本;而 BlacksmithAI 从第一天起就是为 AI Agent 设计的,人类的角色从操作者变成了监督者和策略制定者。
从项目增长来看,BlacksmithAI 于 2025 年 12 月底创建,到 2026 年 7 月已积累 231 Stars,虽然绝对数量不大,但考虑到这是一个高度垂直的安全工具领域,这个增长曲线值得关注。项目已获得 Product Hunt 推荐,Discord 社区正在建设中,文档站点 bs.kahanlabs.com/docs/ 也已上线。
必须正视的局限:
BlacksmithAI 是一个设计思路清晰、技术选型现代的 AI 渗透测试框架。它的核心价值在于将渗透测试的各阶段工作分配给专业 Agent,通过 LangGraph 的状态机协调机制串联成完整流水线。docker-compose 一键部署、vLLM 本地模型支持、以及详尽的 Makefile 引导,大幅降低了对专业安全工程师的依赖。
对于安全研究人员、CTF 爱好者和想快速了解目标系统安全状况的团队,BlacksmithAI 提供了一个值得一试的自动化方案。但正如任何自动化安全工具一样——它是你手中的精密仪器,而非万能钥匙。在实际生产环境中使用前,请务必在授权范围内充分验证其输出准确性。