its-me-anvesh-var/pentestx

GitHub: its-me-anvesh-var/pentestx

PentestX 是一个 AI 增强的模块化安全 CLI 工具包,将渗透测试与 SOC 分诊整合在同一工作流中以消除攻防信息隔阂。

Stars: 1 | Forks: 0

# PentestX ### AI 增强的渗透测试 + SOC 分诊工具包 ``` ██████╗ ███████╗███╗ ██╗████████╗███████╗███████╗████████╗██╗ ██╗ ██╔══██╗██╔════╝████╗ ██║╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝╚██╗██╔╝ ██████╔╝█████╗ ██╔██╗██║ ██║ █████╗ ███████╗ ██║ ╚███╔╝ ██╔═══╝ ██╔══╝ ██║╚████║ ██║ ██╔══╝ ╚════██║ ██║ ██╔██╗ ██║ ███████╗██║ ╚███║ ██║ ███████╗███████║ ██║ ██╔╝╚██╗ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ ``` [![Python](https://img.shields.io/badge/Python-3.9+-3776AB?style=flat-square&logo=python&logoColor=white)](https://python.org) [![License](https://img.shields.io/badge/License-MIT-green?style=flat-square)](LICENSE) [![AI](https://img.shields.io/badge/AI-Ollama%20%7C%20Groq%20%7C%20HuggingFace%20%7C%20Claude-purple?style=flat-square)] [![Modules](https://img.shields.io/badge/Modules-14-blue?style=flat-square)] [![Platform](https://img.shields.io/badge/Platform-macOS%20%7C%20Linux%20%7C%20Windows-lightgray?style=flat-square)] ## 这是什么 PentestX 是一个**模块化 CLI 安全工具包**,在统一的 AI 推理层下,将攻击性渗透测试和防御性 SOC 分诊操作结合在一起。 **它解决的核心问题:** 在大多数组织中,攻击性安全(渗透测试)和防御性安全(SOC)在孤立的环境中运作。渗透测试人员发现漏洞并撰写报告。SOC 分析师看到警报,却不知道它对应的是正在进行的渗透测试还是真实的攻击。PentestX 消除了这一隔阂——它扫描、发现漏洞、分诊警报、丰富 IOC,并生成检测查询,所有这些都在一次会话中完成,并由同一个 AI 引擎进行推理。 **其架构独特之处在于:** 4 供应商 AI 回退链(`Ollama → Groq → HuggingFace → Claude`)并不是为了方便而添加的功能。它反映了生产级安全平台在 7x24 小时 SOC 环境中如何处理 AI 可用性——如果一个供应商失败,平台不会宕机。这一设计决策直接源于对 Microsoft Security Copilot 和 CrowdStrike Charlotte AI 如何处理 LLM 可用性的研究。 基于本地知识库的 RAG pipeline 意味着 AI 的回答是基于 MITRE ATT&CK 和真实的 CVE 数据——而不是通过训练权重产生的幻觉。这与企业级 AI-SOC 研究中使用的架构相同(参见下文的研究基础)。 ## 架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ toolkit.py (CLI) │ └──────┬──────────┬──────────┬──────────┬──────────┬──────────┘ │ │ │ │ │ ┌────▼───┐ ┌───▼────┐ ┌───▼───┐ ┌───▼────┐ ┌───▼──────┐ │ RECON │ │ VULN │ │ CRACK │ │ TRIAGE │ │ REPORT │ │ nmap │ │ web │ │ hash │ │ splunk │ │ report │ │ subdom │ │ cve │ │ │ │ wazuh │ │ gen │ │ │ │ exploit│ │ │ │ log │ │ │ └────┬───┘ └───┬────┘ └───┬───┘ │ alert │ └───┬──────┘ │ │ │ │ vt │ │ │ │ │ │ abuse │ │ └─────────┴──────────┴─────┴────┬───┘ │ │ │ ┌─────────────────────────▼─────────▼──────────┐ │ AI ENGINE │ │ Ollama (local) → Groq → HuggingFace → │ │ Claude (fallback) + RAG (ChromaDB/MITRE) │ │ 6 specialised methods: scan · CVE · triage │ │ detection query · hash · exploit suggestion │ └──────────────────────────────────────────────┘ │ ┌─────────────────────────▼──────────────────────┐ │ OUTPUT │ │ Markdown reports · JSON · Splunk SPL · │ │ Sentinel KQL · Incident Reports · CSV │ └──────────────────────────────────────────────────┘ ``` **为什么这种架构在真实的 SOC 中很重要:** 双向流——扫描结果输入到分诊,分诊结果输入到报告——反映了一个安全运营中心的实际运作方式。SOC 分析师不会在一个工具中进行侦察,在另一个工具中进行丰富,在第三个工具中进行报告。PentestX 将这些视为一个连续的 workflow。这是将其与脚本集合区分开来的关键设计原则。 ## 14 个模块 — 完整参考 ### 信息收集 | 模块 | 功能 | AI 层 | |--------|-------------|----------| | `nmap_scanner` | OS 检测 · 服务指纹识别 · 端口枚举 | AI 总结攻击面并映射到 MITRE Initial Access 技术 | | `subdomain_enum` | DNS 暴力破解 + crt.sh 证书透明度枚举 | AI 分析子域名模式以寻找暴露的资产和攻击向量 | ### 漏洞评估 | 模块 | 功能 | AI 层 | |--------|-------------|----------| | `web_scanner` | 通过主动 payload 测试进行 SQLi · XSS · 开放重定向检测 | AI 解释漏洞利用影响并映射到 OWASP Top 10 | | `cve_lookup` | NIST NVD API · 按服务和版本查询 CVE · CVSS 评分 | AI 将 CVSS 分数转化为分析师可读的风险摘要 | | `exploit_suggest` | 将发现的服务映射到 CVE · 建议漏洞利用方法 | AI 生成供红队使用的检测规避考量 | ### 凭据分析 | 模块 | 功能 | AI 层 | |--------|-------------|----------| | `hash_cracker` | 哈希类型识别 (MD5/SHA1/SHA256/bcrypt) · 离线字典攻击 | AI 针对未破解的哈希提供破解策略指导 | ### SOC 分诊 | 模块 | 功能 | AI 层 | |--------|-------------|----------| | `splunk_triage` | Splunk REST API · 运行 SPL 搜索 · 获取结果 | AI 分诊结果并生成后续的 SPL 检测查询 | | `wazuh_triage` | Wazuh manager API · 高危警报获取 | AI 将警报映射到 MITRE ATT&CK 技术并建议响应措施 | | `alert_parser` | 离线 JSON 警报获取(Splunk/Wazuh/Sentinel 导出) | 无需实时 SIEM 访问的 AI 分诊 | | `log_parser` | 从 syslog/原始日志提取 IOC · IP · 哈希 · 域名 · CVE · URL | 在 500 行基准数据集上实现 91% 精确率和 96% 召回率 | | `vt_enricher` | VirusTotal API v3 · 哈希/IP/URL 丰富 | AI 根据 VT 结果生成恶意软件行为分析 | | `abuseipdb` | AbuseIPDB 信誉检查 · 本地缓存层 | AI 补充威胁上下文和建议操作 | | `report_gen` | 将完整的会话输出编译成结构化的事件报告 | AI 撰写执行摘要和 MITRE ATT&CK 附录 | ### AI 层 | 组件 | 功能 | |-----------|-------------| | `ai_engine` | 4 供应商回退链 · 6 种专业分析方法 · 零停机设计 | | `rag_pipeline` | LangChain + ChromaDB · 本地 all-MiniLM-L6-v2 embeddings · <2s 检索延迟 | | `knowledge_base` | MITRE ATT&CK 技术 · 高危 CVE · Splunk SPL 检测查询 | ## 性能与验证 | 模块 | 指标 | 结果 | 测试条件 | |--------|--------|--------|-----------------| | IOC 提取器 | 精确率 | 91% | 500 行日志 — Apache, SSH, Wazuh | | IOC 提取器 | 召回率 | 96% | 相同数据集 | | Web 扫描器 | 检出率 | 确认 SQLi + XSS | testphp.vulnweb.com (Acunetix 测试环境) | | 子域名枚举 | 覆盖率 | crt.sh + DNS 组合优于单独使用任意一种 34% | bugcrowd.com | | 哈希破解器 | 类型识别准确率 | 100% | MD5, SHA1, SHA256, bcrypt | | AI 引擎 | 可用性 | 99%+ | 4 供应商回退链 | | RAG Pipeline | 检索延迟 | <2s | 47 个数据块 · 本地 all-MiniLM-L6-v2 | | 警报分诊 | MITRE 映射准确率 | 3/3 个警报被正确映射 | Wazuh 警报复本数据集 | **测量方法:** IOC 提取的精确率和召回率是针对包含 500 行日志的手动标注真值数据集测量的,这些日志涵盖 Apache 访问日志、SSH 身份验证日志和 Wazuh 警报导出。误报主要是 RFC1918 地址以及 UUID 与 MD5 模式的冲突——已通过 CIDR 排除和上下文感知长度过滤解决。 ## 它如何连接到 FinSecure SOC 平台 PentestX 是 FinSecure AI 增强安全运营中心平台的**模块 1(攻防桥梁)**: ``` PentestX scans FinSecure lab environment │ ├── Nmap findings ──────────────► SOC Home Lab (P3) Splunk for detection validation ├── CVE discoveries ────────────► BFSI Threat Intel (P4) for BFSI-specific context ├── IOC extractions ────────────► LLM TI Summariser (P5) for SPL/KQL generation ├── Wazuh triage ───────────────► SOC Home Lab (P3) alert correlation └── AI reasoning ───────────────► RAG Assistant (P2) for MITRE framework grounding │ ▼ CyberSentinel AI receives all PentestX findings as structured threat intelligence ``` PentestX 是该平台中唯一在网络杀伤链两侧运作的模块——它生成攻击性发现,而平台的其他部分则学习检测和响应这些发现。没有它,SOC 实验室中的检测规则就没有对抗性验证。 ## 快速开始 ### macOS (Apple Silicon — M1/M2/M3) ``` git clone https://github.com/its-me-anvesh-var/pentestx cd pentestx bash setup.sh # installs nmap, Ollama, pulls llama3.2:3b, builds RAG source venv/bin/activate python toolkit.py ``` `setup.sh` 负责一切:Homebrew nmap、Ollama + 模型拉取、Python venv、pip install、ChromaDB RAG 构建、`.env` 创建。 ### Linux / Kali ``` git clone https://github.com/its-me-anvesh-var/pentestx cd pentestx python3 -m venv venv && source venv/bin/activate pip install -r requirements.txt sudo apt install nmap -y cp .env.example .env python toolkit.py ``` ### Windows ``` git clone https://github.com/its-me-anvesh-var/pentestx cd pentestx python -m venv venv venv\Scripts\activate pip install -r requirements.txt # 从 https://nmap.org/download.html 安装 nmap cp .env.example .env python toolkit.py ``` ## 配置 ``` cp .env.example .env ``` 最小化可用配置 — Ollama 在没有任何 key 的情况下完全离线运行: ``` # 在 console.groq.com 免费使用 — 500K tokens/天,~300 tok/s GROQ_API_KEY=your_key_here # 在 virustotal.com 免费使用 — 4 个请求/分钟 VT_API_KEY=your_key_here # 在 abuseipdb.com 免费使用 — 1000 个请求/天 ABUSEIPDB_API_KEY=your_key_here # 可选 — 仅当连接到实时的 Splunk 实例时 SPLUNK_HOST=your_splunk_host SPLUNK_PORT=8089 SPLUNK_TOKEN=your_token # 可选 — 仅当连接到实时的 Wazuh 实例时 WAZUH_HOST=your_wazuh_host WAZUH_PORT=55000 WAZUH_USER=your_user WAZUH_PASS=your_password ``` ## AI 供应商链 ``` Priority Provider Cost Rate Limit Best For ───────────────────────────────────────────────────────────────────── 1st Ollama (local) Free None Privacy · offline ops 2nd Groq API Free 500K tok/day Speed (~300 tok/s) 3rd HuggingFace API Free Limited Fallback 4th Claude API Paid Per token Highest quality ``` 引擎按顺序尝试各个供应商。在失败或触发限流时,它会在 500ms 内降级到下一个供应商。所有四个供应商组合的总 AI 可用性:99%+。 ## 在没有任何 API Key 的情况下测试 ``` python toolkit.py → Option 10 (Log Parser) → samples/sample_syslog.txt python toolkit.py → Option 9 (Alert Parser) → sample python toolkit.py → Option 6 (Hash Cracker) → single → 5f4dcc3b5aa765d61d8327deb882cf99 python toolkit.py → Option 4 (CVE Lookup) → apache log4j ``` 所有四个都在完全离线的状态下使用本地 Ollama 运行。 ## 项目结构 ``` pentestx/ ├── toolkit.py # CLI entry point · interactive menu ├── setup.sh # One-command macOS setup ├── requirements.txt ├── .env.example │ ├── config/ │ └── settings.py # Centralised config loader │ ├── ai/ │ ├── ai_engine.py # 4-provider fallback chain · 6 methods │ ├── rag_pipeline.py # LangChain + ChromaDB RAG │ └── knowledge_base/ # MITRE ATT&CK · CVEs · SPL queries │ ├── modules/ │ ├── recon/ │ │ ├── nmap_scanner.py │ │ └── subdomain_enum.py │ ├── vuln/ │ │ ├── web_scanner.py │ │ ├── cve_lookup.py │ │ └── exploit_suggest.py │ ├── crack/ │ │ └── hash_cracker.py │ └── triage/ │ ├── splunk_triage.py │ ├── wazuh_triage.py │ ├── alert_parser.py │ ├── log_parser.py │ ├── vt_enricher.py │ ├── abuseipdb.py │ └── report_gen.py │ ├── samples/ # Test data — syslog · alerts └── output/ # All session results (gitignored) ``` ## 📚 研究基础 该项目基于经过同行评审的学术文献。以下论文直接为架构和设计决策提供了启发: | # | 论文 | 应用的关键见解 | |---|-------|-------------------| | 1 | (2025). *AI-Augmented SOC: A Survey of LLMs and Agents for Security Automation.* MDPI Systems, 5(4), 95 | AI 代理将 MTTD/MTTM 最多缩短 6 倍 — 验证了 PentestX 的 SOC 模块的自动化分诊设计 | | 2 | (2025). *Large Language Models for Security Operations Centers: A Comprehensive Survey.* arXiv:2509.10858 | LLM 在日志分析、警报分诊、威胁情报中的应用 — 为 AI 引擎的 6 种专业方法提供了基础证明 | | 3 | Fayyazi et al. (2024). *Advancing TTP Analysis: Harnessing LLMs with RAG.* arXiv:2401.00280 | 使用 RAG + LLM 进行 TTP 分析 — 与 `rag_pipeline` + MITRE 知识库设计直接对应 | | 4 | (2025). *Advancing Autonomous Incident Response: Leveraging LLMs and CTI.* arXiv:2508.10677 | 基于 RAG 的自动化 IR 框架 — 验证了 `report_gen` 模块由 AI 辅助的事件叙述设计 | | 5 | Arazzi et al. (2023). *NLP-Based Techniques for Cyber Threat Intelligence.* arXiv:2311.08807 | 使用 NLP 进行 CTI 数据提取 — 为 `log_parser` 的 IOC 提取设计以及精确率/召回率测量方法提供了启发 | | 6 | (2024). *Actionable CTI using Knowledge Graphs and LLMs.* arXiv:2407.02528 | 使用 LLM 进行企业级 CTI 提取 (Microsoft, CrowdStrike, Trend Micro) — 验证了 `vt_enricher` + `abuseipdb` 的 AI 丰富设计 | | 7 | (2025). *Revealing the True Indicators: Understanding and Improving IoC Extraction from Threat Reports.* arXiv:2506.11325 | IOC 提取基准测试的 ground-truth 方法论 — 直接用于设计 500 行基准数据集和精确率/召回率测量 | ## 我在构建此项目过程中的收获 **关于连接攻防:** 最困难的设计决策是使分诊模块真正有用,而不仅仅是包装器。一个仅运行查询并打印结果的 Splunk 模块对分析师没有帮助。其价值在于将结果映射到 MITRE 技术并建议下一个 SPL 查询的 AI 分诊层。这要求既要了解渗透测试人员的发现,也要了解 SOC 分析师需要采取什么行动来应对。 **关于 4 供应商 AI 链:** 每个供应商都有不同的故障模式。当没有拉取模型或硬件性能不足时,Ollama 会失败。在高强度会话期间,Groq 会因为触发限流而失败。HuggingFace 会在冷启动延迟时失败。当缺少 API key 时,Claude 会失败。独立测试所有四种故障模式——并使回退过程对用户透明——所花费的时间比构建模块本身还要长。 **关于 IOC 提取的精确率:** 实现 91% 的精确率需要了解为什么会产生误报。RFC1918 私有 IP 地址(192.168.x.x, 10.x.x.x)是有效的 IOC 模式,但在 syslog 上下文中几乎从来不是恶意的。UUID 字符串匹配 MD5 的长度,但并不是哈希。构建这些排除规则需要阅读真实的日志文件,而不是合成的测试数据。 **关于 RAG 在安全方面的应用:** 知识库需要具有强烈的侧重点。直接导出的通用 MITRE ATT&CK 会产生低质量的检索,因为每种技术都有相似的语言。围绕特定的攻击场景和防御性 SPL 查询整理数据块,比单纯的无差别导入方法显著提高了检索相关性。 ## 路线图 - [ ] 将 MITRE D3FEND 防御性对策映射添加到 `exploit_suggest` - [ ] 将 Microsoft Sentinel KQL 生成集成到 `report_gen` - [ ] 构建 FastAPI REST 包装器以实现编程方式集成 SOC 工具 - [ ] 添加 Shodan API 模块以进行被动外部侦察 - [ ] 连接到 CyberSentinel AI 作为其攻击性情报源 - [ ] 在 `cve_lookup` 中添加对 CVSS v4.0 评分的支持 ## 法律与道德 - 仅对您拥有或获得明确书面授权的系统进行测试 - `SAFE_MODE=true`(在 `.env` 中默认开启)在任何主动扫描前会提示确认 - 专为授权渗透测试、CTF 练习 SOC 分析师培训而设计 - 所有测试验证均在专用实验室环境和故意存在漏洞的目标(testphp.vulnweb.com,个人实验室)上进行 ## 技术栈 `Python 3.9+` · `Nmap` · `LangChain` · `ChromaDB` · `Ollama` · `Groq API` · `HuggingFace Inference API` · `Anthropic Claude API` · `sentence-transformers` · `Rich` · `Requests` · `BeautifulSoup4` · `VirusTotal API v3` · `AbuseIPDB API` · `NIST NVD API` · `Splunk REST API` · `Wazuh REST API` ## 作者 **Anvesh Raju Varadharaju** 网络安全硕士 · UNC Charlotte | 人工智能硕士(M.Tech AI) · 海得拉巴大学 - GitHub: [@its-me-anvesh-var](https://github.com/its-me-anvesh-var) - LinkedIn: [linkedin.com/in/arv007](https://linkedin.com/in/arv007) - 个人主页: [your-portfolio-url] ## 许可证 MIT — 详见 [LICENSE](LICENSE)。 *FinSecure AI 增强安全运营中心平台的一部分 — 这是一个为期 24 个月的独立研究和构建计划,涵盖 AI 驱动的 SIEM、云威胁监控、事件响应自动化、NLP 威胁情报和 GenAI 合规报告。PentestX 是验证整个平台所有检测能力的攻防桥梁。*
标签:AI大模型, AI风险缓解, CTI, LangChain, LLM评估, Ollama, Python, 安全运营中心(SOC), 实时处理, 密码管理, 无后门, 轻量级, 逆向工具