Ichunqiu云境 —— Endless(无间计划) Writeup
Author:小离-xiaoli
0x00 Intro
前言:
- 两个入口点,一个入口点是pboot-cms,另外一个是SQL注入
- 这边入口外网IP可能会有不一致得地方,因为靶场重启次数比较多,IP经常变化
- OSCP风格,不使用CS/MSF
- 这个靶场共有12个Flag
\
0x01 Recon
扫描结果:
- 入口点1 - SQL注入 (Linux):
- 入口点2 - Pboot-CMS (Linux):
0x02 入口点1 - SQL注入 (Linux)
前言:
- 一个站库分离的oracle注入,web是linux,注入点可以通过oracle注入发现到是一个windows,权限非dba,只有java runtime permission,这里没截图
- 这里前几次都没打成功,卡了挺久,后面搭建了个oracle和九世一起测试的
- 不建议用SqlMap,会把站打挂,并且可以看源码发现sqlmap提权函数没有定义关于oracle数据库的攻击方法
-
Oracle 版本
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
\ -
直接上payload
- 函数LINXRUNCMD创建成功
- whoami,直接是system权限了
- ipconfig,该数据库内网IP为 172.23.4.51,此时需要回到入口点2进入内网了
0x03 入口点2 - Pboot-CMS (Linux) - Flag 1
前言:
-
西湖论剑CTF的题目,有WAF,考你怎么绕过pboot cms的disable function,这里用的是大哥的payloadhttps://guokeya.github.io/post/WscncUrcS/
-
Payload(未授权RCE):
GET /?a=}{pboot{user:password}:if(("sys\x74em")("whoami"));//)}xxx{/pboot{user:password}:if} HTTP/1.1
Host: 39.98.94.70:80
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5249.62 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://39.98.94.70/admin.php
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: lg=cn; PbootSystem=h6o5ta1btl6o32bi184ula183l
Connection: close
Content-Length: 0
- PrivESC to root with CVE-2022-2588(这里用不了pwnkit,pkexec玄学)
- 入口IP 172.23.4.32
- Flag 1
0x05 Target: 172.23.4.51 - Flag 2
- 通过上面的入口点搭建代理,横向回到上面打下的oracle数据库 172.23.4.51,获取到Flag 2
0x04 Target: 172.23.4.12 - Flag 3
- 172.23.4.51 的Desktop 有个Usera的凭据
username: usera@pentest.com
password:Admin3gv83
- 挂个代理,CME扫一扫
-
这里忘记截图了,usera对4.12能RDP,RDP上去就可以了
-
提权方法1:krbrelayup直接提权
-
提权方法2:usera对该机器有writedacl,能rbcd提权到system
-
横向上去后,发现C:\users\usera\目录下有.ssh目录,里面有一个私钥(私钥没截到图),known_hosts看到有个IP 172.23.4.19
- Flag 3
0x05 Target: 172.23.4.19 (172.24.7.16) - Flag 4
- 使用在172.23.4.12获取到的私钥登录进入172.23.4.19,回到了上面入口点1的web服务器,获取到root权限
- Flag 4
0x06 突破内网隔离处-1 - No Flag
- 172.23.4.12 - 双网卡 - 172.24.7.16
0x07 Target: 172.24.7.48 (绕路) - Flag 5
前言:
- 这里会绕路,是靶场设计思路的问题,我一开始也没想到能直接用CVE-2022-26923打下来,后面在这台机器上实在翻不到东西了,才用了CVE-2022-26923
- 后续和作者沟通了,作者原先是希望说从通过下述操作拿下机器后,找到一张管理员的证书,用证书直接打到域控,但是作者可能觉得太简单了,后面把证书删除了,后面复盘的时候作者说就是用 CVE-2022-26923 打下来
-
个人建议的话,可以在这台机器上弄一些信息泄露的点,用泄露的凭据改ESC1之类的,如果要增加难度的话,可以考虑把智能卡攻击也弄上
-
使用凭据usera扫描一下172.24.7.0/24,调用petitpotam
- 这里IP和主机名有点乱,我们备注一下
172.24.7.5 DCadmin.pen.me (当前不在我们的范围内)
172.24.7.48 IZAYSXE6VCUHB4Z.pentest.me (在范围内,未拿下)
172.24.7.16 IZMN9U6ZO3VTRNZ.pentest.me (在范围内,已经拿下)
172.24.7.3 DC.pentest.me (在范围内,未拿下)
172.24.7.43 IZMN9U6ZO3VTRPZ.pentest.me (在范围内,未拿下)
- 扫一扫webclient服务,确定172.24.7.48能打下了
![[Pasted image 20230308153302.png]] -
难点在于你现在处于第二层网段,也好解决
-
端口转发链如下
172.24.7.16:80(双网卡,通172.23.4.0/24) ---forward--- 172.23.4.19:81(SSH) ---forward--- localhost:79 ---forward--- kali:8001
-
SSH端口转发监听127.0.0.1的问题可以看回我之前的文章:IChunQiu-spoofing
-
端口转发准备:
172.23.4.19
172.24.7.16(也是IP 172.23.4.12)
- 启用ntlmrelayx.py,这里的escalate-user写的是172.24.7.16的主机名,截图是已经用petitpotam触发回连了,可以看到是已经完成了rbcd攻击了
- petitpotam触发webclient实现中继
- Flag 5
0x08 Target: 172.24.7.3 - Flag 6
- 域控装了ADCS(直接SMB看域控共享就懂了)
- 提示ESC8
- 但是,经过复杂的操作 (停445+端口转发),却和我说ADCS关了ntlm认证
- 后面实在找不到东西了,直接CVE-2022-26923冲死,使用一个有效域凭据(普通权限)创建机器账户
- CVE-2022-26923生成一张域控的证书
- 还原NTLM出来(这里忘记截图,只能用帮助文档了)
- Dcsync
- 远程上172.24.7.3就能获得Flag 6了,这里忘记截图了
- 然后就顺便扫一扫看看有没有其他网卡
0x09 突破内网隔离处-2 - No Flag
- 172.24.7.3 - 双网卡 - 172.25.12.9
0x10 Target: 172.25.12.7 - Flag 7
前言:
-
这里原先是用sid history进行跨域攻击,但是靶场环境有问题,作者也排查了很多次,确认环境有问题,sid history始终没打成功(没有开启sid过滤),然后作者才选择更换攻击路径
-
DCadmin 这台机器也是双网卡(172.24.7.5 和 172.25.12.7),不知道为什么上面的探测没扫出来
- 到这里,我们更新一下笔记
```
pen.me
172.25.12.7 (172.24.7.5) DCadmin.pen.me (在范围内,还没拿下)
172.25.12.19 IZ1TUCEKFDPCEMZ.pen.me (在范围内,还没拿下)
172.25.12.29 IZ88QYK8Y8Y3VXZ.pen.me (在范围内,还没拿下)
pentest.me
172.25.12.9 (172.24.7.3) DC.pentest.me (在范围内,已经拿下)
172.24.7.48 IZAYSXE6VCUHB4Z.pentest.me (在范围内,已经拿下)
172.24.7.16 IZMN9U6ZO3VTRNZ.pentest.me (在范围内,已经拿下)
172.24.7.3 DC.pentest.me (在范围内,已经拿下)
172.24.7.43 IZMN9U6ZO3VTRPZ.pentest.me (在范围内,有管理员凭据,还没登录上去)
```
\
- Bloodhound看看是什么关系,可以看到,Administrator\@pentest.me 是 dcadmin.pen.me的管理员
-
这里也是有些奇怪,作者是可以直接横向过去的
-
嘿,轮到我就不行(不知道是什么原因,我psexec也没成功)
-
干脆就RBCD了,我也不纠结 (RBCD过程省略)
- Flag 7
- DCSync过程略
\
0x11 Target: 172.25.12.19 - Flag 8
- 用上面DCSync获取到的域管理员凭据直接横向就可以获取到 Flag 8 了
0x12 Target: 172.25.12.29 - Flag 9
- 用上面DCSync获取到的域管理员凭据直接横向就可以获取到 Flag 9 了
0x13 Target: 172.25.12.19 (Exchange) - Flag 10
- 看看这台机器的SPN,就知道172.25.12.19上面跑着Exchange了
- 在域内你可以快速过滤homeMDB这个attribute,就知道用户有没有登录过邮服了,以下这个Exchange用户是我们要看的
- 使用Exchange用户登录进入OWA,就可以获取到Flag 10 了
0x14 Target: 172.24.7.43 (172.26.8.12) - Flag 11
- 用上面在pentest.me里面DCSync获取到的管理员凭据直接横向过去172.24.7.43即可获取到Flag11 了
0x15 突破内网隔离处-3 - No Flag
- 172.24.7.43 - 双网卡 - 172.26.8.12
0x16 Target: 172.24.7.27 & 172.24.7.23 - No Flag
- 我们回到 172.24.7.0/24,内网扫描 172.24.7.0/24发现有两个web服务,一个confluence和一个gitlab,对应url如下
confluence: 172.24.7.27:8090
gitlab: 172.24.7.23
- 使用上面获取到的usera凭据直接登录进入confluence,可以发现有两个xlsx列表,用最新的即可
- 无间实验室人员名单.xlsx
- 在dc.pentest.me批量跑一下ldap,发现都是有效凭据,这里随便一个域用户都能登录进入gitlab,但是都没项目(登录gitlab的图忘记截图了)
- 可以用在ldap筛选出有效用户(毕竟是ldap认证,当然你用kerbrute枚举也可以),然后配合利用git命令批量枚举,你能发现用户luizhuo有一个私人项目叫 Financial system-demo
- 有一个SQL Server的凭据,但是IP是127.0.0.1
- 找找commit历史,发现一个ip 172.26.8.16
- 凭据记录
IP: 172.26.8.16
username: sa
password: sqlserver_2022
9.后续复盘和作者交流过,gitlab不能直接拿下,但是最新的exp我没测试,有兴趣的大哥可以测试一下
\
0x17 Target: 172.26.8.16 - Flag 12
- 因为 172.24.7.43 这台机器通往 172.26.8.0/24网段,我们在 gitlab 172.24.7.23 刚好获取到过一个 SQL Server的凭据
IP: 172.26.8.16
username: sa
password: sqlserver_2022
- 在这台机器上搞个代理,直接连接,然后一把梭(这里用的项目是https://github.com/Ridter/PySQLTools)
- 服务账户权限
- CLR提权
- 直接改个管理员密码
- Flag 12
0x18 Attack Graph
0x19 Outro
- 感谢九世大哥的协作帮忙,入口点帮助了很多,oracle注入那看到头秃了
- 感谢作者满秋和WHOAMI的帮助
- 靶场在做的过程中,发现了不少的BUG,但是作者都很热心的修补了BUG,期间还退还了沙子
- 做起来和你打攻防项目一样坐牢
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论