Ichunqiu云境 —— Endless(无间计划) Writeup

发布者:Gcow安全团队
发布于:2023-04-20 12:27

Ichunqiu云境 —— Endless(无间计划) Writeup

Author:小离-xiaoli

0x00 Intro

前言:

  • 两个入口点,一个入口点是pboot-cms,另外一个是SQL注入
  • 这边入口外网IP可能会有不一致得地方,因为靶场重启次数比较多,IP经常变化
  • OSCP风格,不使用CS/MSF
  • 这个靶场共有12个Flag

0x01 Recon

扫描结果:

  1. 入口点1 - SQL注入 (Linux):

  2. 入口点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
    <br>
  1. 直接上payload

  2. PrivESC to root with CVE-2022-2588(这里用不了pwnkit,pkexec玄学)

  3. 入口IP 172.23.4.32

  4. Flag 1

0x05 Target: 172.23.4.51 - Flag 2

  1. 通过上面的入口点搭建代理,横向回到上面打下的oracle数据库 172.23.4.51,获取到Flag 2

0x04 Target: 172.23.4.12 - Flag 3

  1. 172.23.4.51 的Desktop 有个Usera的凭据

    1
    2
    username: usera@pentest.com
    password:Admin3gv83

  2. 挂个代理,CME扫一扫

  3. 这里忘记截图了,usera对4.12能RDP,RDP上去就可以了

  • 提权方法1:krbrelayup直接提权
  • 提权方法2:usera对该机器有writedacl,能rbcd提权到system
  1. 横向上去后,发现C:\users\usera\目录下有.ssh目录,里面有一个私钥(私钥没截到图),known_hosts看到有个IP 172.23.4.19

  2. Flag 3

0x05 Target: 172.23.4.19 (172.24.7.16) - Flag 4

  1. 使用在172.23.4.12获取到的私钥登录进入172.23.4.19,回到了上面入口点1的web服务器,获取到root权限

  2. 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之类的,如果要增加难度的话,可以考虑把智能卡攻击也弄上
  1. 使用凭据usera扫描一下172.24.7.0/24,调用petitpotam

  2. 这里IP和主机名有点乱,我们备注一下

    1
    2
    3
    4
    5
    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 (在范围内,未拿下)
  3. 扫一扫webclient服务,确定172.24.7.48能打下了

  4. 难点在于你现在处于第二层网段,也好解决

  • 端口转发链如下
    1
    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
  1. 端口转发准备:

172.23.4.19

 

172.24.7.16(也是IP 172.23.4.12)

  1. 启用ntlmrelayx.py,这里的escalate-user写的是172.24.7.16的主机名,截图是已经用petitpotam触发回连了,可以看到是已经完成了rbcd攻击了

  2. petitpotam触发webclient实现中继

  3. Flag 5

0x08 Target: 172.24.7.3 - Flag 6

  1. 域控装了ADCS(直接SMB看域控共享就懂了)

  2. 提示ESC8

  3. 但是,经过复杂的操作 (停445+端口转发),却和我说ADCS关了ntlm认证

  4. 后面实在找不到东西了,直接CVE-2022-26923冲死,使用一个有效域凭据(普通权限)创建机器账户

  5. CVE-2022-26923生成一张域控的证书

  6. 还原NTLM出来(这里忘记截图,只能用帮助文档了)

  7. Dcsync

  8. 远程上172.24.7.3就能获得Flag 6了,这里忘记截图了

  9. 然后就顺便扫一扫看看有没有其他网卡

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过滤),然后作者才选择更换攻击路径
  1. DCadmin 这台机器也是双网卡(172.24.7.5 和 172.25.12.7),不知道为什么上面的探测没扫出来

  2. 到这里,我们更新一下笔记

1
2
3
4
5
6
7
8
9
10
11
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 (在范围内,有管理员凭据,还没登录上去)
  1. Bloodhound看看是什么关系,可以看到,Administrator\@pentest.me 是 dcadmin.pen.me的管理员

  2. 这里也是有些奇怪,作者是可以直接横向过去的

  • 嘿,轮到我就不行(不知道是什么原因,我psexec也没成功)
  1. 干脆就RBCD了,我也不纠结 (RBCD过程省略)

  2. Flag 7

  3. DCSync过程略

0x11 Target: 172.25.12.19 - Flag 8

  1. 用上面DCSync获取到的域管理员凭据直接横向就可以获取到 Flag 8 了

0x12 Target: 172.25.12.29 - Flag 9

  1. 用上面DCSync获取到的域管理员凭据直接横向就可以获取到 Flag 9 了

0x13 Target: 172.25.12.19 (Exchange) - Flag 10

  1. 看看这台机器的SPN,就知道172.25.12.19上面跑着Exchange了

  2. 在域内你可以快速过滤homeMDB这个attribute,就知道用户有没有登录过邮服了,以下这个Exchange用户是我们要看的

  3. 使用Exchange用户登录进入OWA,就可以获取到Flag 10 了

0x14 Target: 172.24.7.43 (172.26.8.12) - Flag 11

  1. 用上面在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

  1. 我们回到 172.24.7.0/24,内网扫描 172.24.7.0/24发现有两个web服务,一个confluence和一个gitlab,对应url如下
1
2
confluence: 172.24.7.27:8090
gitlab: 172.24.7.23
  1. 使用上面获取到的usera凭据直接登录进入confluence,可以发现有两个xlsx列表,用最新的即可
  2. 无间实验室人员名单.xlsx

  3. 在dc.pentest.me批量跑一下ldap,发现都是有效凭据,这里随便一个域用户都能登录进入gitlab,但是都没项目(登录gitlab的图忘记截图了)

  4. 可以用在ldap筛选出有效用户(毕竟是ldap认证,当然你用kerbrute枚举也可以),然后配合利用git命令批量枚举,你能发现用户luizhuo有一个私人项目叫 Financial system-demo

  5. 有一个SQL Server的凭据,但是IP是127.0.0.1

  6. 找找commit历史,发现一个ip 172.26.8.16

  7. 凭据记录

1
2
3
IP: 172.26.8.16
username: sa
password: sqlserver_2022

\

  1. 后续复盘和作者交流过,gitlab不能直接拿下,但是最新的exp我没测试,有兴趣的大哥可以测试一下

0x17 Target: 172.26.8.16 - Flag 12

  1. 因为 172.24.7.43 这台机器通往 172.26.8.0/24网段,我们在 gitlab 172.24.7.23 刚好获取到过一个 SQL Server的凭据
1
2
3
IP: 172.26.8.16
username: sa
password: sqlserver_2022
  1. 在这台机器上搞个代理,直接连接,然后一把梭(这里用的项目是https://github.com/Ridter/PySQLTools)

  2. 服务账户权限

  3. CLR提权

  4. 直接改个管理员密码

  5. Flag 12

0x18 Attack Graph

0x19 Outro

  • 感谢九世大哥的协作帮忙,入口点帮助了很多,oracle注入那看到头秃了
  • 感谢作者满秋和WHOAMI的帮助
  • 靶场在做的过程中,发现了不少的BUG,但是作者都很热心的修补了BUG,期间还退还了沙子
  • 做起来和你打攻防项目一样坐牢

声明:该文观点仅代表作者本人,转载请注明来自看雪