日期:2021年03月02日
作者:goout
介绍:此文章记录了
hvv
时发现阿里云泄露Access Key
的问题,后续复现利用方式的过程。
0x00 前言
在2020年后半年某次护网比赛中,偶遇到阿里云主机泄露Access Key
的页面,后续发现阿里云主机泄露Access Key
可Getshell
的方法,我哭了,小丑竟是我自己?总之就是非常后悔。
0x01 正文
首先看一下阿里云泄露Access Key
的页面:
页面搜索能查到redis
和mysql
的账密及端口:
redis
和mysql
都可以查看到账户密码,按照正常思路可以看看服务器的6379
和3306
端口有没有对外开放,利用这两个端口搞事情。但是!咱既然标题说了,利用阿里云的Access Key
搞事情,那咱们直接往下看了~
我们继续看这个页面,下面发现泄漏了ALIYUN_ACCESSKEYID
跟ALIYUN_ACCESSKEYSECRET
,哦吼 ~ 快乐来了!
这里我们讲一下利用链的两种方式:手动篇和工具篇。
0x02 手动篇
(1)首先用行云管家导入云主机,网站地址:https://yun.cloudbility.com/
步骤:登录->基础运维->导入阿里云主机->输入Access Key ID
和Access Key Secet
-> 选择主机 -> 导入即可
导入成功后,在主机管理可以看到主机信息:
(2)点进来查看详情,我们这步操作主要是为了得到两个数据:实例ID
以及所属网络,拿到就可以走人了,其他的事情不要做,尤其是不可逆行为!
不可以做不可逆操作!
(3)我们打开阿里云API管理器,这个管理器是提供给运维开发人员使用的一个工具。打开链接:https://api.aliyun.com/#/?product=Ecs
点击左边的搜索框:搜索command
,我们会用到CreateCommand
跟InvokeCommand
,CreateCommand
是创建命令,InvokeCommand
是调用命令。
Name
部分随意Type
指的是执行脚本类型RunBatScript
:创建一个在Windows
实例中运行的Bat
脚本。RunPowerShellScript
:创建一个在Windows
实例中运行的PowerShell
脚本。RunShellScript
:创建一个在Linux
实例中运行的Shell
脚本。CommandConten
为执行命令,需要注意的是这里是填写base64
编码。填写完后选择
python
(4)点击调试 SDK示例代码,此时会弹出Cloud shell
窗口,并创建一个CreateCommand.py
文件,用vim
编辑器打开CreateCommand.py
,修改accessKeyId
与accessSecret
。
注意:这里有坑点!!!!!!
生成的格式和咱们要改成的格式不太一样,复现的时候大家一定要注意,可以参考示例代码窗口。
夸我!!!!
(5)执行文件~
python ./CreateCommand.py
下一步,打开InvokeCommand
RegionId
填写行云管家中的所属网络CommandId
填写刚刚执行CreateCommand.py
返回的CommandId
InstanceId
填写示例ID
,行云管家中获取到的那个
继续点击 调试SDK代码,会生成一个InvokeCommand.py
文件,同样用vim编辑器把accessKeyId
与accessSecret
修改了,这里依旧注意坑点!
打开vps
,监听端口。然后执行脚本,反弹shell
成功!!!
0x03 工具篇
工具链接:https://github.com/iiiusky/alicloud-tools/releases
使用方法:
查看所有实例信息:
AliCloud-Tools.exe -a <AccessKey> -s <SecretKey> ecs --list
执行命令:
AliCloud-Tools.exe -a <AccessKey> -s <SecretKey> ecs exec -I <实例ID> -c "执行命令"
0x04 总结
除上述使用的工具外,还有一款查看实例id
的工具比较好用:https://github.com/mrknow001/aliyun-accesskey-Tools/releases
除此之外,github
还有一系列利用工具,大家有兴趣自己研究呀~
参考文章:https://my.oschina.net/u/4581879/blog/4753320