从被动扫描到云服务器沦陷:一次aliyun aksk泄露的完整攻防复盘

张开发
2026/4/10 12:50:38 15 分钟阅读

分享文章

从被动扫描到云服务器沦陷:一次aliyun aksk泄露的完整攻防复盘
1. 被动扫描发现AKSK泄露的起点那天我正在做一次常规的渗透测试用的是BurpSuite配合APIFinder插件进行被动扫描。这个插件我用了两年多最大的特点就是能在海量流量中自动检测敏感信息。说实话平时看到它报AKSK泄露的提示我都不太当回事因为误报率实在太高了。但这次在翻查一个JS文件时我发现了两个特别扎眼的变量名APP_OSS_KEY和SECRET后面的值格式完全符合阿里云AKSK的特征。这里给新手解释下AKSK是什么。简单说就像你家门的钥匙——AccessKey相当于钥匙编号SecretKey就是钥匙齿纹。在阿里云体系里有了这对密钥就能操作对应的云资源包括但不限于OSS存储桶相当于云上的硬盘ECS云服务器相当于远程电脑RDS数据库相当于云上的MySQL我当时心跳都加快了因为这种前端JS文件泄露AKSK的情况十次里有九次都是测试用的无效密钥。但职业习惯让我马上打开OSS Browser阿里云官方出的存储桶管理工具把这两串字符粘贴进去...2. 验证AKSK有效性的实战操作当OSS Browser的进度条开始读取文件列表时我就知道事情不简单了。这个存储桶里堆满了客户资料、项目文档甚至还有数据库备份文件。这里分享个实用技巧验证AKSK是否有效时建议先用只读权限操作。比如在OSS Browser里先尝试列出文件列表而不是直接上传/删除文件这样可以避免触发云平台的安全机制。通过OSS的API我很快摸清了这个AKSK的权限范围对某个OSS存储桶有完全控制权可以列出当前账号下的ECS实例但没有直接操作ECS的权限这时候就要用到云环境渗透的经典工具链了。我先试了试cfCloudFlare的旧版工具这个工具可以直接用AKSK创建ECS的管理账号。但实测发现阿里云现在对这种操作监控很严刚执行完创建命令客户的手机就收到告警短信了——这就是为什么实战中要慎用这类敏感操作。3. 使用Aliyun-AK-Tools进行权限提升后来换用Aliyun-AK-Tools这个专门针对阿里云的工具就稳多了。它在设计上更隐蔽主要功能包括直接通过API执行命令不需要创建新账号支持批量操作多台ECS可以获取临时访问凭证具体操作命令是这样的./aliyun-ak-tools --akAKID --skSECRET --regioncn-hangzhou --commandwhoami这个工具最厉害的地方是能绕过部分安全审计因为它使用的是阿里云官方API的合法调用方式。通过它我发现在这个账号下有3台ECS实例而且都是root权限。这里有个细节阿里云的ECS默认禁止root直接登录但通过AKSK调用API执行命令时默认就是最高权限。4. 攻击链中的关键节点分析整个攻击过程有几个关键转折点值得防御方注意JS文件泄露开发人员将测试用的AKSK硬编码在前端代码中且没有设置IP白名单权限过大这个AKSK绑定了AdministratorAccess策略缺乏监控攻击者多次调用敏感API但没有触发风控特别是最后一个点我后来复盘时发现阿里云其实有多个维度的安全防护操作审计ActionTrail会记录所有API调用安全中心可以检测异常登录RAM权限管理能限制AKSK的权限范围但客户当时这些防护措施要么没开启要么配置不当。比如ActionTrail虽然开着但没人查看日志安全中心的告警阈值设置得太高。5. 防御方案与实战建议基于这次实战经验我总结了几条防御建议AKSK管理规范禁止在代码中硬编码凭证使用RAM子账号并遵循最小权限原则定期轮换密钥建议90天日志监控必做项# 检查ActionTrail是否开启 aliyun actiontrail DescribeTrails # 查看最近一周的异常登录 aliyun securitycenter DescribeLoginLogs --StartTime$(date -d 7 days ago %s)应急响应措施发现泄露立即禁用AKSK检查是否有异常资源创建审查近期的API调用记录这次渗透最让我后怕的是从发现AKSK到完全控制服务器全程只用了不到20分钟。云环境的攻击面比传统网络大得多一个前端代码的疏忽就可能引发连锁反应。现在我做项目时都会特别检查JS/CSS文件里是否包含accessKey、secret这类关键词这个习惯已经帮我发现了多次潜在风险。

更多文章