Gaveta-cmd/pentest-agent
GitHub: Gaveta-cmd/pentest-agent
基于 LLM 的自主渗透测试 Agent,通过 LangGraph 编排多种安全工具实现自动化的漏洞扫描、分析与报告生成。
Stars: 1 | Forks: 0
# Pentest Agent
自主的渗透测试 Agent,利用 AI 自动决定、执行和分析安全扫描。
## 功能介绍
该 Agent 遵循一个智能循环:
1. **Planner** — LLM 根据历史记录决定运行哪个工具
2. **Executor** — 执行实际工具并捕获输出
3. **Analyzer** — LLM 分析结果并提取漏洞
4. **Reporter** — 生成结构化的最终报告
各阶段的执行流程:
```
Reconhecimento (nmap) → Scan de vulnerabilidades (nuclei) → Enumeração (nikto/ffuf) → Exploração (sqlmap) → Relatório
```
## 技术栈
- **LangGraph** — 以状态图编排 Agent
- **Ollama + llama3.1** — 用于推理和分析的本地 LLM
- **Nmap** — 端口和服务识别
- **Nuclei** — 基于 CVE 模板的漏洞扫描器
- **Nikto** — Web 服务器分析
- **SQLMap** — SQL injection 测试
- **FFUF** — 目录 fuzzing
## 前置条件
- Python 3.10+
- 已安装 [Ollama](https://ollama.com/download)
- 使用 WSL 运行 Kali Linux(推荐)**或者**在 PATH 中原生安装了相关工具
## 安装说明
### 1. 克隆仓库
```
git clone https://github.com/Gaveta-cmd/pentest-agent.git
cd pentest-agent
```
### 2. 安装 Python 依赖
```
pip install -r requirements.txt
```
### 3. 安装并启动 Ollama
从 [ollama.com/download](https://ollama.com/download) 下载,然后执行:
```
ollama serve # inicia o servidor (deixe rodando)
ollama pull llama3.1 # baixa o modelo (~4.9 GB)
```
### 4. 安装渗透测试工具
#### 选项 A — 通过 WSL 使用 Kali Linux(Windows 下推荐)
```
# 在 Kali WSL 的终端中:
sudo apt update && sudo apt install -y nmap nuclei nikto sqlmap ffuf
```
#### 选项 B — 原生安装(Linux/macOS)
```
sudo apt install nmap nikto sqlmap # Debian/Ubuntu
pip install sqlmap # alternativa cross-platform
# nuclei 和 ffuf:在 github.com/projectdiscovery/nuclei 和 github.com/ffuf/ffuf 下载二进制文件
```
#### 选项 C — Windows 原生
- **Nmap**: [nmap.org/download.html](https://nmap.org/download.html)
- **Nuclei**: `winget install ProjectDiscovery.Nuclei`
- **FFUF**: 从 [github.com/ffuf/ffuf/releases](https://github.com/ffuf/ffuf/releases) 下载二进制文件
- **SQLMap**: `pip install sqlmap`
- **Nikto**: 通过 WSL 使用(需要 Perl)
## 用法
```
python main.py [--iterations N]
```
### 示例
```
# 基础 Scan(5 次迭代)
python main.py 192.168.1.10
# 针对 URL 进行更多迭代的 Scan
python main.py http://192.168.1.10 --iterations 8
# 公共测试 Alvo(已授权 pentest)
python main.py scanme.nmap.org --iterations 3
```
### 在 Windows 上(修复终端编码)
```
$env:PYTHONUTF8="1"
python main.py https://meu-site.com --iterations 5
```
## 项目结构
```
pentest-agent/
├── main.py # Ponto de entrada, UI com Rich
├── agent.py # Grafo LangGraph (planner, executor, analyzer, reporter)
├── tools.py # Wrappers das ferramentas de pentest
├── state.py # Definição do estado compartilhado (TypedDict)
└── requirements.txt # Dependências Python
```
## 免责声明
标签:AI智能体, AI风险缓解, CISA项目, CTI, Docker部署, LangGraph, LLM评估, MISP, Ollama, 密码管理, 插件系统, 自动化安全工具, 逆向工具