Ateebshaikh21/red-team-ai
GitHub: Ateebshaikh21/red-team-ai
一款将 Nmap 扫描、CVE 查询与 Claude 大语言模型分析串联的自动化红队侦察流水线,旨在大幅缩减渗透测试前期的侦察时间并自动生成多格式报告。
Stars: 2 | Forks: 0
# 🔴 自主红队 AI
[](https://python.org)
[](LICENSE)
[](https://owasp.org/Top10/)
## 📌 功能简介
自主红队 AI 是一个完整的**渗透测试侦察 pipeline**,将以下环节串联在一起:
1. **Nmap** — 端口扫描与服务/版本指纹识别
2. **NIST NVD API v2.0** — 针对发现的服务进行 CVE 查找
3. **Anthropic Claude LLM** — 智能攻击面分析与漏洞利用路径生成
4. **多格式报告** — JSON + Markdown + 带样式的 HTML
已在 **DVWA**、**Metasploitable2** 和 **HackTheBox** 机器上进行了测试。
## 🏗️ 架构
```
Target IP/Host
│
▼
┌─────────────┐
│ NmapScanner │ ← python-nmap, service/version detection
└──────┬──────┘
│ [open ports + service banners]
▼
┌─────────────┐
│ CVEMapper │ ← NIST NVD API v2.0, rate-limited, cached
└──────┬──────┘
│ [enriched services + CVE list]
▼
┌──────────────────┐ ┌─────────────────────┐
│ LLMAnalyzer │ │ ExploitSuggester │
│ (Claude API) │ │ (rule-based, fast) │
└──────┬───────────┘ └──────────┬──────────┘
└──────────┬───────────────┘
│ [analysis + exploit paths + OWASP mapping]
▼
┌──────────────────┐
│ ReportGenerator │ ← JSON + Markdown + HTML
└──────────────────┘
```
## ⚡ 快速开始
### 1. 克隆与安装
```
git clone https://github.com/yourname/red-team-ai.git
cd red-team-ai
# 安装依赖
pip install -r requirements.txt
# 安装 nmap(必需的系统依赖)
# Ubuntu/Debian:
sudo apt install nmap
# macOS:
brew install nmap
```
### 2. 配置 API 密钥
```
cp .env.example .env
# 编辑 .env 并添加你的 keys:
# ANTHROPIC_API_KEY=sk-ant-...
# NVD_API_KEY=...(可选,但会增加 NVD rate limits)
```
获取 API 密钥:
- **Anthropic:** https://console.anthropic.com
- **NVD (可选):** https://nvd.nist.gov/developers/request-an-api-key
### 3. 运行你的第一次扫描
```
# 快速扫描(快速,无 LLM)
python main.py quick --target 192.168.56.101
# 完整 pipeline(Nmap + CVE + LLM analysis)
python main.py scan --target 192.168.56.101
# 深度扫描及完整分析
python main.py scan --target 192.168.56.101 --mode deep --output ./reports
```
## 🎯 命令
### `scan` — 完整 Pipeline
```
python main.py scan --target [--mode quick|deep] [--output DIR]
```
运行完整 pipeline:Nmap → CVE 查找 → LLM 分析 → 生成报告。
| 标志 | 默认值 | 描述 |
|------|---------|-------------|
| `--target` | 必填 | 目标 IP 或主机名 |
| `--mode` | `quick` | `quick` (Top 1000 端口) 或 `deep` (所有端口 + OS) |
| `--output` | `./reports` | 报告输出目录 |
### `quick` — 仅快速侦察
```
python main.py quick --target [--output DIR]
```
仅执行 Nmap + CVE 查找。不调用 LLM。用于快速分类的最快模式。
### `report` — 从 JSON 重新生成
```
python main.py report --input ./reports/report_192_168_56_101.json
```
从现有的 JSON 扫描结果重新生成 Markdown + HTML。
## 🧪 使用 DVWA 进行测试
DVWA (Damn Vulnerable Web Application) 是在本地进行测试的最简单方法。
```
# 1. 通过 Docker 启动 DVWA
bash test-configs/setup_lab.sh
# 2. 扫描它
python main.py scan --target 127.0.0.1
# 3. 查看 HTML 报告
open reports/report_127_0_0_1_*.html
```
DVWA 上的预期发现:
- 端口 80: Apache HTTP → SQL 注入、XSS (OWASP A03, A01)
- 端口 3306: MySQL → 弱认证、远程 root (OWASP A07)
## 🧪 使用 Metasploitable2 进行测试
Metasploitable2 是一个故意设计为易受攻击的 Linux 虚拟机,包含约 20 多个服务。
```
# 在 VirtualBox 中使用 Host-Only networking 运行
# 默认 IP:192.168.56.101,凭据:msfadmin/msfadmin
python main.py scan --target 192.168.56.101 --mode deep
```
预期发现:FTP、SSH、Telnet、SMB (EternalBlue)、MySQL、PostgreSQL、VNC、SMTP...
## 📊 性能
| 指标 | 数值 |
|--------|-------|
| 人工侦察基准 | ~3 小时 |
| 自动化 pipeline (quick) | ~8–12 分钟 |
| 自动化 pipeline (deep) | ~20–35 分钟 |
| **侦察时间减少** | **~60%** |
效率的提升得益于:
- 带缓存的并行 CVE 查找(无需重复查询 NVD)
- LLM 立即关联发现结果,替代人工研究
- 结构化报告生成,替代人工编写
### 运行基准测试
```
python benchmarks/benchmark_runner.py --target 192.168.56.101 --runs 3
```
## 📁 项目结构
```
red-team-ai/
├── main.py # CLI entrypoint (Typer)
├── src/
│ ├── scanner.py # Nmap wrapper & parser
│ ├── cve_mapper.py # NVD API v2.0 CVE lookup
│ ├── llm_analyzer.py # Claude API integration
│ ├── exploit_suggester.py # Rule-based exploit mapping
│ ├── report_generator.py # JSON + Markdown + HTML output
│ └── utils.py # Timing, logging, helpers
├── tests/
│ ├── test_scanner.py # Mocked nmap tests
│ └── test_cve_mapper.py # Mocked NVD API tests
├── test-configs/
│ ├── dvwa_config.json
│ ├── metasploitable_config.json
│ └── setup_lab.sh # Docker lab setup
├── benchmarks/
│ └── benchmark_runner.py
├── reports/ # Generated reports (git-ignored)
├── .env.example
├── requirements.txt
└── CLAUDE.md # Claude Code project context
```
## 🔒 CVE 映射与 OWASP 覆盖范围
该 pipeline 将发现的服务映射到:
| 服务 | 常见 CVE | OWASP 类别 |
|---------|-------------|----------------|
| OpenSSH | CVE-2018-15473, CVE-2016-6210 | A07 - 身份验证失败 |
| Apache HTTP | CVE-2021-41773, CVE-2017-7679 | A03 - 注入 |
| SMB/Samba | CVE-2017-0144 (EternalBlue) | A05 - 安全配置错误 |
| MySQL | CVE-2012-2122, CVE-2016-6662 | A03 - 注入 |
| VNC | CVE-2006-2369 | A07 - 身份验证失败 |
| FTP | CVE-2011-2523 (vsftpd backdoor) | A05 - 安全配置错误 |
## 🚀 运行测试
```
# 所有测试
pytest tests/ -v
# 包含 coverage
pip install pytest-cov
pytest tests/ --cov=src --cov-report=term-missing
```
## ⚠️ 法律与道德
**此工具仅供授权的渗透测试使用。**
- 仅扫描您拥有或获得明确书面授权测试的系统
- 未经签署的授权协议,绝不对生产环境系统运行此工具
- 本仓库中的所有测试均使用故意设计为易受攻击的虚拟机 (DVWA, Metasploitable)
- 作者不对滥用行为负责
## 🛠️ 技术栈
| 组件 | 技术 |
|-----------|-----------|
| 语言 | Python 3.10+ |
| 端口扫描 | python-nmap (Nmap wrapper) |
| CVE 数据 | NIST NVD REST API v2.0 |
| LLM | Anthropic Claude (claude-sonnet-4-20250514) |
| CLI | Typer + Rich |
| 测试 | pytest + pytest-mock |
| 报告 | JSON + Markdown + HTML |
## 📄 许可证
MIT — 查看 [LICENSE](LICENSE)
标签:DLL 劫持, 大语言模型, 安全规则引擎, 实时处理, 插件系统, 数据展示, 红队, 网络调试, 自动化, 逆向工具