【TryHackMe】Vulnversity 攻略記録
【TryHackMe】Vulnversity 攻略記録
概要
この投稿は TryHackMe の Vulnversity ルームの攻略記録です。
このルームでは、ネットワーク/Web/Linux 権限昇格の流れを通じて、Web 脆弱性 + SUID 利用などの演習ができます。
難易度は easy、想定所要時間は約 45 分程度。
項目 | 内容 |
---|---|
ルーム名 | Vulnversity |
プラットフォーム | TryHackMe |
難易度 | easy |
所要時間 | 約 45 分 |
主な技術要素 | Recon, Web アプリ脆弱性(ファイルアップロード型), SUID 権限昇格 |
学習目標と目的
- Nmap やスクリプトでサービス列挙を行う
- Gobuster を使って隠しディレクトリを探す
- アップロード脆弱性を突いて Web シェルを得る
- Linux 環境で SUID バイナリなどを利用して root 権限を獲得
攻略の流れと設問回答
Task 1: Deploy the machine
- 仮想マシンを起動し、IP アドレスを取得
- Web ブラウザまたは端末で該当 IP にアクセス
❓質問と回答
Q1. Deploy the machine.
A1. —(回答不要)
Task 2: Reconnaissance
-
nmap -sV MACHINE_IP
を実行し、開いているポート/サービスを確認 - 得られた情報をもとに、以下設問に答える:
❓質問と回答
Q1. How many ports are open?
A1.6
Q2. What version of the squid proxy is running?
A2.4.10
Q3. How many ports will Nmap scan if-p-400
is used?
A3.400
Q4. What is the most likely operating system?
A4.Ubuntu
Q5. What port is the web server running on?
A5.3333
Q6. What is the flag for enabling verbose mode using Nmap?
A6.-v
[oai_citation:8‡Medium]
Task 3: Locating directories using Gobuster
-
gobuster dir -u http://<IP>:3333 -w /usr/share/wordlists/dirbuster/directory-list-1.0.txt
を実行して隠しディレクトリを列挙 -
/internal/
ディレクトリにupload
フォームが存在することを確認
❓質問と回答
Q1. What is the directory that has an upload form page?
A1.internal
Task 4: Compromise the Webserver
-
upload
フォームを使って、さまざまな拡張子でファイルをアップロードして試行 -
.php
がブロックされていることを確認し、.phtml
等の拡張子で試す - 成功拡張子のファイルで Web シェルをアップロードし、
/internal/uploads/xxx.phtml
にアクセスして reverse shell を確立
❓質問と回答
Q1. Which file type that you'd want to upload is blocked?
A1..php
Q2. What extension is allowed after testing?
A2..phtml
Q3. What is the name of the user who manages the webserver?
A3.bill
Q4. What is the user flag?
A4.8bd7992fbe8a6ad22a63361004cfcedb
Task 5: Privilege Escalation (SUID を探す)
-
find / -perm -u=s -type f 2>/dev/null
コマンドで SUID 設定ファイルを検索 -
/bin/systemctl
が SUID ファイルで目立つ存在であることを確認 - GTFOBins を参考に
.service
ファイルを作成 →systemctl link
/enable
/start
で root 権限を取得 → フラグを取得
❓質問と回答
Q1. On the system, search for all SUID files. Which file stands out?
A1./bin/systemctl
Q2. What is the root flag value?
A2.a58ff8579f0a9270368d33a9966c7fd5
詰まったポイント・気づき
-
.php
が即座にブロックされるため、拡張子の試行錯誤が肝要 - SUID ファイルとして通常使われない
systemctl
がヒントになること - root 権限取得の手順はやや複雑なので、GTFOBins のような外部リファレンスを活用すると効率的
使用環境・ツール
項目 | 内容 |
---|---|
OS | Kali Linux |
ツール | Nmap, Gobuster, Burp Suite, netcat, find, systemctl, GTFOBins など |
接続方式 | TryHackMe OpenVPN |
参考リンク・動画
- TryHackMe 公式 Vulnversity ルーム TryHackMe
Discussion