概要
HackTheBox「Instant」のWriteupです。
User Flag
ポートスキャンを実行します。
$ nmap -Pn -sVC -T4 -A -p- -oN nmap_result 10.10.11.37
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 31:83:eb:9f:15:f8:40:a5:04:9c:cb:3f:f6:ec:49:76 (ECDSA)
|_ 256 6f:66:03:47:0e:8a:e0:03:97:67:5b:41:cf:e2:c7:c7 (ED25519)
80/tcp open http Apache httpd 2.4.58
|_http-title: Did not follow redirect to http://instant.htb/
ポートの稼働状況が分かりました。
ポート | サービス | バージョン |
---|---|---|
22 | ssh | OpenSSH 9.6p1 |
80 | http | Apache httpd 2.4.58 |
ドメインを/etc/hosts
に追加し、Webサイトにアクセスします。
ダウンロードボタンからinstant.apk
をダウンロード出来ました。
jadx-gui
でapkファイルを解析します。
ソースコードからmywalletv1.instant.htb
というサブドメインを発見しました。
また、AdminActivites
からトークンも得られました。
リクエストヘッダーにトークンを設定し、/api/v1/view/profile
へアクセスすると管理者のプロフィールを閲覧出来ました。
さらにサブドメインの検索をすると、サブドメインswagger-ui.instant.htb
を発見しました。
アクセスし、APIのドキュメントを入手できました。
/api/v1/admin/view/logs
のレスポンスから1.log
とshirohige
アカウントの情報を得られました。
/api/v1/admin/read/log?log_file_name=1.log
にアクセスし、1.log
の内容を閲覧出来ました。
パストラバーサルの悪用に成功し、SSHの秘密鍵を入手できました。
shirohige
アカウントにSSH接続し、ユーザーフラグを入手できました。
$ ssh -i id_rsa shirohige@instant.htb
shirohige@instant:~$ cat user.txt
51a3079abfe7fcf71319e80c1874c722
Root Flag
/opt/backups/Solar-PuTTY/sessions-backup.dat
ファイルを発見しました。
$ ls -la /opt/backups/Solar-PuTTY/sessions-backup.dat
-rw-r--r-- 1 shirohige shirohige 1100 Sep 30 11:38 /opt/backups/Solar-PuTTY/sessions-backup.dat
Solar Puttyのセッション情報が入ったファイルのようですが、中身は暗号化されています。
ZJlEkpkqLgj2PlzCyLk4gtCfsGO2CMirJoxxdpclYTlEshKzJwjMCwhDGZzNRr0fNJMlLWfpbdO7l2fEbSl/OzVAmNq0YO94RBxg9p4pwb4upKiVBhRY22HIZFzy6bMUw363zx6lxM4i9kvOB0bNd/4PXn3j3wVMVzpNxuKuSJOvv0fzY/ZjendafYt1Tz1VHbH4aHc8LQvRfW6Rn+5uTQEXyp4jE+ad4DuQk2fbm9oCSIbRO3/OKHKXvpO5Gy7db1njW44Ij44xDgcIlmNNm0m4NIo1Mb/2ZBHw/MsFFoq/TGetjzBZQQ/rM7YQI81SNu9z9VVMe1k7q6rDvpz1Ia7JSe6fRsBugW9D8GomWJNnTst7WUvqwzm29dmj7JQwp+OUpoi/j/HONIn4NenBqPn8kYViYBecNk19Leyg6pUh5RwQw8Bq+6/OHfG8xzbv0NnRxtiaK10KYh++n/Y3kC3t+Im/EWF7sQe/syt6U9q2Igq0qXJBF45Ox6XDu0KmfuAXzKBspkEMHP5MyddIz2eQQxzBznsgmXT1fQQHyB7RDnGUgpfvtCZS8oyVvrrqOyzOYl8f/Ct8iGbv/WO/SOfFqSvPQGBZnqC8Id/enZ1DRp02UdefqBejLW9JvV8gTFj94MZpcCb9H+eqj1FirFyp8w03VHFbcGdP+u915CxGAowDglI0UR3aSgJ1XIz9eT1WdS6EGCovk3na0KCz8ziYMBEl+yvDyIbDvBqmga1F+c2LwnAnVHkFeXVua70A4wtk7R3jn8+7h+3Evjc1vbgmnRjIp2sVxnHfUpLSEq4oGp3QK+AgrWXzfky7CaEEEUqpRB6knL8rZCx+Bvw5uw9u81PAkaI9SlY+60mMflf2r6cGbZsfoHCeDLdBSrRdyGVvAP4oY0LAAvLIlFZEqcuiYUZAEgXgUpTi7UvMVKkHRrjfIKLw0NUQsVY4LVRaa3rOAqUDSiOYn9F+Fau2mpfa3c2BZlBqTfL9YbMQhaaWz6VfzcSEbNTiBsWTTQuWRQpcPmNnoFN2VsqZD7d4ukhtakDHGvnvgr2TpcwiaQjHSwcMUFUawf0Oo2+yV3lwsBIUWvhQw2g=
脆弱性を調べると、4.0.0.47
以前のバージョンでは、エクスポートされたデータを復号できるようです。
復号には下記ツールを使用しました。
コマンドを実行するとエラーが出力され、データファイルをインポートする際のパスワードも必要なようです。
Solar Puttyにセッションファイルをインポートする際も、パスワードを要求されました。
パスワードのクラックには下記ツールを使用しました。
ツールを実行し、パスワードがestrella
だと分かりました。
$ python SolarPuttyCracker.py -w /usr/share/wordlists/rockyou.txt ../sessions-backup.dat
____ __ ___ __ __ _____ __
/ __/___ / /___ _ ____ / _ \ __ __ / /_ / /_ __ __ / ___/____ ___ _ ____ / /__ ___ ____
_\ \ / _ \ / // _ `// __/ / ___// // // __// __// // / / /__ / __// _ `// __// '_// -_)/ __/
/___/ \___//_/ \_,_//_/ /_/ \_,_/ \__/ \__/ \_, / \___//_/ \_,_/ \__//_/\_\ \__//_/
/___/
Trying to decrypt using passwords from wordlist...
Decryption successful using password: estrella
[+] DONE Decrypted file is saved in: SolarPutty_sessions_decrypted.txt
再度パスワード付きで復号ツールを実行すると、root
のパスワードを得られました。
得られたパスワードでrootに昇格でき、ルートフラグを入手できました。
shirohige@instant:~$ su root
Password:
root@instant:/home/shirohige# cat /root/root.txt
6739a624098204ab94164ba546311225