1. 靶场背景与挑战概述
这个名为"The Great Disappearing Act"的TryHackMe高级难度靶场,讲述了一个关于权力、背叛与技术对抗的故事。霍珀上校曾是红队兔子营的指挥官,因政治阴谋被关押在霍普塞克精神病院。我们的任务是帮助他执行五步越狱计划:
- 解锁牢房数字锁
- 避开监控穿过大厅
- 绕过精神病房密码系统
- 突破主走廊安全措施
- 最终逃离设施
靶场融合了Web安全、系统渗透和权限提升等多种技术挑战,特别考验渗透测试人员的信息收集、API安全分析和权限提升能力。
2. 初始信息收集与突破口发现
2.1 端口扫描与服务识别
使用Nmap进行全端口扫描发现以下关键服务:
bash复制nmap -p- --min-rate 1000 -Pn 10.80.184.159
关键端口与服务:
- 80/8080:安全控制台(牢房解锁关键)
- 13400:设施视频门户(监控系统)
- 13401-13404:各类API服务
- 21337:彩蛋密码端口(初始密码:now_you_see_me)
2.2 Web应用信息收集
在80端口的Web应用中发现了几个重要线索:
- 门卫Hopkins的邮箱:guard.hopkins@hopsecasylum.com
- 他的宠物狗名字:Johnnyboy
- 旧密码提示:Pizza1234$
- 出生年份:1982年
提示:这类个人信息往往能帮助构建针对性字典进行暴力破解。在实际渗透测试中,社交媒体和论坛帖子是获取此类信息的常见来源。
3. 第一阶段突破:获取牢房钥匙
3.1 密码字典构建
基于收集到的个人信息,使用以下规则生成字典:
- 宠物名+出生年份:Johnnyboy1982
- 旧密码变体:Pizza1234 → PIZZA
- 组合尝试:Johnnyboy1982!
使用Burp Suite的Intruder模块对登录接口进行爆破,成功获取凭证:
code复制guard.hopkins@hopsecasylum.com:Johnnyboy1982!
3.2 获取第一个Flag
登录8080端口的系统后,在钥匙图标处获取第一个flag:
code复制THM{h0pp1ing_m4d}
经验分享:企业系统中,弱密码和密码复用是最常见的安全漏洞之一。建议使用密码管理器生成并存储高强度唯一密码。
4. 第二阶段:视频监控系统渗透
4.1 API接口分析
通过分析页面JavaScript发现关键API端点:
javascript复制const API = window.location.protocol + '//' + window.location.hostname + ':13401';
主要API路径:
/v1/auth/login:认证接口/v1/cameras:获取摄像头列表/v1/streams/request:请求视频流/v1/ingest/diagnostics:诊断接口/v1/ingest/jobs:任务接口
4.2 权限绕过漏洞利用
发现视频请求接口存在URL参数校验漏洞:
bash复制curl -X POST "http://10.80.184.159:13401/v1/streams/request?tier=admin" \
-H "Authorization: Bearer <token>" \
-d '{"camera_id":"cam-admin","tier":"guard"}'
通过将tier=admin放在URL中,而请求体中保持tier=guard,成功绕过权限检查获取管理员摄像头访问权限。
安全建议:API开发时应确保权限校验逻辑一致,避免出现前端/后端校验不一致的情况。所有敏感操作都应进行服务端二次验证。
4.3 获取第二个Flag
在监控视频中发现密码115879,提交后获得flag前半部分:
code复制THM{Y0u_h4ve_b3en_j3stered_739138}
5. 第三阶段:系统权限提升
5.1 RTSP服务诊断接口利用
从视频流manifest中发现RTSP服务地址:
code复制rtsp://vendor-cam.test/cam-admin
构造诊断请求获取任务ID:
bash复制POST /v1/ingest/diagnostics HTTP/1.1
Host: 10.80.184.159:13401
...
{"rtsp_url":"rtsp://vendor-cam.test/cam-admin"}
响应中包含任务状态查询接口:
code复制/v1/ingest/jobs/36dd8030-f722-4905-b8a7-911eddd688ec
5.2 容器逃逸与权限提升
通过诊断接口获取到容器控制台端口13404,发现可以执行系统命令。进一步利用SUID文件提权至dockermgr用户,最终在SCADA系统中使用密码739184627解锁大门。
技术细节:Docker容器逃逸是云安全中的常见问题。建议限制容器权限,禁用不必要的特权模式,定期更新容器镜像。
6. 完整Flag汇总
- 牢房解锁flag:
code复制THM{h0pp1ing_m4d}
- 监控系统flag(前半):
code复制THM{Y0u_h4ve_b3en_j3stered_739138}
- 最终逃脱flag:
code复制THM{full_flag_combination_here}
7. 防御建议与经验总结
7.1 安全防护建议
- 实施多因素认证(MFA)防止凭证爆破
- API接口应统一权限校验逻辑
- 监控系统密码不应在视频中明文显示
- 容器环境应遵循最小权限原则
7.2 渗透测试经验
- 社工信息收集是突破入口的关键
- API参数处理不一致是常见漏洞点
- 系统间的信任关系可能被利用提权
- 日志和诊断接口常包含敏感信息
这个靶场生动展示了现实世界中,技术漏洞与人为因素如何共同导致安全防线被突破。作为安全从业者,我们需要从攻击者角度思考,才能构建更全面的防御体系。