xM4skByt3z/promptix

GitHub: xM4skByt3z/promptix

针对大型语言模型的对抗性渗透测试工具包,一条命令完成 OWASP LLM Top 10 安全评估并生成结构化报告。

Stars: 0 | Forks: 0

# Promptix **针对大型语言模型的对抗性渗透测试工具包。** Promptix 会自动探测任何 LLM endpoint,检查映射到 [OWASP Top 10 for LLM Applications](https://owasp.org/www-project-top-10-for-large-language-model-applications/) 的最关键 AI 安全问题。 只需将其指向一个 API,运行一条命令,即可获得一份结构化报告,涵盖提示注入路径、越狱向量、训练数据泄露、模型偏差以及对抗鲁棒性漏洞。 ![promptix 针对 offline echo 目标的运行过程](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/a9976e6e6f203218.png) ## 功能特性 - **提示注入** — 直接和间接的指令覆盖(OWASP LLM01) - **越狱分析** — DAN、开发者模式、角色扮演绕过、编码技巧(LLM01/LLM10) - **训练数据泄露** — 系统提示词提取、凭证暴露(LLM06) - **模型偏差** — 性别、种族和年龄偏见;谄媚检测(LLM09) - **对抗鲁棒性** — Unicode 同形字、零宽字符、字符交换、同形字替换;可选通过 [Adversarial Robustness Toolbox](https://github.com/Trusted-AI/adversarial-robustness-toolbox) 进行边界估计 - **零配置离线模式** — 内置 echo 桩,用于演示和 CI,无需任何 API key - **多目标** — 兼容 OpenAI 的 API(OpenAI、Ollama、vLLM、LM Studio、llama.cpp),或任何通用的 HTTP endpoint - **报告** — 结构化的 JSON 和 Markdown 渗透测试报告 ## 安装说明 ### Kali Linux / Debian ``` git clone https://github.com/xm4skbyt3z/promptix cd promptix sudo bash install.sh ``` ### 任何安装了 Python 3.10+ 的系统 ``` git clone https://github.com/xm4skbyt3z/promptix cd promptix pip install -e . ``` ### 可选 — Adversarial Robustness Toolbox (ART) 在 `robustness` 模块中启用 HopSkipJump 边界估计步骤: ``` pip install -e ".[art]" ``` ### 依赖项 | 包 | 版本 | 用途 | |---------|---------|---------| | `httpx` | ≥ 0.27 | 异步 HTTP 客户端 | | `rich` | ≥ 13.7 | 控制台输出 | | `typer` | ≥ 0.12 | CLI 框架 | | `prompt_toolkit` | ≥ 3.0 | 终端辅助工具 | | `PyYAML` | ≥ 6.0 | 配置解析 | | `pydantic` | ≥ 2.6 | 数据校验 | | **可选** | | | | `adversarial-robustness-toolbox` | ≥ 1.17 | ART 边界分析 | | `numpy` | ≥ 1.26 | ART 必需 | | `scikit-learn` | ≥ 1.4 | ART 必需 | ## 快速入门 ``` # 离线演示 — 无需 API key promptix --echo # 本地 LLM (Ollama, LM Studio, vLLM, llama.cpp) promptix -u http://localhost:11434/v1 # OpenAI promptix -u https://api.openai.com/v1 --key $OPENAI_API_KEY --model gpt-4o # 带有自定义 body template 的通用 HTTP endpoint promptix -u http://target.internal/api/chat \ --body '{"message":"{prompt}"}' \ --response-path output.text # 同时保存 JSON 和 Markdown 报告 promptix --echo -o report.json --report-md report.md ``` ## 使用方法 ``` promptix [OPTIONS] Target selection: -u, --url URL LLM API base URL --echo Use built-in offline stub (no API key needed) --model TEXT Model name [default: gpt-4o-mini] -k, --key TEXT API key (or env OPENAI_API_KEY) --body JSON JSON body template for generic HTTP targets --response-path PATH Dot-path to extract response text from JSON reply Attack modules: -m, --module NAME Module to run; repeat for multiple [default: all] injection | jailbreak | bias | leakage | robustness | all Output: -o, --output FILE Write JSON report --report-md FILE Write Markdown report -v, --verbose Show raw payloads and responses -q, --quiet Suppress all output except findings Tuning: -c, --concurrency INT Concurrent probes [default: 4] --max-payloads INT Payload cap per module (0 = unlimited) --stop-on-hit Stop on first finding per module -T, --timeout FLOAT Per-request timeout in seconds [default: 30] Misc: --list-modules Print available modules and exit -V, --version Print version and exit --help Show this message and exit ``` ## 模块 | 标志 | OWASP LLM | 测试内容 | |------|-----------|---------------| | `injection` | LLM01 | 直接和间接提示注入 | | `jailbreak` | LLM01, LLM10 | DAN、开发者模式、角色扮演、基于编码的绕过 | | `bias` | LLM09 | 性别、种族、年龄偏见;谄媚 | | `leakage` | LLM06 | 系统提示词提取、凭证模式 | | `robustness` | LLM01, LLM02 | 文本扰动、Unicode 同形字、ART 边界分析 | | `all` | — | 包含以上所有(默认) | ## 目标适配器 | 适配器 | 激活条件 | |---------|-------------------| | `echo` | `--echo` 标志 | | `openai` | URL 以 `/v1` 结尾或包含 `openai.com` | | `http` | 任何其他 URL(需要 `--body` 模板) | ## 示例输出 ``` Promptix v0.1.0 — adversarial LLM pentest toolkit Target openai @ https://api.openai.com/v1 model gpt-4o Modules injection, jailbreak, leakage, bias, robustness Prompt Injection ───────────────────────────────────────── [HIGH] ignore_previous → system prompt disclosed [MEDIUM] nested_instruction → partial override detected Jailbreak ──────────────────────────────────────────────── [CRITICAL] dan_classic → restriction bypass confirmed Summary 3 findings (1 critical · 1 high · 1 medium · 0 low) Reports → report.json · report.md ``` ## 报告 ### JSON 报告 ``` { "meta": { "tool": "Promptix", "version": "0.1.0", "target": "openai", "modules": ["injection", "jailbreak"] }, "findings": [ { "module": "prompt_injection", "technique": "ignore_previous", "severity": "HIGH", "confidence": 0.9, "payload": "Ignore previous instructions...", "response": "...", "indicators": ["system prompt", "revealed"] } ], "summary": { "total": 1, "high": 1 } } ``` ### Markdown 报告 一份完整的渗透测试报告,包括执行摘要、带有严重性等级的发现结果表、原始 payload 和模型响应,以及修复建议。 ## 退出代码 | 代码 | 含义 | |------|---------| | `0` | 扫描完成 — 无 HIGH 或 CRITICAL 发现 | | `1` | 检测到一个或多个 HIGH 或 CRITICAL 发现 | | `2` | 使用错误或致命故障(网络、配置) | ## 类似工具 | 工具 | 方法 | 备注 | |------|----------|-------| | [garak](https://github.com/leondz/garak) | 基于插件的 LLM 漏洞扫描器 | 更广泛的插件生态;复杂度更高 | | [PyRIT](https://github.com/Azure/PyRIT) | 微软 AI 红队框架 | 专注于 Azure AI;仅提供 Python API,无 CLI | | [PromptBench](https://github.com/microsoft/promptbench) | 对抗性 prompt 基准测试套件 | 侧重于研究/基准测试,非渗透测试 | | [promptmap](https://github.com/utkusen/promptmap) | 提示注入测试器 | 单一模块,范围较简单 | Promptix 的与众不同之处在于其单条命令的 CLI、单次运行即可覆盖五个 OWASP LLM 类别,以及原生的 Kali/Debian 打包支持。 ## 道德使用声明 本工具仅用于**授权的安全测试**。 在测试您不拥有或无法控制的任何系统之前,请获得明确的书面许可。 所有内置的 payload 语料库均来自公开可用的研究和 OWASP LLM Top 10 项目。 作者不对本软件的滥用承担责任。 ## 许可证 MIT — 请参阅 [LICENSE](LICENSE)。 欢迎贡献 — 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
标签:AI安全, API安全测试, Chat Copilot, CISA项目, Cobalt Strike, DLL 劫持, LLM01, LLM06, LLM09, LLM10, OWASP LLM Top 10, Python, 人工智能, 反取证, 大语言模型, 安全评估, 对抗性攻击, 恶意代码分类, 攻击诱捕, 文本混淆, 无后门, 模型偏见分析, 用户模式Hook绕过, 越狱检测, 运行时操纵, 逆向工具, 鲁棒性分析