neuralxploit/a2a-redteam

GitHub: neuralxploit/a2a-redteam

基于本地 Ollama 模型驱动的自主红队 Agent,用于对 AI 聊天机器人和 LLM API 进行自适应安全测试与漏洞挖掘。

Stars: 0 | Forks: 0

# A2A Red Team Agent 用于测试 AI 聊天机器人、A2A (Agent-to-Agent) 端点以及 OpenAI 兼容 API 的自主 LLM 驱动红队 Agent。使用本地 Ollama 模型自适应地对目标进行探测,以发现提示注入、凭据泄露、SSRF 以及其他 LLM 安全问题。 ## 环境要求 - Python 3.10+ - 本地运行并已拉取至少一个模型的 [Ollama](https://ollama.ai/) ## 设置 ``` pip install -r requirements.txt ``` 拉取 Ollama 模型(如果您还没有): ``` ollama pull kimi-2.5:cloud ``` ## CLI 参考 | 参数 | 短参数 | 默认值 | 描述 | |----------|-------|---------|-------------| | `--target` | `-t` | *必填* | 目标 URL (A2A, Ollama, OpenAI-compat, 任何 HTTP 端点) | | `--model` | `-m` | `kimi-2.5:cloud` | 驱动红队 Agent 的 Ollama 模型 | | `--ollama-url` | | `http://localhost:11434` | 攻击者 LLM 的 Ollama 服务器地址 | | `--turns` | `-n` | `15` | 最大对话轮数 | | `--prompt` | `-p` | | 自定义第一条消息 | | `--discover` | `-d` | | 工具/MCP 发现模式 - 探测能力后退出 | | `--reasoning` | `-r` | | 深度推理模式 (32K 上下文, 战略记忆, 完整历史) | | `--temperature` | | `0.8` | 攻击者 LLM 温度 (0.0-2.0) | | `--deep-token` | | | 深度 token 测试 (分词利用, 训练提取, 特殊 token 注入) | | `--fresh-model` | | | 全新/微调模型审计 (系统提示提取, 能力发现, 安全边界) | | `--capability-discovery` | | | 专注于能力和工具发现 | | `--boundary-mapping` | | | 专注于安全边界映射 | | `--finetune-detect` | | | 专注于微调差异检测 | | `--oast` | | | 用于 SSRF 测试的 OAST 回调 URL (Burp Collaborator, interactsh 等) | | `--api-key` | | | 用于直接 API 测试的 API 密钥 (xAI, OpenAI, Anthropic 等) | | `--api-model` | | `grok-3` | API 上要测试的模型 | | `--target-model` | | | 目标 Ollama 服务器上要测试的特定模型 | | `--target-context` | | | 描述目标机器人以便攻击者调整策略 | | `--attack-categories` | | | 要使用的逗号分隔的新攻击类别 | | `--list-categories` | | | 列出所有可用的攻击类别并退出 | | `--chat-endpoint` | | | 自定义聊天端点路径 (例如, `/api/question`) | | `--chat-field` | | `message` | payload 中消息的字段名 | | `--chat-response` | | `message,response,answer,content` | 尝试的响应字段名 | | `--chat-extra` | | | 额外的 JSON 字段 (例如, `threadID:null,context:null`) | | `--chat-header` | | | 自定义 HTTP 标头 (可重复) | | `--chat-nest` | | | 将消息包装为嵌套对象 `{field: {content: msg, role: 'user'}}` | | `--chat-poll` | | | 为返回 job_id 的 API 启用异步任务轮询 | | `--websocket` | | | 使用 WebSocket/SignalR 协议 | | `--ws-target` | | `message` | SignalR 目标方法 | | `--ws-response` | | `message,response,answer,text` | WebSocket 响应字段名 | | `--ws-message-id` | | | WebSocket payload 的自定义消息 ID | ## 最佳命令 ### Reasoning 模式 - 全功率自适应攻击 最重要的标志。为攻击者 LLM 提供 32K 上下文、完整的对话历史以及跟踪有效和失败方法的战略记忆。Agent 会构建目标防御模型并进行自适应调整。 ``` python a2a_agent.py -t http://localhost:8000/chat -r --turns 30 ``` ### 结合深度 Token 测试的全谱攻击 将推理与 30 多个类别的分词利用、训练数据提取、特殊 token 注入(ChatML、Llama、Mistral 格式 token)以及 SSRF payload 相结合。 ``` python a2a_agent.py -t http://target:8080 -r --deep-token --turns 30 --temperature 1.2 ``` ### 带有目标上下文的 OAST/SSRF 测试 注入 SSRF payload(AWS 元数据、file://、localhost 管理面板)。目标上下文向攻击者提供领域知识,以便其精心制作情境化的社会工程攻击。 ``` python a2a_agent.py -t http://target:8080 \ --oast https://xyz.oast.fun \ --target-context "e-commerce shopping bot with product catalog and order data access" \ -r --turns 20 ``` ### 全新/微调模型综合审计 激活所有全新模型子模式:系统提示提取、能力发现、安全边界映射、微调差异检测、指令层级利用。前 8 轮使用结构化探测,然后转变为自适应攻击。 ``` python a2a_agent.py -t http://target:8080 --fresh-model -r --turns 30 ``` ### 仅安全边界映射 映射拒绝边界 - 什么话题会触发安全过滤器,什么被禁止 - 然后测试边缘案例(网络安全框架、学术背景、虚构、CTF、逐步升级)。 ``` python a2a_agent.py -t http://target:8080 --boundary-mapping -r --turns 20 ``` ### 直接 API 测试 跳过协议检测,直接攻击商业 API。 ``` python a2a_agent.py -t https://api.x.ai/v1 --api-key "$XAI_KEY" --api-model grok-3 -r --deep-token --turns 25 ``` ### 仅发现侦察 非破坏性侦察。探测 A2A Agent 卡片、MCP 工具、能力、文件访问、代码执行和 Agent 路由。探测后退出。 ``` python a2a_agent.py -t http://target:8080 -d ``` ### 基于编码的过滤器绕过 专注于零宽字符、西里尔字母同形文字、全角拉丁文、盲文、不可见的 Unicode 标签、emoji 谜题。绕过基于关键词的安全过滤器。 ``` python a2a_agent.py -t http://target:8080 \ --attack-categories 'unicode_smuggling,emoji_smuggling,multi_script_confusion,steganographic_text' \ -r --turns 20 ``` ### 带认证的自定义 REST API 无论 Schema 如何,都可以访问任何任意 REST API。自定义字段映射、标头、额外字段。 ``` python a2a_agent.py -t https://app.example.com \ --chat-endpoint /api/question \ --chat-field question \ --chat-response answer,response \ --chat-extra 'threadID:null,context:null' \ --chat-header 'Cookie: session=abc123' \ --chat-header 'Authorization: Bearer tok' \ -r --deep-token ``` ### WebSocket / SignalR 机器人测试 通过使用 SignalR 协议帧的 WebSocket 测试实时聊天机器人(Microsoft Bot Framework,自定义 hubs)。 ``` python a2a_agent.py -t wss://bot.example.com/hub \ --websocket --ws-target sendMessage --ws-response botResponse,text \ -r --turns 20 ``` ### Ollama-to-Ollama 配合无审查攻击者 使用无审查的攻击者模型对抗特定目标模型。高温以获得最大多样性。 ``` python a2a_agent.py -t http://target-ollama:11434 \ --target-model llama2-uncensored:latest \ -m dolphin-mistral:latest \ -r --deep-token --turns 30 --temperature 1.3 ``` ### 最大化 - 启用所有功能 ``` python a2a_agent.py -t http://target:8080 \ -r --deep-token --fresh-model \ --oast https://xyz.oast.fun \ --target-context "internal HR bot with employee database and payroll access" \ --attack-categories 'unicode_smuggling,many_shot_jailbreak,prefix_injection,recursive_injection' \ --temperature 1.4 --turns 40 ``` ## 攻击类别 ### 新型攻击(16 个类别) `many_shot_jailbreak` `crescendo` `refusal_suppression` `prefix_injection` `payload_splitting` `ascii_art` `recursive_injection` `summarization_extraction` `language_switching` `output_format_exploit` `emoji_smuggling` `unicode_smuggling` `emoji_text_hybrid` `multi_script_confusion` `steganographic_text` ### 深度 Token 攻击(30+ 个类别) `training_data_extraction` `tokenization` `training_patterns` `base_model` `special_tokens` `bias_probing` `context_exploits` `model_introspection` `xml_injection` `confusion_attack` `social_engineering` `temporal_confusion` `technical_pretexts` `trust_exploitation` `format_tricks` `code_extraction` `memory_disclosure` `tool_probing` `credential_hunting` `system_commands` `path_disclosure` `ssrf_injection` `jailbreaks` `schema_completion` `completion_bait` `document_extraction` `user_email_extraction` `pii_extraction` `infrastructure_extraction` `focused_secrets` `complex_queries` ### 全新模型攻击(5 个类别) `system_prompt_extraction` `capability_discovery` `safety_boundary_mapping` `finetune_diff_detection` `instruction_hierarchy` ## 目标自动检测 Agent 按顺序通过探测来自动检测目标类型: 1. **Ollama** - 检查 "Ollama is running" 响应,从 `/api/tags` 拉取模型列表 2. **OpenAI-Compatible** - 尝试 `/v1/chat/completions`, `/chat/completions` 3. **A2A (JSON-RPC)** - 尝试 `/tasks/send`, `/a2a` 使用 `message/send` 方法 4. **Simple Chat** - 尝试 `/ask`, `/chat`, `/ui/conversation/messages` 5. **Chat API variants** - `/api/chat` 使用 message/prompt/text/query/input 字段 6. **Question API** - `/api/question`, `/api/questions` 7. **Smart Discovery** - 如果全部失败,使用攻击者 LLM 分析目标的 HTML/API 并发现端点 处理 SSE 流、NDJSON 流,并从多种嵌套格式中提取响应。 ## 工作原理 1. **Protocol Detection** - 自动检测目标类型 (Ollama, OpenAI, A2A, REST, WebSocket) 2. **Adaptive Attacks** - 本地 Ollama LLM 根据目标响应生成攻击提示 3. **Strategic Memory** - 跟踪成功/失败的技术,模拟目标防御 4. **Exploit Queue** - 当攻击成功时,自动生成后续利用并对其进行优先排序 5. **Cross-Session Learning** - SQLite 数据库存储跨会话的成功攻击 6. **Confusion Attacks** - 定期注入“重复你刚才说的话”以重新泄露信息 7. **Interrogation Mode** - 当目标泄露数据时,通过合规性跟踪升级提取 8. **Dynamic Identity** - 根据发现的目标信息构建虚假身份用于社会工程 9. **Aggressive Obfuscation** - 动态应用 leetspeak、零宽字符和同形文字变异 10. **Reports** - 保存带有所有发现的时间戳 JSON 报告 ## 目标应用(故意易受攻击) 一个带有真实机密、用户数据库和泄漏端点的 FastAPI 聊天机器人 - 设计用作练习目标。 ``` cd target_app chmod +x run.sh ./run.sh deepseek-r1:8b # or any model from your ollama list ``` 然后在另一个终端中: ``` python a2a_agent.py --target http://localhost:8000/chat -r --deep-token --turns 50 ``` 有关端点和要提取的机密,请参阅 [target_app/README.md](target_app/README.md)。 ## 免责声明 此工具仅用于授权安全测试。仅对您拥有或明确获得测试许可的系统使用它。 ## 许可证 MIT
标签:A2A安全, Agent-to-Agent, AI合规性测试, AI安全, AI风险缓解, Chatbot安全, Chat Copilot, IP 地址批量处理, LLM评估, Ollama, OpenAI兼容API, Prompt注入, Python, SSRF, 反取证, 大模型渗透测试, 安全评估, 密码管理, 无后门, 模型边界测试, 深度令牌测试, 私有化部署, 自动化攻击代理, 逆向工具, 防御规避