基于 ReAct 模式的自主 AI 渗透测试框架,集成 40+ 安全工具与多角色智能体系统,支持自动化漏洞扫描与合规报告生成。
项目概述#
Zen-AI-Pentest 是一个专业的 AI 驱动渗透测试框架,旨在解决传统渗透测试高度依赖人工经验、工具碎片化严重、测试周期长、误报率高的问题。通过自主 AI Agent 编排安全工具流,实现从侦察到报告的自动化闭环。
核心能力#
ReAct 自主智能体#
- 推理循环:Reason → Act → Observe → Reflect 模式
- 状态机:IDLE → PLANNING → EXECUTING → OBSERVING → REFLECTING → COMPLETED
- 记忆系统:短期记忆、长期记忆、上下文窗口管理
- 自我修正:重试逻辑与自适应规划
- 人机协同:关键决策可选暂停
11 个 AI 角色系统 (Personas)#
| 角色 | 职责 |
|---|---|
| Recon | 侦察 |
| Exploit | 漏洞利用 |
| Report | 报告生成 |
| Audit | 审计 |
| Social | 社会工程 |
| Network | 网络测试 |
| Mobile | 移动安全 |
| Red Team | 红队行动 |
| ICS | 工业控制系统 |
| Cloud | 云安全 |
| Crypto | 密码学 |
集成安全工具 (40+)#
- 网络层:Nmap, Masscan, Scapy, Tshark
- Web 层:Nuclei, SQLMap, Nikto, OWASP ZAP, BurpSuite, FFuF, Gobuster
- 侦察:Subfinder, Amass, HTTPX, WhatWeb, WAFW00F
- AD 域:BloodHound, CrackMapExec, Responder
- OSINT:Sherlock, Scout, Ignorant
- 密钥检测:TruffleHog, Trivy, Semgrep
风险引擎#
- 多因素验证 + 贝叶斯过滤减少误报
- CVSS/EPSS 评分支持
- 业务影响分析(财务、合规、声誉风险)
- 自动化发现优先级排序
安全防护机制#
- IP 验证:阻止私有网络扫描 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
- 域名过滤:防止 .local, .internal, localhost 扫描
- 4 级风险控制:SAFE(0) → NORMAL(1) → ELEVATED(2) → AGGRESSIVE(3)
- 速率限制:防止滥用
系统架构#
客户端层 (React Web UI / Python CLI / REST API)
↓ HTTPS / JWT
网关层 (FastAPI + WebSocket, Auth, Workflow API)
↓
编排层 (Guardrails, Task Queue, Risk Levels)
↓ WebSocket
Agent 层 (Docker 容器化 Agent Pool)
↓
工具层 (40+ Security Tools)
↓
数据层 (PostgreSQL + Redis + File Storage)
部署方式#
Docker 部署(推荐)#
git clone https://github.com/SHAdd0WTAka/zen-ai-pentest.git
cd zen-ai-pentest
cp .env.example .env
docker-compose up -d
# Dashboard: http://localhost:3000
# API Docs: http://localhost:8000/docs
本地安装#
pip install -r requirements.txt
python database/models.py
python api/main.py
使用示例#
Python API#
from agents.react_agent import ReActAgent, ReActAgentConfig
config = ReActAgentConfig(max_iterations=10, use_vm=True, vm_name="kali-pentest")
agent = ReActAgent(config)
result = agent.run(target="example.com", objective="Comprehensive security assessment")
print(agent.generate_report(result))
REST API#
curl -X POST http://localhost:8000/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin"}'
curl -X POST http://localhost:8000/scans \
-H "Authorization: Bearer $TOKEN" \
-d '{"name":"Network Scan","target":"192.168.1.0/24","scan_type":"network"}'
适用场景#
- 自动化渗透测试工作流
- 网络与 Web 漏洞扫描
- 合规报告生成(PDF/HTML)
- CI/CD 安全集成 (GitHub Actions, GitLab CI, Jenkins)
- Bug Bounty 漏洞挖掘
- 企业安全资产评估
项目活跃度#
- 926+ commits
- 9 个 releases
- MIT License
- 持续维护中