[THM] Gallery — 渗透测试报告
说实话…我本来没打算在约会后花整个晚上来解开这个"简单图片库",但好奇心占了上风(可能还有双倍咖啡因的作用)。最初只是快速查看,很快就变成了一场全面的数字寻宝游戏。从探测Web表单到追踪隐藏的备份文件,这个房间带来的惊喜超出了我的预期。不过相对来说还是很容易上手的!
如果你正考虑尝试Gallery房间,或者想跟随我的冒险经历,请继续阅读完整的实况记录(以及一些我希望从一开始就知道的技巧)。
1. 初始侦察
1.1. 目标发现
首先,我从TryHackMe获取目标IP并确认其在线状态:
|
|
1.2. 端口扫描
使用Nmap扫描开放端口和运行的服务:
|
|
发现:
- 80/tcp — Apache httpd 2.4.29 (Ubuntu)
- 8080/tcp — Apache httpd 2.4.29 (Ubuntu)
两个端口都托管着Web服务器,乐趣从这里开始。
2. Web应用枚举
2.1. 浏览网站
- 端口80:默认Apache页面,没什么有趣内容
- 端口8080:出现一个基本的"简单图片库"Web应用
2.2. 目录和文件暴力破解
运行gobuster查找隐藏目录和文件:
|
|
这揭示了标准目录(/images、/uploads等),但没有立即发现有用的内容。
3. 利用Web应用漏洞
3.1. 测试SQL注入
图片库应用具有登录和搜索功能。我开始测试SQL注入:
- 在登录字段或搜索框中输入
' OR 1=1-- -
- 监控错误或成功登录的响应
成功!搜索功能存在漏洞 — 像 test' or '1'='1
这样的输入返回了所有图片。
3.2. 转储数据库
为了自动化,我使用了sqlmap:
|
|
经过一些耐心等待,sqlmap获取了users表。我找到了管理员哈希:
|
|
我尝试用hashcat和rockyou破解哈希,但由于后续步骤不需要直接登录,就继续前进了。
4. 系统立足点
4.1. 寻找文件上传漏洞
我检查了图片库是否允许图片上传。确实允许,但有一些限制。尝试上传伪装成图片的PHP shell(例如将shell.php重命名为shell.jpg)后,发现上传被过滤,但值得注意以备将来攻击。
4.2. 探索敏感文件
由于应用通过SQLi泄露信息,我利用它读取系统文件:
|
|
但没有立即发现有用的内容。是时候寻找其他途径了。
5. 本地文件发现
5.1. 检查备份
标准做法:始终检查/var/backups和类似目录以寻找有用文件。
|
|
发现:mike_home_backup.tar.gz
5.2. 提取和分析备份
我通过Web漏洞下载了备份,或者通过Web应用找到获取方式(如果已在系统上,可以使用wget、scp或内置Web服务器):
|
|
在里面,我找到了.bash_history文件。
|
|
发现密码:
|
|
6. 用户权限提升
6.1. SSH或本地切换
我检查了SSH访问,但如果不可用,就使用任何shell访问来切换用户:
|
|
成功!现在以mike身份运行。
6.2. 获取用户标志
|
|
用户标志:THM{af05cd30bfed67849befd546ef}
7. Root权限提升
7.1. 检查Sudo权限
|
|
发现:
(ALL) NOPASSWD: /opt/rootkit.sh
7.2. 分析/opt/rootkit.sh
我阅读了脚本:
|
|
它提供了一个菜单,其中一个选项让我以root身份在nano中打开文件。
7.3. 利用Nano获取Root Shell
遵循GTFOBins:
- 运行:
sudo /opt/rootkit.sh
- 选择"read"选项(打开nano)
- 在nano中,按Ctrl+R然后Ctrl+X
- 在提示符处输入:
reset; sh 1>&0 2>&0
- 按Enter — 现在我有了root shell!
7.4. 获取Root标志
|
|
Root标志:THM{ba87e0dfe5903adfa6b8b450ad7567bafde87}
8. 最终总结和经验教训
- 枚举就是一切:始终挖掘隐藏文件、目录和备份档案
- SQL注入仍然有效:不要忽视经典漏洞
- 权限提升关乎细节:检查sudo权限,阅读自定义脚本,使用GTFOBins技巧
- 备份和历史文件是金矿:始终仔细检查它们
关键命令回顾
|
|
如果你在任何步骤卡住了,试着放慢速度,探索所有文件和Web功能。祝你好运,黑客愉快!