记一次阿里云主机泄露Access Key到Getshell
字数 1527 2025-08-15 21:32:45

阿里云主机Access Key泄露到Getshell完整利用指南

0x00 前言

本文详细记录了一次通过阿里云Access Key泄露到最终获取服务器shell的完整过程。Access Key是阿里云API调用的重要凭证,一旦泄露可能导致严重的安全问题。

0x01 信息收集阶段

  1. 初始发现

    • 在网站登录页面输入"login"后意外暴露调试信息
    • 调试信息中泄露了Redis、MySQL和阿里云Access Key凭证
  2. 关键凭证

    • ALIYUN_ACCESSKEYID
    • ALIYUN_ACCESSKEYSECRET

0x02 手工利用方法

第一步:验证Access Key有效性

使用行云管家(https://yun.cloudbility.com/)验证Access Key:

  1. 选择"阿里云主机"
  2. 导入Key ID和Key Secret
  3. 成功导入后可查看主机信息

重要注意事项

  • 不要执行重置操作系统密码等不可逆操作
  • 只需记录两个关键信息:
    • 实例ID
    • 所属网络(Region)

第二步:使用阿里云API管理器

访问阿里云API管理器:https://api.aliyun.com/#/?product=Ecs

1. 创建命令(CreateCommand)

  1. 搜索并选择"CreateCommand"
  2. 填写参数:
    • Name:任意名称
    • Type:根据目标系统选择
      • RunBatScript:Windows Bat脚本
      • RunPowerShellScript:Windows PowerShell脚本
      • RunShellScript:Linux Shell脚本
    • CommandContent:Base64编码的命令
  3. 选择Python语言
  4. 点击"调试SDK示例代码"
  5. 修改生成的CreateCommand.py文件:
    • 更新accessKeyId和accessSecret
  6. 执行脚本,记录返回的CommandId

2. 调用命令(InvokeCommand)

  1. 搜索并选择"InvokeCommand"
  2. 填写参数:
    • RegionId:从行云管家获取的所属网络
    • CommandId:上一步获取的CommandId
    • InstanceId:实例ID
  3. 选择Python语言
  4. 点击"调试SDK示例代码"
  5. 修改生成的InvokeCommand.py文件:
    • 更新accessKeyId和accessSecret
  6. 在本地使用nc监听端口
  7. 执行InvokeCommand.py脚本
  8. 成功获取反弹shell

0x03 工具利用方法

使用开源工具alicloud-tools简化流程:

工具地址:https://github.com/iiiusky/alicloud-tools

基本用法

  1. 查看所有实例信息:

    AliCloud-Tools.exe -a <AccessKey> -s <SecretKey> ecs --list
    
  2. 执行命令:

    AliCloud-Tools.exe -a <AccessKey> -s <SecretKey> ecs exec -I <实例ID> -c "执行命令"
    

0x04 Access Key常见泄露场景

  1. 报错信息/调试信息:如本文案例
  2. Web页面/JS文件:前端代码中硬编码
  3. APP中:APK文件中存放
  4. Github等代码仓库:通过关键字搜索发现
  5. 低权限WebShell:通过文件搜索获取

0x05 防御措施

  1. 最小权限原则:为Access Key分配最小必要权限
  2. 定期轮换:定期更换Access Key
  3. 日志监控:监控异常API调用
  4. 避免硬编码:不要将凭证写入代码或配置文件
  5. 子账号管理:使用RAM子账号而非主账号Access Key
  6. IP限制:为Access Key设置调用IP白名单

0x06 总结

阿里云Access Key泄露可能导致严重的安全问题,攻击者可以完全控制云主机。通过本文介绍的手工和工具两种方法,可以快速验证Access Key的风险。防御方面应遵循最小权限原则,并加强凭证管理。

阿里云主机Access Key泄露到Getshell完整利用指南 0x00 前言 本文详细记录了一次通过阿里云Access Key泄露到最终获取服务器shell的完整过程。Access Key是阿里云API调用的重要凭证,一旦泄露可能导致严重的安全问题。 0x01 信息收集阶段 初始发现 : 在网站登录页面输入"login"后意外暴露调试信息 调试信息中泄露了Redis、MySQL和阿里云Access Key凭证 关键凭证 : ALIYUN_ACCESSKEYID ALIYUN_ACCESSKEYSECRET 0x02 手工利用方法 第一步:验证Access Key有效性 使用行云管家(https://yun.cloudbility.com/)验证Access Key: 选择"阿里云主机" 导入Key ID和Key Secret 成功导入后可查看主机信息 重要注意事项 : 不要执行重置操作系统密码等不可逆操作 只需记录两个关键信息: 实例ID 所属网络(Region) 第二步:使用阿里云API管理器 访问阿里云API管理器:https://api.aliyun.com/#/?product=Ecs 1. 创建命令(CreateCommand) 搜索并选择"CreateCommand" 填写参数: Name:任意名称 Type:根据目标系统选择 RunBatScript:Windows Bat脚本 RunPowerShellScript:Windows PowerShell脚本 RunShellScript:Linux Shell脚本 CommandContent:Base64编码的命令 选择Python语言 点击"调试SDK示例代码" 修改生成的CreateCommand.py文件: 更新accessKeyId和accessSecret 执行脚本,记录返回的CommandId 2. 调用命令(InvokeCommand) 搜索并选择"InvokeCommand" 填写参数: RegionId:从行云管家获取的所属网络 CommandId:上一步获取的CommandId InstanceId:实例ID 选择Python语言 点击"调试SDK示例代码" 修改生成的InvokeCommand.py文件: 更新accessKeyId和accessSecret 在本地使用nc监听端口 执行InvokeCommand.py脚本 成功获取反弹shell 0x03 工具利用方法 使用开源工具alicloud-tools简化流程: 工具地址:https://github.com/iiiusky/alicloud-tools 基本用法 查看所有实例信息: 执行命令: 0x04 Access Key常见泄露场景 报错信息/调试信息 :如本文案例 Web页面/JS文件 :前端代码中硬编码 APP中 :APK文件中存放 Github等代码仓库 :通过关键字搜索发现 低权限WebShell :通过文件搜索获取 0x05 防御措施 最小权限原则 :为Access Key分配最小必要权限 定期轮换 :定期更换Access Key 日志监控 :监控异常API调用 避免硬编码 :不要将凭证写入代码或配置文件 子账号管理 :使用RAM子账号而非主账号Access Key IP限制 :为Access Key设置调用IP白名单 0x06 总结 阿里云Access Key泄露可能导致严重的安全问题,攻击者可以完全控制云主机。通过本文介绍的手工和工具两种方法,可以快速验证Access Key的风险。防御方面应遵循最小权限原则,并加强凭证管理。