日期:2021年03月02日

作者:goout

介绍:此文章记录了hvv时发现阿里云泄露Access Key的问题,后续复现利用方式的过程


0x00 前言

在2020年后半年某次护网比赛中,偶遇到阿里云主机泄露Access Key的页面,后续发现阿里云主机泄露Access KeyGetshell的方法,我哭了,小丑竟是我自己?总之就是非常后悔。

b9197dbbaaa4008d3a7fe0ad21ed660f

0x01 正文

首先看一下阿里云泄露Access Key的页面:

-w729

页面搜索能查到redismysql的账密及端口:

48ce62fbc99904a336c4f9e30e4a-c1389

redismysql都可以查看到账户密码,按照正常思路可以看看服务器的63793306端口有没有对外开放,利用这两个端口搞事情。但是!咱既然标题说了,利用阿里云的Access Key搞事情,那咱们直接往下看了~

4403e326df5bd803ec8cfd46d89d067d

我们继续看这个页面,下面发现泄漏了ALIYUN_ACCESSKEYIDALIYUN_ACCESSKEYSECRET,哦吼 ~ 快乐来了!

b9201e514132cc3122bf57939d38-c1379

这里我们讲一下利用链的两种方式:手动篇和工具篇。

0x02 手动篇

(1)首先用行云管家导入云主机,网站地址:https://yun.cloudbility.com/

步骤:登录->基础运维->导入阿里云主机->输入Access Key IDAccess Key Secet-> 选择主机 -> 导入即可

8c495f2ac1dd836354642471c73b7366

287065c1112a32b24a8d4d1d7882b-c1836

6bc9a08026206f9288cfb3fa70f14086

导入成功后,在主机管理可以看到主机信息:

d39b961e243f127aa481389ba4c169c5

(2)点进来查看详情,我们这步操作主要是为了得到两个数据:实例ID以及所属网络,拿到就可以走人了,其他的事情不要做,尤其是不可逆行为!

78199a5eba30f9c744bb1124175dab9a

不可以做不可逆操作!

23791089aad03dda6388427318c96f3a

(3)我们打开阿里云API管理器,这个管理器是提供给运维开发人员使用的一个工具。打开链接:https://api.aliyun.com/#/?product=Ecs

点击左边的搜索框:搜索command,我们会用到CreateCommandInvokeCommandCreateCommand是创建命令,InvokeCommand是调用命令。

c88c81d330d844b483bb88392f63183f

  • Name部分随意

  • Type指的是执行脚本类型

    RunBatScript:创建一个在Windows实例中运行的Bat脚本。

    RunPowerShellScript:创建一个在Windows实例中运行的PowerShell脚本。

    RunShellScript:创建一个在Linux实例中运行的Shell脚本。

  • CommandConten为执行命令,需要注意的是这里是填写base64编码。

  • 填写完后选择python

a4d36de7685221c152ab901d974aa905

(4)点击调试 SDK示例代码,此时会弹出Cloud shell窗口,并创建一个CreateCommand.py文件,用vim编辑器打开CreateCommand.py,修改accessKeyIdaccessSecret

f089d9a4ec08e64917ba9482bc326d59

注意:这里有坑点!!!!!!

生成的格式和咱们要改成的格式不太一样,复现的时候大家一定要注意,可以参考示例代码窗口。

5f87ecefb8451ff5aa12643b8f1767ee

夸我!!!!

cc3818b77badbdf2db598899e03b3ed6

(5)执行文件~

python ./CreateCommand.py 

ec26f8e70737fb7a6350b03cfa9d7107

下一步,打开InvokeCommand

  • RegionId填写行云管家中的所属网络

  • CommandId填写刚刚执行CreateCommand.py返回的CommandId

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

继续点击 调试SDK代码,会生成一个InvokeCommand.py文件,同样用vim编辑器把accessKeyIdaccessSecret修改了,这里依旧注意坑点!

bafe7010065290e3fbc85b8dc03db069

7c69c6901176315da697c61b82dc70cc

打开vps,监听端口。然后执行脚本,反弹shell成功!!!

4f9881f6e96f93e127d0bda0d7cccae1

64353667cd558b309097f1854adfec17

cd27cd6b7758c1c056fe89e425ad14e9

0x03 工具篇

工具链接:https://github.com/iiiusky/alicloud-tools/releases

使用方法:

查看所有实例信息:

AliCloud-Tools.exe -a <AccessKey> -s <SecretKey> ecs --list 

89bd0a99cc010e95578f0cf473400ef1

执行命令:

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

e6ae30bd01f41721d259b5aadab95584

c2020d547092ca687066f040aa499608

0x04 总结

除上述使用的工具外,还有一款查看实例id的工具比较好用:https://github.com/mrknow001/aliyun-accesskey-Tools/releases

349c42738dee33ab95670eaea3662520

除此之外,github还有一系列利用工具,大家有兴趣自己研究呀~

0cd4e0fcdfee94f0acf41d510d78b7a4

参考文章:https://my.oschina.net/u/4581879/blog/4753320

本文作者:宸极实验室Sec