记一次阿里云主机泄露Access Key到Getshell
0x01 前言
此次渗透为一次授权渗透测试,门户网站找出了一堆不痛不痒的小漏洞,由于门户网站敏感特征太多而且也没什么特殊性就没有截图了,后台则是根据经验找出并非爆破目录,涉及太多敏感信息也省略了,我们就从后台开始。
PS:本文仅用于技术讨论,严禁用于任何非法用途,违者后果自负。
0x02 正文
拿到网站先信息收集了一波,使用的宝塔,没有pma漏洞,其它方面也没有什么漏洞,没有捷径走还是老老实实的渗透网站吧。
打开网页发现就是登录,果断爆破一波,掏出我陈年老字典都没爆破出来,最终放弃了爆破。
跑目录也没跑出个什么东西,空空如也,卡在登录这里找回密码这些功能也都没有,CMS指纹也没查到,都快要放弃了,瞎输了个login,报了个错(准确说是调试信息),提起12分精神查看。
小结:渗透这东西还是要讲究缘分的。
往下继续看。
Reids账号密码都有,上面还有个mysql账号密码,但是端口都未对外网开放,只能放弃了。
但下面ALIYUN_ACCESSKEYID跟ALIYUN_ACCESSKEYSECRET就很关键。
利用方式可以手动一步一步来,但是已经有大神写出了工具,不想看手工的直接滑到最后部分。
说句废话:手工有手工的乐趣,一步一步的操作会让你做完后有种成就感,我个人觉得手工其实是种享受,工具呢只是为了方便,在红蓝对抗中争分夺秒时使用。
手工篇
首先用行云管家导入云主机,网站地址:https://yun.cloudbility.com/
步骤:选择阿里云主机 -> 导入key id跟key secret -> 选择主机 -> 导入即可(名字随便输)
导入成功后在主机管理看得到
点进来查看详情,这里可以重置操作系统密码,但作为渗透,千万千万千万不要点这个,不能做不可逆操作。我们用这个只是为了得到两个数据,就是实例ID以及所属网络,拿到就可以走人了。往下看
这里我们打开阿里API管理器,这个是阿里提供给运维开发人员使用的一个工具,https://api.aliyun.com/#/?product=Ecs,点击左边的搜素框输入command,我们会用到CreateCommand跟InvokeCommand,CreateCommand是创建命令,InvokeCommand是调用命令。继续往下看
Name部分随意。
Type指的是执行脚本类型。
RunBatScript:创建一个在Windows实例中运行的 Bat 脚本。
RunPowerShellScript:创建一个在Windows实例中运行的PowerShell脚本。
RunShellScript:创建一个在Linux实例中运行的Shell脚本。
CommandContent为执行命令,需要注意的是这里是填写base64编码。
填写完后选择python。
点击调试SDK示例代码,此时会弹出Cloud shell窗口,并创建一个CreateCommand.py文件,用vim编辑器打开CreateCommand.py,修改accessKeyId与accessSecret。
执行CreateCommand.py,会返回一个RequestId与CommandId,记录CommandId,后面调用命令会用到。
打开InvokeCommand。
RegionId填写行云管家中的所属网络。
CommandId填写刚刚执行CreateCommand.py返回的CommandId。
InstanceId填写示例ID,行云管家中获取到的那个。
继续点击调试SDK示例代码,会生成一个InvokeCommand.py文件,同样用vim编辑器把accessKeyId与accessSecret修改了。
修改完成后使用nc监听端口,执行InvokeCommand.py。
成功执行命令反弹shell,收工。
工具篇
工具地址:https://github.com/iiiusky/alicloud-tools
使用方法:
查看所有实例信息
AliCloud-Tools.exe -a <AccessKey> -s <SecretKey> ecs –list
当拿到示例ID后就可以执行命令了。
执行命令。
AliCloud-Tools.exe -a <AccessKey> -s <SecretKey> ecs exec -I <实例ID> -c "执行命令"
0x03 总结
Access Key一般会出现在报错信息、调试信息中,具体场景没法说什么情况。本次遇到也是意外收获,因此我在网上也查阅了很多文章,并没发现什么技巧。如果是APP在APK中存放Access Key Web页面/JS文件等 Github查找目标关键字发现Access Key与AccessKey Secret拥有WebShell低权限的情况下搜集阿里云Access Key利用。
相关文章
- 5条评论
- 冢渊酒颂2022-06-03 09:21:03
- 逆操作。我们用这个只是为了得到两个数据,就是实例ID以及所属网络,拿到就可以走人了。往下看这里我们打开阿里API管理器,这个是阿里提供给运维开发人员使用的一个工具,https://api.aliyun.com/
- 竹祭瑰颈2022-06-03 15:47:37
- mmandId,后面调用命令会用到。打开InvokeCommand。RegionId填写行云管家中的所属网络。CommandId填写刚刚执行CreateCommand.py返回的CommandId。InstanceId填写示例ID,行云管家中获取到的那个。继续点
- 弦久辜屿2022-06-03 18:06:44
- ec -I <实例ID> -c "执行命令"0x03 总结Access Key一般会出现在报错信息、调试信息中,具体场景没法说什么情况。本次遇到也是意外收获,因此我在网上也查阅了很多文章,并没发现什
- 弦久望笑2022-06-03 14:34:47
- cessSecret修改了。修改完成后使用nc监听端口,执行InvokeCommand.py。成功执行命令反弹shell,收工。工具篇工具地址:https://github.com/iiiusky/a
- 只影鸽屿2022-06-03 12:16:10
- dId,记录CommandId,后面调用命令会用到。打开InvokeCommand。RegionId填写行云管家中的所属网络。CommandId填写刚刚执行CreateCommand.p