HTB: Planning
概述
Planning靶机提供了一个存在CVE-2024-9264漏洞的Grafana实例,该漏洞是DuckDB中的SQL注入漏洞,可导致远程代码执行。通过利用此漏洞在Grafana容器中获得root shell,从环境变量中发现凭据,并使用这些凭据通过SSH横向移动到主机。在主机上发现Crontab UI实例,从备份cron任务中获取凭据,并利用它创建自己的root cron任务以获得执行权限。
靶机信息
| 名称 | Planning |
|---|---|
| 发布日期 | 2025年5月10日 |
| 退役日期 | 2025年9月13日 |
| 操作系统 | Linux |
| 难度 | 简单 [20] |
场景: 如同现实生活中的渗透测试一样,您将使用以下账户凭据开始Planning靶机:admin / 0D5oT70Fq13EvB5r
侦察
初始扫描
nmap发现两个开放的TCP端口:SSH (22) 和 HTTP (80):
|
|
基于OpenSSH和nginx版本,主机可能运行Ubuntu 24.04。网站重定向到planning.htb。
初始凭据
提供的凭据admin / 0D5oT70Fq13EvB5r不能用于SSH登录,需要找到合适的使用位置。
子域名暴力破解
使用ffuf发现子域名grafana.planning.htb:
|
|
planning.htb - TCP 80
网站
该网站是一个在线教育平台,包含About、Courses、Contact等页面。Contact页面有表单但提交不发送数据。Enroll页面有注册表单,提交后显示确认信息。
技术栈
URL显示网站使用PHP。404页面是默认的nginx页面。
目录暴力破解
使用feroxbuster扫描发现多个PHP文件,但无特别有趣的发现。
grafana.planning.htb
网站
该子域名提供Grafana登录页面。使用提供的凭据admin / 0D5oT70Fq13EvB5r成功登录。
技术栈
登录页脚显示版本为11.0.0。
容器中的root shell
CVE-2024-9264
识别漏洞
Grafana 11.0.0存在CVE-2024-9264漏洞。该漏洞是DuckDB中的SQL注入漏洞,如果DuckDB已安装并在$PATH变量中,可利用此漏洞实现RCE。
利用
使用nollium的POC exploit:
|
|
成功执行id命令,确认Grafana以root权限运行。
获取shell
运行反向shell:
|
|
获得root shell。
枚举
容器环境
确认在Docker容器中(存在.dockerenv文件)。容器IP为172.17.0.2,运行Ubuntu 22.04。
环境变量
env命令显示环境变量,包含Grafana管理员凭据:
|
|
SSH访问
使用发现的凭据通过SSH登录主机:
|
|
获取user.txt标志。
权限提升
枚举
用户
enzo是唯一具有shell的非root用户。
Web配置
nginx配置显示两个站点:planning.htb和grafana.planning.htb(代理到Grafana容器)。
/opt目录
/opt/crontabs/crontab.db包含JSON格式的cron任务数据:
|
|
发现zip密码"P4ssw0rdS0pRi0T3c"。
监听端口
发现本地端口8000运行需要HTTP基本认证的服务。
Crontab UI
隧道访问
通过SSH隧道访问本地端口8000:
|
|
认证
使用root / P4ssw0rdS0pRi0T3c成功登录Crontab UI。
利用
创建新的cron任务:
- 名称:任意
- 计划:任意
- 命令:
cp /bin/bash /tmp/0xdf && chmod +s /tmp/0xdf
点击"Run now"执行,创建具有SUID权限的bash副本:
|
|
成功获得root shell,获取root.txt标志。
额外信息
Grafana Swagger
Grafana在/swagger-ui提供API文档,可使用凭据交互执行查询。
Crontab UI配置
Crontab UI的认证凭据在systemd服务文件中设置:
|
|