Snoozy

1.Sleep-inducing; tedious.

VulnHubのKioptrix: 2014 (#5)をやってみたよ~!

VulnHubのKioptrix: 2014 (#5)をやってみたよ~!ということでやっていく。

https://www.vulnhub.com/entry/kioptrix-2014-5,62/

 

まずは対象VMのアドレスの取得から。

f:id:snoozekvn:20190616001811p:plain

アドレスをゲットできたらNmapでポースキャン。

f:id:snoozekvn:20190616001815p:plain

80番ポートと8080番ポートでhttpが稼働中のようなのでアクセスしてみる。

まずは80番ポートから。

f:id:snoozekvn:20190616001819p:plain

ソースにページ情報を発見。

f:id:snoozekvn:20190616002118p:plain

アクセスしてみる。

f:id:snoozekvn:20190616002206p:plain なにやらよくわからないページが表示された。

このページの内容自体にはヒントになりそうなものはなさそう。

ちなみに8080番ポートは権限が足りずアクセス拒否された。

 

niktoとdirbを使ってディレクトリ探索を実施。

f:id:snoozekvn:20190616002121p:plain

f:id:snoozekvn:20190616002125p:plain

どちらの結果にも、次のステップに進むための有益な情報は含まれていなかった。

 

どうしようかしばらく右往左往した。

アドレスにバージョン情報っぽい数列が含まれていたのでひょっとしたらと思い調べると、先程表示したpChartのページは、pChartというライブラリによってホストされているらしいことがわかった。

アホっぽい言い回しだが重要な収穫だ。

 

さっそくsearhsploitで調べてみるとやはり脆弱性情報があった。

f:id:snoozekvn:20190616002210p:plain

このテキストによるとDirectory TraversalとCross-Site Scriptingの脆弱性があるらしい。

f:id:snoozekvn:20190616002203p:plain

記述を参考にアドレスを打ち込んでみると、確かにディレクトリ内容が表示された。

f:id:snoozekvn:20190616003233p:plain

 

またXSSも再現できた。

f:id:snoozekvn:20190616003513p:plain

ただ、これらの情報からKioptrixVMへの侵入に繋がりそうな直接の情報は得られなかった。

ここで、すこし迷った。

次の一手は、ディレクトリトラバーサルXSS脆弱性を調整しさらなる情報窃取をすることだ。

はて、どうすればいいのだろうか。

わかっていることはFreeBSD上でApacheが動いているということだ。

ディレクトリトラバーサル脆弱性を利用し、他のファイルも見てみたい。できればクレデンシャルが含まれたファイルがあればそれがいい。

とはいえ、ダイレクトな情報が出てくるとは考えにくいので、まずはFreeBSDApacheをインストールしたときのデフォルトのディレクトリ構造を調べることにした。

そういう向きで検索をかけると次のサイトがヒットした。

f:id:snoozekvn:20190616011041p:plain

https://www.freebsd.org/doc/handbook/network-apache.html

これによると、FreeBSDApacheは設定ファイルを以下のディレクトリに作成するらしい。

 /usr/local/etc/apache2x/httpd.conf

ディレクトリトラバーサル脆弱性を利用し、このファイルを見てみよう。次の画像が得られたhttpd.conの内容だ。

f:id:snoozekvn:20190616003230p:plain

Apacheでは、各ページごとの設定をこのhttpd.confファイルに記述していく。

次のサイトを参考にしながら調査していった。

https://r7kamura.hatenablog.com/entry/20110222/1298371277

調査の結果、ページ最下部に記述されていた次の画像の部分が、8080番ポートへのアクセスを制限していることがわかった。

 

f:id:snoozekvn:20190616010042p:plain

これによると、user-agentがMozilla/4.0でなければ8080番ポートにはアクセスできない。

さっそくcurlコマンドで、user-agentのオプションを調整してアクセスしてみよう。
f:id:snoozekvn:20190616003824p:plain

8080番ポートにアクセスするとphptaxへのリンクが張ってあることがわかる。

分かりやすいようにページをダウンロードし、実際にブラウザ上に表示させてみる。

f:id:snoozekvn:20190616012423p:plainf:id:snoozekvn:20190616012420p:plain

再度curlを使って、phptax/へアクセスするとさらにリンクが貼ってあるがこの先に接続はできなかった。

ページをダウンロードし表示させてみる。

f:id:snoozekvn:20190616012439p:plain

f:id:snoozekvn:20190616012442p:plain

f:id:snoozekvn:20190616012445p:plain

おそらくphptax配下にもなにかページがある。

phptaxは、dirbが使うワードリストから漏れているので、再度dirbで新しく見つかったページphptax配下を探ってみる。

f:id:snoozekvn:20190616003827p:plain

phptax配下にいくつかページが有ることが確認できた。

次の画像はphptax/readme/index.htmlをcurlでダウンロードし、ブラウザ上で表示させたもの。

f:id:snoozekvn:20190616013542p:plain

ここにきてphptaxなるものが、なんらかのサービスであることがわかった。

ページ名だとばかり思っていたが、pChartと同じ轍を踏んでしまった。

 

さて、気を取り直してsearchsploitで脆弱性情報を照会する。

f:id:snoozekvn:20190616003816p:plain

一番上に表示されたRubyファイルを見てみる。

f:id:snoozekvn:20190616013815p:plain

Metasploit Frameworkで使用可能ということなので楽をさせてもらうことにする。

msfconsoleを開き、searchコマンドで先程の脆弱性を検索する。

f:id:snoozekvn:20190616013818p:plain

useコマンドで指定。

f:id:snoozekvn:20190616013813p:plain

オプションを表示し必要項目を埋める。

f:id:snoozekvn:20190616014018p:plain

exploit!

f:id:snoozekvn:20190616014021p:plain

うまく刺さったようだ。

 

ここからはFreeBSD脆弱性を突くことで権限昇格を狙っていく。

まずはOS情報から脆弱性をサーチ。

f:id:snoozekvn:20190616014016p:plain

見つかった脆弱性をKioptrixVMにアップロードする。

wgetコマンドがKioptrixVMになかったのでnetcatを使う。

最初にKali側でファイルを指定してやり、

f:id:snoozekvn:20190616014346p:plain

KioptrixVM側でnetcatコマンドを使ってダウンロードする。

f:id:snoozekvn:20190616014348p:plain

gccコンパイルし、実行!
f:id:snoozekvn:20190616014343p:plain

rootに移動し、

f:id:snoozekvn:20190616014643p:plain

フラッグゲット!やったぜ!

flagで述べられているように、Kioptrix:2014はテクニカルな部分はほぼ一本道だが、その道を見つけるまでの検索力を問う問題だった。

Thanks to the  author of Kioptrix for this CTF!