こさろぐ

岡山のエンジニア雑記

TryHackMe RootMe writeup

RootMeのwriteupです。

tryhackme.com

Task 1 Deploy the machine

Deploy the machine

マシンを立ち上げるだけです。

Task 2 Reconnaissance

Scan the machine, how many ports are open?

nmapで調査します。次の問題に答えるために、-sのオプションをつけてサービスも検索します。

What version of Apache is running?

一つ前の調査で確認できます。

What service is running on port 22?

これも2つ前の調査で確認できますね。

Find directories on the web server using the GoBuster tool.

gobusterを使えとのことなので、gobusterで調べてみます。

What is the hidden directory?

BurpSuiteでディレクトリ構造を見てみると、cssとjsはありそうですね。

上記で出てきたあるディレクトリにアクセスするとアップロード用のページが表示されました。これが隠しページのようですね。

Task 3 Getting a shell

user.txt

リバースシェルスクリプトが入ったPHPをアップロードしてみます。

アップロードできなかったようです。

ファイル名をphp5に変えてアップロードしてみます。

アップロード成功したようです!
拡張子がphpだけチェックされていて、甘いチェック機構だったようですね。。

/uploads/ディレクトリを見てみると先ほどアップロードしたphpがありました。

ここで、ローカルでncコマンドで待ち構えてブラウザからphpを実行してみると、
リバースシェルが獲得できました!

user.txtについて聞かれているので、 find / -name "user.txt" を実行すると見つかりました。

これを見てみると、フラグをGETできました。

Task 4 Privilege escalation

Search for files with SUID permission, which file is weird?

下記コマンドでサーチします。
find / -type f -a \( -perm -u+s -o -perm -g+s \) -exec ls -l {} \; 2> /dev/null
pythonが使えそうです。

Find a form to escalate your privileges.

次に、特権昇格できる方法を下記のサイトで調べます。

GTFOBins

python > SUIDで調べてみると、下記のコマンドが使えそうです。
/usr/bin/python -c 'import os; os.execl("/bin/sh", "sh", "-p")'

root.txt

打ってみると・・・rootに昇格できました。

後はroot.txtを調べてフラグGETです!