HACKTHEBOX HELP靶机打靶过程记录
字数 1353 2025-09-01 11:26:10
HACKTHEBOX HELP靶机渗透测试教学文档
1. 靶机信息收集
1.1 初始扫描
- 使用nmap进行端口扫描,发现开放端口:
- 80端口:HTTP服务
- 3000端口:未知服务
- 22端口:SSH服务
1.2 Web服务枚举
- 对80端口进行目录爆破,发现需要认证的网页
- 检查网页源代码,未发现有用信息
- 3000端口发现GraphQL接口
2. 漏洞发现与利用
2.1 GraphQL接口利用
- 发现3000端口存在GraphQL目录
- 使用GitHub上现成的GraphQL渗透工具
- 获取到凭证:
- 用户名:Shiv
- 密码:godhelpmeplz (MD5解密后)
2.2 Web应用漏洞利用
- 发现网站使用HelpDeskZ系统
- 在GitHub和Exploit-DB找到相关漏洞:
- 文件上传漏洞:
- 文件类型过滤逻辑错误
- 即使提示上传错误也会保存文件
- 使用时间戳混淆文件名
- SQL盲注漏洞
- 文件上传漏洞:
2.3 文件上传绕过尝试
- 尝试上传PHP后门文件
- 使用GitHub上的exp查找混淆后的文件名
- 多次尝试未成功
2.4 SQL盲注利用
- 使用现成的盲注脚本
- 获取新凭证:
- 用户名:support@mysite.com
- 密码:Welcome1
3. 权限提升路径
3.1 SSH访问
- 尝试使用获取的凭证登录SSH
- 成功使用以下组合登录:
- 用户名:help
- 密码:Welcome1
- 获取第一个flag
3.2 本地提权
-
使用linux-exploit-suggester.sh识别潜在漏洞
- 发现可能存在脏牛(Dirty Cow)漏洞
- 尝试利用失败
-
尝试CVE-2017-16995漏洞
- 成功提权至root
- 获取最终flag
4. 关键漏洞总结
| 漏洞类型 | 利用方法 | 获取信息 |
|---|---|---|
| GraphQL信息泄露 | 使用专用工具查询 | 用户名和加密密码 |
| HelpDeskZ文件上传逻辑缺陷 | 上传恶意文件绕过过滤 | 尝试获取Webshell |
| HelpDeskZ SQL盲注 | 使用自动化脚本 | 新凭证信息 |
| Linux内核漏洞(CVE-2017-16995) | 编译运行exp | root权限 |
5. 技术要点
-
GraphQL渗透:
- 了解GraphQL查询语法
- 使用专用工具进行信息收集
- 注意敏感字段和查询
-
文件上传绕过:
- 研究目标应用的过滤机制
- 尝试各种绕过技术(如%0a绕过)
- 利用逻辑缺陷(如错误提示但文件仍保存)
-
凭证重用攻击:
- 尝试在不同服务间重用发现的凭证
- 注意用户名变体(如help与support@mysite.com)
-
Linux提权:
- 使用linux-exploit-suggester.sh识别潜在漏洞
- 了解常见内核漏洞利用方法
- 准备多个exp应对不同情况
6. 防御建议
-
对GraphQL接口:
- 实施适当的访问控制
- 禁用内省查询
- 记录和监控可疑查询
-
对文件上传功能:
- 实施严格的文件类型验证
- 使用白名单而非黑名单
- 将上传文件存储在非Web可访问目录
-
对认证系统:
- 避免密码重用
- 实施强密码策略
- 监控暴力破解尝试
-
系统层面:
- 及时更新内核和安全补丁
- 限制用户权限
- 实施适当的日志记录和监控