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, 密码管理, 插件系统, 自动化安全工具, 逆向工具