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?

More than 1 year has passed since last update.

HackTheBox Sau Writeup

Posted at

はじめに

今回はHackTheBox(HTB)のSauという問題をWalkthrough無しで自力で解けたので、どういう手順で解いたのかを記事にしてみようと思いました。
まだrootまでは取れておらず、sauユーザーに対するアクセスだけですが、今後rootが取れたら追加でwriteupも書いていこうと思います。
初めて自力で解けた問題なので、詳しく解説していこうと思います。

情報収集(1)

まずはポートスキャンを行い、空いているポートとサービス名を確認します。
portscan.png
sshとサービス名が不明な55555番ポートが開いています。少し調べてみたところ、request-basketsというサービスのデフォルトポートが55555と分かりました。(https://github.com/darklynx/request-baskets)
そしてこのサービスはHTTPリクエストを受け取るので、ブラウザーで開けないか試してみました。
target_website_screenshot.png
無事ブラウザーで開けました。次はこのrequest-basketsが何をするものなのかを詳しく調べていきます。
公式の説明によると(上記のrepo参照)ウェブサイト上に任意の名前のページを作り、そこに来たリクエストを監視するというサービスだそうです。
どうやらこのページのことをbasketと呼ぶらしいです。
さらに続いて面白いことが書かれていました。このサービスはリダイレクト機能を有いしているらしいです。
これが気になり色々調べていると、ある脆弱性に関するレポートが見つかりました。(https://github.com/entr0pie/CVE-2023-27163)
このレポートによると、リダイレクト機能はwebサーバーがHTTPリクエストを任意の場所にリダイレクトし、その結果をリクエストを送った人に返すというもので
Proxyのような役割をする仕組みであり、このリダイレクト先はwebサーバーがいる内部ネットワーク内に対しても有効であるというものでした。
この機能を使って外部からのアクセスからが許可されていないwebサーバーに対してアクセスができるということです。

Exploit(1)

試しにこのrequest-basketsサービスを動かしているサーバーの中にローカルで動くwebサーバーがないか調べてみます。
まずは新しくbasketを作ります。
basket-name.png
basket-created.png
すると作成したbasketの設定画面に行けるようになるので、そこからリダイレクトの設定をしていきます。
basket-menu.png
先ほどのレポートに従い、このように記述します。
Forward URLはリダイレクト先になるので、localで動いてるwebサーバーに行くようなURLを指定します。
そしてProxyResponseとExpand Forward Pathをtrueにしたら設定完了です。
basket-settings.png
ではlocalでwebサイトが起動しているか確かめてみます。
local_website.png

情報収集(2)

案の定起動していました。少しこのwebサイトを調べてみましょう。
UIは真ん中にログイン画面があるだけの質素なデザインです。
その下にPowered by Maltrail (v0.53)とあるので、きっとMaltrailというのがサービス名でしょう。
少しこのサービスについて調べてみます。
するとこのようなレポートが見つかりました。(https://github.com/spookier/Maltrail-v0.53-Exploit)
内容は、Maltrail(v0.53)でOSコマンドインジェクションが行えるという内容のものです。
どうやらログインページのusernameというパラメーターに適切なサニタイジング処理が施されていないようです。
そこにコマンドを埋め込むことで、シェルが取れるというものです。

Exploit(2)

今回はレポートにスクリプトが用意されていたので、それを使おうと思います。
C2サーバーに使うのはVillainです。(https://github.com/t3l3machus/Villain)
それでは、Villainのペイロードを生成していきます。
villain_payload.png
Villainのペイロードを実行させるためにスクリプトを少し変更します。
変更と言っても、payload引数にVillainペイロードを入れただけです。
exploit_script.png
それでは実際にスクリプトを実行してみましょう。
rce.png
無事コマンドが実行され、コネクションが確立されました。
あとはフラグを取るだけです。
user_flag.png

感想

今回はヒントも無しで正真正銘一人で解けた最初のマシーンだったので、ものすごい達成感でした。
次はrootを取らなくてはいけないので、取れた時にはwriteupをあげたいと思います。

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?