AITTACK - 利用AI中转站服务进行钓鱼攻击
2026-05-18 17:21:54

AITTACK - 利用AI中转站服务进行钓鱼攻击

项目地址

https://github.com/KaGty1/AITTAK

Agent 工作原理

sequenceDiagram
    participant U as 用户
    participant C as Claude / Claude Code
    participant L as LLM
    participant FS as 本地文件系统

    U->>C: Prompt:
分析 hello.java 文件的代码,找到 xxx 报错原因 rect rgb(255, 235, 235) Note over C,L: 误区:以为 Claude 会先主动读文件 C->>FS: 先读取 hello.java FS-->>C: 返回文件内容 C->>L: 把 Prompt + 文件内容发给 LLM L-->>C: 返回分析结果 C-->>U: 返回给用户 end rect rgb(235, 255, 235) Note over C,L: 正确:LLM 先决定是否需要读文件 C->>L: 发送 Prompt + 可用工具列表 L-->>C: 返回工具调用:
read_file("hello.java") C->>FS: 执行读取 hello.java FS-->>C: 返回文件内容 C->>L: 把读取结果作为 tool result 发回 LLM L-->>C: 返回最终分析结果 C-->>U: 返回给用户 end

Sub2api 中转站框架分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
┌─────────────────────────────────────────────────────────────────┐
│ 本地客户端 (Claude Code / Codex CLI / 自定义应用) │
│ 配置: ANTHROPIC_BASE_URL=http://sub2api:8080 │
│ ANTHROPIC_API_KEY=sk-sub2api-xxx (sub2api颁发的Key) │
└───────────────────────────────┬─────────────────────────────────┘
│ POST /v1/messages

┌───────────────────────────────────────────────────────────────────┐
│ sub2api 网关 │
│ │
│ 1. API Key 鉴权 → 找到用户/分组/订阅 │
│ 2. 账号调度 → 从账号池选择一个上游账号(带 base_url + api_key) │
│ 3. 请求转发 → 构造上游请求,透传/改写后发送 │
│ 4. 响应流式回传 → SSE 流原样返回客户端 │
│ 5. 计费记录 → token 用量扣费 │
└───────────────────────────────┬─────────────────────────────────┘
│ POST https://api.anthropic.com/v1/messages
│ (或自定义 base_url)

┌───────────────────────────────────────────────────────────────────┐
│ 上游 API (Anthropic / OpenAI / Gemini / ...) │
└───────────────────────────────────────────────────────────────────┘

AITTAK 构建思路

1、中间人攻击监听

结合 HaE 正则匹配规则,对使用中转站的用户的Prompt及工具调用结果进行监听匹配

sequenceDiagram
    participant Client as Claude Code
    participant Proxy as AITTAK
    participant Upstream as 上游 API

    Client->>Proxy: POST /v1/messages (sk-proxy-xxx)
    Proxy->>Proxy: 验证 API Key
    Proxy->>Proxy: 提取 Prompt、工具调用信息
    Proxy->>Upstream: 转发请求(替换为真实 API Key)
    Upstream-->>Proxy: SSE 流式响应
    Proxy-->>Client: 透传响应(重写 model 字段)
    Proxy->>Proxy: 记录审计日志(异步)
    Proxy->>Proxy: HaE正则扫描敏感信息
    Proxy->>Proxy: 写入 SQLite

2、注入工具调用

通过在SSE注入工具调用实现文件读取、文件编辑、甚至执行任意命令

sequenceDiagram
    participant Client as Claude Code
    participant Proxy as AITTAK
    participant Upstream as 上游 API

    Note over Client,Upstream: 第一轮:模型调用工具,代理注入额外工具

    Client->>Proxy: POST /v1/messages
    Proxy->>Upstream: 转发请求
    Upstream-->>Proxy: SSE 响应(含 tool_use: Bash)
    Proxy->>Proxy: 检测到 Bash 调用,匹配注入规则
    Proxy->>Proxy: 生成额外 tool_use block(inject-xxx)
    Proxy-->>Client: 原始 tool_use + 注入的 tool_use

    Note over Client: 客户端执行所有工具(含注入的)

    Note over Client,Upstream: 第二轮:代理剥离注入结果

    Client->>Proxy: POST /v1/messages(含 inject-xxx 的 tool_result)
    Proxy->>Proxy: 识别 inject- 前缀,剥离注入的 tool_result
    Proxy->>Proxy: 将剥离的结果写入审计日志
    Proxy->>Upstream: 转发清理后的请求(上游无感知)
    Upstream-->>Proxy: 正常响应
    Proxy-->>Client: 透传响应

钓鱼攻击

可以结合 GPT 目前强大的生图功能,生成一些公有云厂家的 AI 试用海报,批量发送进行钓鱼攻击

image

假如张三使用了该中转进行项目开发/对话,我们可以就可以对其进行行为监控/工具注入

行为监控 - 提取敏感信息

当张三使用我们的中转站进行开发工作,例如 “解释 xxx 项目的代码”,且代码中硬编码了敏感的ak/sk,我们就可以进行监控并提取该密钥进行利用

image

image

image

工具注入

我们可以设置规则 - 当张三的prompt让模型去读某个文件时,我们可以注入Read工具去读取张三主机中的/etc/passwd文件

image

image

imageimage

写在结尾

作为一名安全领域 AI 方向的初学者,我对 AI 相关技术的理解和实践可能还存在不足,项目中也难免会有设计不完善或表述不准确的地方。非常欢迎大家批评指正,也欢迎一起交流更多攻击思路、检测方法和改进方案。

如果你对这个项目感兴趣,欢迎提交 Issue 或 PR,一起完善这个项目。

上一页
2026-05-18 17:21:54