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, 反取证, 大模型渗透测试, 安全评估, 密码管理, 无后门, 模型边界测试, 深度令牌测试, 私有化部署, 自动化攻击代理, 逆向工具, 防御规避