Snoozy

1.Sleep-inducing; tedious.

VulnHubのFristiLeaks: 1.3をやってみたよ~!

VulnHubのVulnHubのFristiLeaks: 1.3をやってみたよ~!ということでやっていく。

https://www.vulnhub.com/entry/fristileaks-13,133/

 

まずはホストのスキャン。f:id:snoozekvn:20190610235302p:plain

アドレスが分かったらnmapでサービスをスキャン。

f:id:snoozekvn:20190610235304p:plain

80番ポートが開いてるのでアクセスしてみる。

f:id:snoozekvn:20190611000203p:plain

ふむ。ソースには有意な情報は含まれておらず。

dirbで隠しオブジェクトを探索。

f:id:snoozekvn:20190610235307p:plain

順に確認していくと、robots.txtでなにか見つかる。

f:id:snoozekvn:20190610235312p:plain

アドレスの/robots.txtを/cola,/sisi,/beerに置き換えてアクセスしてみると、次の画像が表示される。方向性は間違ってないようだ。

f:id:snoozekvn:20190611001132p:plain

ここでつまった。他の方のwriteupを見させていただくと、なるほど。/fristでアクセスできるようだ。192.168.10.109/fristとしてさっそくアクセスしてみる。

f:id:snoozekvn:20190610235316p:plain

よしよし、一歩前進だ。

さて、適当な値を入れてログインしようとしても当然弾かれる。

う~ん総当たりでいくかと考えたところで、ソースにヒントがあった。

f:id:snoozekvn:20190611001752p:plain

f:id:snoozekvn:20190610235221p:plain

どうやらbase64エンコードされた文字列らしい。

f:id:snoozekvn:20190611002048p:plain

デコードしてみる。pngらしいのでファイル名を変えて見てみる。
f:id:snoozekvn:20190610235226p:plain

ふむ、たぶんパスワードだろうということで、いくつか前の画像に出ていたユーザー名っぽいeezeepzと合わせてログインを試してみる。

f:id:snoozekvn:20190610235231p:plain

う~ん、素晴らしい!

さて、ファイルのアップロードができるようだ。phpが動いていることはアドレスから判別できるので、reverseshellを張るphpコードを用意し、アップロードしてみる。

f:id:snoozekvn:20190610235234p:plain

…ということらしい。

ためしにコードの拡張子をhoge.php.pngというふうにしてアップロードしてみる。

f:id:snoozekvn:20190611003252p:plainこれはこれは、都合がいいですなぁ!

kali側で事前にnetcatで待ち受けておくことに留意しつつ、いくつかアップロードされてるであろうアドレスにアクセスしてみる。

f:id:snoozekvn:20190611003255p:plainf:id:snoozekvn:20190611003258p:plain

よしよし、これでshellがとれた。侵入成功というわけだ。

ここからは、定石通り、flagへのアクセスを目指しroot権限への昇格を試みる。

システム情報やファイル構成を確認していく。

 

home/admin/の中身。気になったものをいくつか確認してみた。

出力結果によると、暗号化された文章が含まれるテキストファイル2つと、暗号化に使ったPythonコードが記述されているとみられるファイルが見つかった。f:id:snoozekvn:20190610235241p:plain暗号アルゴリズムがわかっているのなら話は早い。逆演算を行ってデコードを行ってみる。

以下はそのコード。エンコードアルゴリズムは、まず与えられた文字列をbase64変換した後、得られた文字列にROT13をかけ、反転させている。ので、デコード部分ではこれの逆を行えばよい。f:id:snoozekvn:20190610235245p:plain

さて、次がデコードされた文字列だ。f:id:snoozekvn:20190610235249p:plainで、問題はこの文字列をどこで使うのかということだ。

home/eezeepz/内にあるnotes.txtにそのヒントがあった。f:id:snoozekvn:20190610235252p:plainJerryからのメッセージによるとPrivileges accountで実行されるコマンドを、一般ユーザが叩けるらしい???ということかな?

イマイチどういうことかわからず、再度ファイル探索をしてみる。

ユーザー一覧は以下のようになっていた。

f:id:snoozekvn:20190611010851p:plain

またfristigodというディレクトリがPermission deniedされる。ここにアクセスできれば進展がありそうだ。

ここで手が止まった。

これまでの結果をまとめてみる。

暗号化された文字列を含んだファイルがあり、そこから2つの文字列を解読することに成功している。

さらに、home/配下にはadmin,eezeepzという2つのディレクトリが存在する。

…ということは先の文字列を使ってadminやeezeepzにユーザーをスイッチできるのではないかと考え、実際にやってみた。

f:id:snoozekvn:20190611011656p:plain

OK!たしかにスイッチできた。しかしながらこのアカウントではfristigodディレクトリにはアクセスできなかった。

また、ためしにこのユーザに割り当てられているsudo権限で実行可能なコマンドを、sudo -lで確認してみたが特に割当られてなかった。

つぎに、eezeepzにスイッチしてみた。admin同様有意な情報は得られなかった。

fristiは、解読した2つの文字列では切り替えすらできなかった。

最後のfristigodがあたりだった。

f:id:snoozekvn:20190611012535p:plain

sudo -lの出力結果によると、fristigodでdoComというコマンドが実行できるかもということらしい。

f:id:snoozekvn:20190611013234p:plain

なるほど、mayがつくわけだ…いくつかユーザーを変えて試してみたが実行できない。

ここでまた手が止まった。

一つ上の階層にある.bash_historyにヒントがあった。

f:id:snoozekvn:20190610235254p:plain

色が反転しているところに注目していただきたい。

どうやらfristigodではなくfristiで実行するらしい。実際にidつきのコマンドを試してみたところ、このコマンドはroot権限で実行されるらしい。

そうと分かればbashを開かせるのみ!

f:id:snoozekvn:20190610235258p:plain

 

 

疲れた…日本語であんまりこの手のwriteupがないわけだ…

Thanks to Ar0xA!! for this CTF!