VulnHubのFristiLeaks: 1.3をやってみたよ~!
VulnHubのVulnHubのFristiLeaks: 1.3をやってみたよ~!ということでやっていく。
https://www.vulnhub.com/entry/fristileaks-13,133/
まずはホストのスキャン。
アドレスが分かったらnmapでサービスをスキャン。
80番ポートが開いてるのでアクセスしてみる。
ふむ。ソースには有意な情報は含まれておらず。
dirbで隠しオブジェクトを探索。
順に確認していくと、robots.txtでなにか見つかる。
アドレスの/robots.txtを/cola,/sisi,/beerに置き換えてアクセスしてみると、次の画像が表示される。方向性は間違ってないようだ。
ここでつまった。他の方のwriteupを見させていただくと、なるほど。/fristでアクセスできるようだ。192.168.10.109/fristとしてさっそくアクセスしてみる。
よしよし、一歩前進だ。
さて、適当な値を入れてログインしようとしても当然弾かれる。
う~ん総当たりでいくかと考えたところで、ソースにヒントがあった。
デコードしてみる。pngらしいのでファイル名を変えて見てみる。
ふむ、たぶんパスワードだろうということで、いくつか前の画像に出ていたユーザー名っぽいeezeepzと合わせてログインを試してみる。
う~ん、素晴らしい!
さて、ファイルのアップロードができるようだ。phpが動いていることはアドレスから判別できるので、reverseshellを張るphpコードを用意し、アップロードしてみる。
…ということらしい。
ためしにコードの拡張子をhoge.php.pngというふうにしてアップロードしてみる。
これはこれは、都合がいいですなぁ!
kali側で事前にnetcatで待ち受けておくことに留意しつつ、いくつかアップロードされてるであろうアドレスにアクセスしてみる。
よしよし、これでshellがとれた。侵入成功というわけだ。
ここからは、定石通り、flagへのアクセスを目指しroot権限への昇格を試みる。
システム情報やファイル構成を確認していく。
home/admin/の中身。気になったものをいくつか確認してみた。
出力結果によると、暗号化された文章が含まれるテキストファイル2つと、暗号化に使ったPythonコードが記述されているとみられるファイルが見つかった。暗号アルゴリズムがわかっているのなら話は早い。逆演算を行ってデコードを行ってみる。
以下はそのコード。エンコードアルゴリズムは、まず与えられた文字列をbase64変換した後、得られた文字列にROT13をかけ、反転させている。ので、デコード部分ではこれの逆を行えばよい。
さて、次がデコードされた文字列だ。で、問題はこの文字列をどこで使うのかということだ。
home/eezeepz/内にあるnotes.txtにそのヒントがあった。JerryからのメッセージによるとPrivileges accountで実行されるコマンドを、一般ユーザが叩けるらしい???ということかな?
イマイチどういうことかわからず、再度ファイル探索をしてみる。
ユーザー一覧は以下のようになっていた。
またfristigodというディレクトリがPermission deniedされる。ここにアクセスできれば進展がありそうだ。
ここで手が止まった。
これまでの結果をまとめてみる。
暗号化された文字列を含んだファイルがあり、そこから2つの文字列を解読することに成功している。
さらに、home/配下にはadmin,eezeepzという2つのディレクトリが存在する。
…ということは先の文字列を使ってadminやeezeepzにユーザーをスイッチできるのではないかと考え、実際にやってみた。
OK!たしかにスイッチできた。しかしながらこのアカウントではfristigodディレクトリにはアクセスできなかった。
また、ためしにこのユーザに割り当てられているsudo権限で実行可能なコマンドを、sudo -lで確認してみたが特に割当られてなかった。
つぎに、eezeepzにスイッチしてみた。admin同様有意な情報は得られなかった。
fristiは、解読した2つの文字列では切り替えすらできなかった。
最後のfristigodがあたりだった。
sudo -lの出力結果によると、fristigodでdoComというコマンドが実行できるかもということらしい。
なるほど、mayがつくわけだ…いくつかユーザーを変えて試してみたが実行できない。
ここでまた手が止まった。
一つ上の階層にある.bash_historyにヒントがあった。
色が反転しているところに注目していただきたい。
どうやらfristigodではなくfristiで実行するらしい。実際にidつきのコマンドを試してみたところ、このコマンドはroot権限で実行されるらしい。
そうと分かればbashを開かせるのみ!
疲れた…日本語であんまりこの手のwriteupがないわけだ…
Thanks to Ar0xA!! for this CTF!