「目录」
一. 漏洞描述
1. 内网ip泄露
2. 账号密码源代码泄漏
3. 敏感目录泄露
4. 阿里云主机泄露Access Key到getshell
由于系统配置错误或敏感目录未删除导致信息泄露。常见的信息泄露如:
如下,截取的数据包发现存在BIGip,BIGIP是F5的一个网络负载均衡产品。F5 Networks(纳斯达克: FFIV) ,是全球领先的应用交付网络(ADN)领域的厂商 ,创建于1996年 ,总部位于美国西雅图市。
F5修改cookie机制F5 LTM做负载均衡时,有多种机制实现会话保持。其中用到很多的一种是通过修改cookie来实现的。具体说来,F5在获取到客户端第一次请求时,会使用set cookie头,给客户端埋入一个特定的cookie。比如:Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000。后续再接到客户端请求时,F5会查看cookie里面的字段,判断应该交给后续哪台服务器。作为传统大厂,F5当然不会傻到直接把服务器IP address写入到cookie里面。F5很巧妙的把server的真实IP address做了两次编码,然后再插入cookie。所以,只要依据解码流畅,解开487098378.24095.0000的内容,就拿到了server的真实IP address。
所以我们在cookie中发现这一信息就可以获取到服务器的真是ip,如果只是web层面的渗透那么其意义不大,但是后期要做内网渗透的话,还是有一定意义的。
我们可以使用脚本直接对其解密获取真实ip。脚本下载地址:https://github.com/psmet/BIGip-cookie-decoder
有时候程序开发人员为了方便,将登陆的账号密码写在了源代码中而忘记删除,我们右键查看源代码发现存在了账号和密码
如进行目录扫描的时候,发现很多敏感文件目录,且可以下载
「什么是Access Key:」
为了保障云主机的安全性,阿里云在API调用时均需要验证访问者的身份,以确保访问者具有相关权限。这种验证方式通过Access Key来实现,Access Key由阿里云颁发给云主机的所有者,它由Access Key ID和Access Key Secret构成。行云管家导入KEY后可以管理云主机。
简单来说access key就是用来验证身份的,access key = acess key id + access key secret
「关于access key泄露」
**** Access Key一般会出现在报错信息、调试信息中,具体场景没法说什么情况。APP中也会泄露这些信息。通过其我们可以进行命令执行获取到shell然后进行内网渗透。如下就是泄露了key信息
然后用行云管家导入云主机,网站地址:https://yun.cloudbility.com/
具体的getshell操作可以参考 -》 记一次阿里云主机泄露Access Key到Getshell - FreeBuf网络安全行业门户[1]
此次渗透为一次授权渗透测试,门户网站找出了一堆不痛不痒的小漏洞,由于门户网站敏感特征太多而且也没什么特殊性就没有截图了,后台则是根据经验找出并非爆破目录,涉及太多敏感信息也省略了,我们就从后台开始。
PS:本文仅用于技术讨论,严禁用于任何非法用途,违者后果自负。
拿到网站先信息收集了一波,使用的宝塔,没有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 "执行命令"
Access Key一般会出现在报错信息、调试信息中,具体场景没法说什么情况。本次遇到也是意外收获,因此我在网上也查阅了很多文章,并没发现什么技巧。如果是APP在APK中存放Access Key Web页面/JS文件等 Github查找目标关键字发现Access Key与AccessKey Secret拥有WebShell低权限的情况下搜集阿里云Access Key利用。
https://www.freebuf.com/articles/web/255717.htmlhttps://chenchena.blog.csdn.net/article/details/115219552
★
欢 迎 加 入 星 球 !
代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员
进成员内部群
星球的最近主题和星球内部工具一些展示
关 注 有 礼
还在等什么?赶紧点击下方名片关注学习吧!
推荐阅读