记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas

0x01  前言

此次渗透为一次授权渗透测试,门户网站找出了一堆不痛不痒的小漏洞,由于门户网站敏感特征太多而且也没什么特殊性就没有截图了,后台则是根据经验找出并非爆破目录,涉及太多敏感信息也省略了,我们就从后台开始。

PS:本文仅用于技术讨论,严禁用于任何非法用途,违者后果自负。

0x02  正文

拿到网站先信息收集了一波,使用的宝塔,没有pma漏洞,其它方面也没有什么漏洞,没有捷径走还是老老实实的渗透网站吧。

打开网页发现就是登录,果断爆破一波,掏出我陈年老字典都没爆破出来,最终放弃了爆破。

图片[1]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

图片[2]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

跑目录也没跑出个什么东西,空空如也,卡在登录这里找回密码这些功能也都没有,CMS指纹也没查到,都快要放弃了,瞎输了个login,报了个错(准确说是调试信息),提起12分精神查看。

小结:渗透这东西还是要讲究缘分的。

图片[3]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

往下继续看。图片[4]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

Reids账号密码都有,上面还有个mysql账号密码,但是端口都未对外网开放,只能放弃了。

但下面ALIYUN_ACCESSKEYID跟ALIYUN_ACCESSKEYSECRET就很关键。

利用方式可以手动一步一步来,但是已经有大神写出了工具,不想看手工的直接滑到最后部分。

说句废话:手工有手工的乐趣,一步一步的操作会让你做完后有种成就感,我个人觉得手工其实是种享受,工具呢只是为了方便,在红蓝对抗中争分夺秒时使用。

手工篇

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

步骤:选择阿里云主机 -> 导入key id跟key secret -> 选择主机 -> 导入即可(名字随便输)

图片[5]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

图片[6]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

图片[7]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

导入成功后在主机管理看得到

图片[8]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

点进来查看详情,这里可以重置操作系统密码,但作为渗透,千万千万千万不要点这个,不能做不可逆操作。我们用这个只是为了得到两个数据,就是实例ID以及所属网络,拿到就可以走人了。往下看

图片[9]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

这里我们打开阿里API管理器,这个是阿里提供给运维开发人员使用的一个工具,https://api.aliyun.com/#/?product=Ecs,点击左边的搜素框输入command,我们会用到CreateCommand跟InvokeCommand,CreateCommand是创建命令,InvokeCommand是调用命令。继续往下看

图片[10]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

Name部分随意。

Type指的是执行脚本类型。

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

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

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

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

填写完后选择python。

图片[11]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

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

图片[12]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

图片[13]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

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

图片[14]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

打开InvokeCommand。

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

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

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

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

图片[15]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

修改完成后使用nc监听端口,执行InvokeCommand.py。

图片[16]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

成功执行命令反弹shell,收工。

工具篇

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

使用方法:

查看所有实例信息

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

图片[17]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

当拿到示例ID后就可以执行命令了。

执行命令。

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

图片[18]-记一次阿里云主机泄露Access Key到Getshell – 作者:dsadas-安全小百科

0x03 总结

Access Key一般会出现在报错信息、调试信息中,具体场景没法说什么情况。本次遇到也是意外收获,因此我在网上也查阅了很多文章,并没发现什么技巧。如果是APP在APK中存放Access Key Web页面/JS文件等 Github查找目标关键字发现Access Key与AccessKey Secret拥有WebShell低权限的情况下搜集阿里云Access Key利用。

来源:freebuf.com 2020-11-24 16:49:10 by: dsadas

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论