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。 ## 免责声明 本软件仅出于教育和授权测试目的提供。请仅对 您拥有或被明确允许评估的系统使用它。作者不对 任何滥用或损坏负责。
标签:LLM集成, Petitpotam, Python, Telegram机器人, 主机安全, 插件系统, 无后门, 自动化侦察, 运行时操纵