ameyapanchal-cyber/vulnixz-ai-pentest-agent
GitHub: ameyapanchal-cyber/vulnixz-ai-pentest-agent
VulnixZ 是一款集成 nmap、subfinder、httpx 并结合 LLM 分析的 AI 辅助渗透测试侦察与扫描工具,旨在简化授权安全测试中的信息收集和结果解读流程。
Stars: 0 | Forks: 0
# VulnixZ — AI 渗透测试助手
VulnixZ 是一款个人的 AI 辅助侦察和扫描副驾驶。它驱动
行业标准工具(nmap、subfinder、httpx),将其原始输出提供给 LLM 进行
通俗英文分析,持久化扫描结果,并可通过终端和 Telegram bot 运行。
它被构建为一个以学习为导向、具备安全意识的工具:不受信任的输入在
到达子进程之前会经过验证,密钥被排除在代码库之外,并且 Telegram
接口通过允许列表进行访问控制。
## 仅限授权使用
VulnixZ **专用于授权的安全测试**:您自己的系统、您控制的实验
虚拟机,或您被**明确允许**测试的目标(例如在范围内的
漏洞赏金计划)。未经许可扫描或探测系统在大多数
司法管辖区都是非法的。您对保持在范围内且遵守法律负全部责任。作者
对滥用不承担任何责任。
## 功能
- **scan ``** — 运行 nmap 服务扫描,然后返回有关
开放端口、服务和合理后续步骤的 LLM 解释。
- **recon ``** — 使用 subfinder 枚举子域,使用
httpx 探测存活主机(状态、标题、检测到的技术),然后返回 LLM 攻击面摘要。
- **持久化记忆** — 侦察结果自动保存到本地 JSON 存储;收藏目标并
查看历史记录。
- **Telegram bot** — 在手机上实现相同的功能,受用户 ID 允许列表控制。
- **设计安全** — 输入验证会阻止 shell 元字符;每个外部命令
均以参数列表形式运行(绝不通过 shell);密钥仅从 `.env` 加载。
## 技术栈
- **语言:** Python 3.13
- **侦察/扫描工具:** nmap、subfinder、httpx (ProjectDiscovery)
- **LLM:** OpenAI API(模型可配置)
- **Bot:** python-telegram-bot(异步)
- **存储:** JSON(无外部数据库)
## 架构
```
vulnixz-ai-pentest-agent/
├── ai/ # LLM integration (ask_gpt is the single LLM call site)
├── tools/ # nmap and recon wrappers (subprocess, no shell)
├── memory/ # JSON-backed persistence
├── bot/ # Telegram front end
├── utils/ # input validation / target normalization
├── main.py # CLI dispatcher
└── config.py # env + settings (no hardcoded secrets)
```
### 数据流
```
flowchart TD
A["You: CLI command or Telegram message"] --> B["main.py / bot.py
parse + dispatch"] B --> C["utils/validators.py
normalize + block injection"] C --> D{"scan or recon?"} D -->|scan| E["tools/nmap.py
subprocess, no shell"] D -->|recon| F["tools/recon.py
subfinder then httpx"] E --> G["ai/gpt.py
ask_gpt: the only LLM call"] F --> G F --> H["memory/memory.py
auto-save to db.json"] G --> I["Result: raw output + plain-English summary"] config["config.py
keys + settings"] -.-> G classDef io fill:#E1F5EE,stroke:#0F6E56,color:#04342C; classDef core fill:#EEEDFE,stroke:#534AB7,color:#26215C; class A,I io; class B,C,E,F,G,H core; ``` CLI 和 Telegram bot 都调用**相同**的核心函数并共享**相同** 数据存储 —— bot 是第二个接口,而不是第二个实现。 ## 安装说明 需要 Linux 环境(在 Kali 上开发),且需安装 nmap、subfinder 和 httpx-toolkit,以及 Python 3.13。 ``` # 安装外部工具(Kali / Debian) sudo apt install -y nmap subfinder httpx-toolkit # clone 并进入该项目 git clone https://github.com//vulnixz-ai-pentest-agent.git
cd vulnixz-ai-pentest-agent
# 创建虚拟环境并安装 Python deps
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# 配置 secrets
cp .env.example .env
# 然后编辑 .env 并填入您自己的值(见下文)
```
### 环境变量 (.env)
| 变量 | 用途 |
|---|---|
| OPENAI_API_KEY | 您的 OpenAI API key |
| OPENAI_MODEL | 模型名称(默认:gpt-4o-mini) |
| HTTPX_BIN | httpx 二进制文件名称(在 Kali 上默认为:httpx-toolkit) |
| TELEGRAM_BOT_TOKEN | 来自 @BotFather 的 bot token(可选,用于 bot) |
| TELEGRAM_ALLOWED_IDS | 允许使用该 bot 的 Telegram 用户 ID(以逗号分隔) |
`.env` 已被 gitignored,绝不能提交。
## 使用说明
```
# 扫描您已授权测试的 host
python main.py scan scanme.nmap.org
# recon 已授权的 domain
python main.py recon example.com
# 收藏 target 并查看历史记录
python main.py save example.com "lab target"
python main.py history
# 运行 Telegram bot(命令:/scan /recon /history /help)
python -m bot.bot
```
## 安全说明
- 密钥仅存在于 `.env`(gitignored)中;没有硬编码的密钥。
- 目标在使用前会被标准化并筛选出 shell 元字符。
- 外部工具作为参数列表调用,从不通过 `shell=True`。
- Telegram bot 默认拒绝(fail closed):在允许列表为空时,它会拒绝所有人。
- 本地结果存储 (`memory/db.json`) 已被 gitignored,因此真实的侦察数据永远不会泄露。
## 路线图(计划中)
- 跨 OpenAI、Gemini 和 Claude 的多模型路由层 (`ai/router.py`)。
- 用于计费 LLM 使用量的 Bedrock 后端选项。
- 用于跟踪学习进度的“职业记忆”模式。
- n8n 工作流自动化。
- Web 仪表板 / UI。
## 免责声明
本软件仅出于教育和授权测试目的提供。请仅对
您拥有或被明确允许评估的系统使用它。作者不对
任何滥用或损坏负责。
parse + dispatch"] B --> C["utils/validators.py
normalize + block injection"] C --> D{"scan or recon?"} D -->|scan| E["tools/nmap.py
subprocess, no shell"] D -->|recon| F["tools/recon.py
subfinder then httpx"] E --> G["ai/gpt.py
ask_gpt: the only LLM call"] F --> G F --> H["memory/memory.py
auto-save to db.json"] G --> I["Result: raw output + plain-English summary"] config["config.py
keys + settings"] -.-> G classDef io fill:#E1F5EE,stroke:#0F6E56,color:#04342C; classDef core fill:#EEEDFE,stroke:#534AB7,color:#26215C; class A,I io; class B,C,E,F,G,H core; ``` CLI 和 Telegram bot 都调用**相同**的核心函数并共享**相同** 数据存储 —— bot 是第二个接口,而不是第二个实现。 ## 安装说明 需要 Linux 环境(在 Kali 上开发),且需安装 nmap、subfinder 和 httpx-toolkit,以及 Python 3.13。 ``` # 安装外部工具(Kali / Debian) sudo apt install -y nmap subfinder httpx-toolkit # clone 并进入该项目 git clone https://github.com/
标签:LLM集成, Petitpotam, Python, Telegram机器人, 主机安全, 插件系统, 无后门, 自动化侦察, 运行时操纵