Tre を攻略しようとした記事(writeup を含みます)
どうも皆さんこんにちは。
今回は Tre という脆弱な仮想イメージの攻略に挑戦しました。
以下のサイトから仮想イメージをダウンロード出来るので興味があれば挑戦してみてください。
Tre : Tre: 1 ~ VulnHub
※注意
実際の攻撃手法が含まれますが、許可されていない機器に対してそれらの攻撃を仕掛けることは犯罪となるので絶対にやらないでください。
目次
シェルを取る
まずはポートスキャンを行って動いているサービスの確認を行います。
その結果、ssh と Webサーバソフトが二つ動いていることが分かりました。
まず初めに、80 番ポートで動いているサイトにアクセスしてみました。
しかし、竹の画像が表示されているだけで得られる情報は何もありませんでした。
そこで、ツールを使って何か有用な情報や脆弱性がないかを調べてみました。
すると、info.php を見ることが出来る事と /system/ にアクセスする際の ID とパスワードが admin,adimn であること等が分かりました。
そこで /system/ のベーシック認証を先ほど判明した ID とパスワードで突破すると以下のようなサイトが表示されました。
どうやらこの Web サーバでは mantis Bug Tracker というソフトが動いていることが推測されます。
現時点ではユーザ名やパスワードに関する情報は何一つないため、他に何か情報が無いかを探します。
しかし、何も見つかりませんでした。
そこで、もう一つの 8082 ポートで動いているサイトに関しても色々調べましたがこちらには有用な情報がほとんどありませんでした。
そこで色々と調べていると、Webコンテンツスキャナを使用する際に単語とファイル名(index.phpなど)がごちゃ混ぜに入っているデフォルトの辞書ではなく、単語のみ(adiminなど)が入っている辞書の末尾に拡張子をつけてスキャンを行うことで違う結果が現れるという情報を見つけました。
それを試してみると、adminer.php というページと mantisbt というディレクトリを見つけることが出来ました。
adminer.phpにアクセスすると以下のように表示されました。
ログインするために必要な情報が集まっていないためとりあえず後回しにします。
さらに、mantisbt の中に config というディレクトリを見つけました。(前の攻略の際に面白い情報が入っていた記憶があるので重要度が高いです)
すると、a.txt といういかにも怪しげなファイルが中に入っていました。
さらに、a.txt の中にはとても面白い情報が入っていました。
adminer.php のログインに使用できそうな情報ですね。
これを用いて adminer.php にログインしてみると次のように表示されました。(パスワードを変更した後にスクショしてしまったため tre と administrator のパスワードが元の値と違います。すみません......)
どうやらパスワードが変更できるようなので administrator と tre のパスワードを変更しました。
次に mantis Bug Tracker に administrator でログインしてみました。
すると mantis Bug Tracker のバージョンが 2.3.0 であることが判明しました。
そこで mantis Bug Tracker の バージョン 2.3.0 に何か脆弱性がないかを探してみると、 RCE の脆弱性があることが分かりました。
参考サイト
この脆弱性に対する exploit を実行することでシェルの取得に成功しました。
権限昇格(失敗)
いつも通り色々調べるためのツールを動かして探しましたが、よい情報を見つけることが出来ませんでした。
そこでふと、apache のバージョンで脆弱性を探したときにローカルでの権限昇格の脆弱性があったような気がしたのを思い出しました。
バージョンも合致していたのでこの脆弱性ではないかと思いこれを試してみたのですが、発火の条件がよく分からず権限昇格もうまく出来なかったため失敗してしまいました。
他になにかあるはずですが皆目見当がつかず今回のマシンはここで諦めてしまいました......(もっと Try Harder してください!!!!)
答え合わせ
今回はこちらの writeup を参考にしました。
まず、シェルを取る手法が違いましたね。
adminer.php において tre の本名が Tr3@123456@A! となっていることから、これが ssh のパスワードであると推測しているみたいです。
確かにこんなにも数字と記号にまみれた文字列が名前であるはずないですね。
そして ssh で tre のアカウントにアクセスした後に色々調べるツールで /usr/bin/check-system というファイルに注目しています。
ちなみに、このファイルは私が使用したツールでも書き込み可能な怪しいファイルとして出力されていました......
さらに、プロセスの履歴ではこのプログラムが root によって走らされていることが分かります。
これも私が使用したツールで出力されていました......
このことから、/usr/bin/check-system を書き換えることによって再起動した際に管理者権限でコマンドが実行することが出来ると言えます。
もう何でも出来ますね。
こんな感じで答え合わせは終了とします。
振り返りと感想
結果的に権限昇格に失敗しているのでよくないのですが、シェルを取るまでは凄くよかったですね。
たぶん mantis Bug Tracker のバージョンからしてこの手法も想定解の一つだったのではないかと思っています。
そこまでをなんとか自力でクリアできたのはよかったですね。
また、 config ファイルが怪しい事に気がつけたのは今までのマシン攻略の経験を生かせている証なのでそれもよかったです。
権限昇格に関してはいつも通りですね。
でもさすがに今回は気がつくべきでしたね。
/usr/bin みたいなディレクトリに入っているならコマンドでしょうし、それが書き込み可能であるならばかなり怪しいと考えるべきでした。
プロセスに関しては仕方が無いですが、次回からきちんと確認したいですね。管理者がコマンドを実行しているならば、そのコマンドを書き換えて権限昇格に繋げるのはよく聞く手法なので。
管理者によって実行されるプログラムは proc 関係の方が印象深いのですが、こういう場合もあるというのはよい勉強になりました。
まぁ、今回はこんな感じで記事を終わりにしようかと思います。
最後まで読んでくださりありがとうございました。