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 Writeup:RootMe

Posted at

最初に

TryHackMeのRootMeに挑戦!

image.png

自分がためしたこと

まずはnamp。

image.png

2つのポートが開いていることと、Apacheのバージョンが確認できます

とりあえずHTTP接続してみると、以下のWebページがみれます
image.png

ソースページも見てみましたが、特に何もなかったですね。。。

お題の以下の文章もあるみたいですし、隠しディレクトリを探していきます

Find directories on the web server using the GoBuster tool.

(個人的にはgobusterよりもdirbの方が楽なので、こちらを使います)

image.png

気になるものに、paneluploadsがあっAたので、アクセスしてみる

/panel の画面
image.png

/uploads の画面
image.png

試しにtest.txtというテキストファイルを作成してアップロードしてみる

テキストファイルの中身
image.png

ファイルを選択してアップロード
image.png

読めそうで読めない文章O arquivo foi upado com sucesso!が。。。
調べてみるとポルトガル語のようです
image.png

Google翻訳してみるとファイルは正常にアップロードされました。
とあったので、アップロードは成功したようです

http://10.10.204.183/uploads/を確認してみると、アップロードしたファイルがありました
image.png

クリックすると中身がみれますね
image.png

ただ、ここからどうやってリバースシェルを張るのかがわからず、、、

あきらめてWriteupをみることにします。。。

Writeupを見てやったこと

ここまでで、Task1, 2はできたので、Task3から見ていきたいと思います。

参考にしたの以下のWriteupです!
https://beginninghacking.net/2020/09/09/try-hack-me-rootme/

Task3

リバースシェルをはる流れとしては以下になります

  1. リバースシェルを張るためのスクリプトをアップロード
  2. curlコマンドで、スクリプトをよびだして実行

curlコマンドで呼び出すと実行できるのか。。。初めて知った(;^ω^)

リバースシェルを張るためのスクリプトをアップロード

Webページがindex.phpで作成されていたことから、Kali Linuxに事前に用意されているPHPのリバースシェルを使います
image.png

これを作業用フォルダーにコピーした後にIPアドレスとポートをこちらの待ち受けているPCのものに変更します
image.png

アップロードしてみるとエラーが。。。
多分、PHPはだめだよって書いてある気がする
image.png

拡張子で判定されている可能性が高いため、内容は変えずにreverse_shell.php5と拡張子だけ変えてアップロードできた!

image.png

curlコマンドで、スクリプトをよびだして実行

netcatを使って4444ポートで待ち受けておきます
image.png

以下のコマンドを実行

curl http://10.10.204.183/uploads/php-reverse-shell.php5

うまくいったみたい!
image.png

www-dataというユーザー名で、ルートディレクトリにいるようですね
image.png

探すファイルはuser.txtなので、find / -name user.txtで全ディレクトリから検索したところ、以下のフォルダーにありそう

image.png

あとはcatしてあげれば答えがでてきます

image.png

Task4

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

まずSUIDってなに?となったので、調べてみた内容を別の記事にまとめました!
https://qiita.com/kgtakm/items/8f5e0f6666c0f471b294

ここでは簡単に下図で出力結果をもとに説明すると、usr/bin/pythonにSUIDがセットされているので、コマンドでpython hoge.pyを実行するとroot権限で実行されてしまいます。
image.png

本来pythonはそんなことない(はず)なので、これが解答になります!

root.txt

探すファイル名はroot.txtでおそらく/root/root.txtになっているだろうと思い、以下のコマンドを実行したところ、フラグが確認できました!
python -c "with open('../../root/root.txt', 'r') as file: print(file.read())"

最後に

今回学んだことは以下2つです!

  • curlコマンドを使うことで、ファイルを実行できる
  • SUIDやそもそもls -laの出力を確認するきっかけになった

メモ

リバースシェルのチートシートのPHPのリバースシェルはうまく動かなかった、、、

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?