its-me-anvesh-var/pentestx
GitHub: its-me-anvesh-var/pentestx
PentestX 是一个 AI 增强的模块化安全 CLI 工具包,将渗透测试与 SOC 分诊整合在同一工作流中以消除攻防信息隔阂。
Stars: 1 | Forks: 0
# PentestX
### AI 增强的渗透测试 + SOC 分诊工具包
```
██████╗ ███████╗███╗ ██╗████████╗███████╗███████╗████████╗██╗ ██╗
██╔══██╗██╔════╝████╗ ██║╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝╚██╗██╔╝
██████╔╝█████╗ ██╔██╗██║ ██║ █████╗ ███████╗ ██║ ╚███╔╝
██╔═══╝ ██╔══╝ ██║╚████║ ██║ ██╔══╝ ╚════██║ ██║ ██╔██╗
██║ ███████╗██║ ╚███║ ██║ ███████╗███████║ ██║ ██╔╝╚██╗
╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚═╝
```
[](https://python.org)
[](LICENSE)
[]
[]
[]
## 这是什么
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), 实时处理, 密码管理, 无后门, 轻量级, 逆向工具