アクトインディ開発者ブログ

子供とお出かけ情報「いこーよ」を運営する、アクトインディ株式会社の開発者ブログです

Metasploit3で脆弱性を検証する(1)

Penetration Testing | The Metasploit Project

火曜日担当のkomagataです。

Gumblerウィルスが猛威を振るっているので流行に乗ってセキュリティネタです。

脆弱性検証(というか実際に脆弱性を突くので悪用厳禁)ツールのMetasploit3Macで使ってみました。

Macportsのはrb-railsやrb-rackが普通のgemとぶつかって入りません。(port editで依存性を外せば入りましたが気持ち悪いです。)

なので、svnのtrunkを持ってきました。

% svn co https://www.metasploit.com/svn/framework3/trunk metasploit

今回checkoutしたのはrevision8340でした。

% cd metasploit
% ./msfconsole
/Users/komagata/code/metasploit/lib/msf/core/exploit/mixins.rb:46:in `require': /Users/komagata/code/metasploit/lib/msf/core/exploit/capture.rb:358: syntax error, unexpected ')', expecting kEND (SyntaxError)
/Users/komagata/code/metasploit/lib/msf/core/exploit/capture.rb:375: syntax error, unexpected $end, expecting kEND
        from /Users/komagata/code/metasploit/lib/msf/core/exploit/mixins.rb:46
        from /Users/komagata/code/metasploit/lib/msf/core/exploit.rb:216:in `require'
        from /Users/komagata/code/metasploit/lib/msf/core/exploit.rb:216
        from /Users/komagata/code/metasploit/lib/msf/core.rb:52:in `require'
        from /Users/komagata/code/metasploit/lib/msf/core.rb:52
        from /Users/komagata/code/metasploit/lib/msf/ui/console/driver.rb:1:in `require'
        from /Users/komagata/code/metasploit/lib/msf/ui/console/driver.rb:1
        from /Users/komagata/code/metasploit/lib/msf/ui/console.rb:10:in `require'
        from /Users/komagata/code/metasploit/lib/msf/ui/console.rb:10
        from /Users/komagata/code/metasploit/lib/msf/ui.rb:10:in `require'
        from /Users/komagata/code/metasploit/lib/msf/ui.rb:10
        from ./msfconsole:16:in `require'
        from ./msfconsole:16

ところがcoreで読み込んでるファイルがsyntax error。ほぼ全てのコマンドが動きません。

「これは良いコミットエンドラン・・・(ゴクリ)」

% svn diff
Index: lib/msf/core/exploit/capture.rb
===================================================================
--- lib/msf/core/exploit/capture.rb     (revision 8340)
+++ lib/msf/core/exploit/capture.rb     (working copy)
@@ -355,7 +355,7 @@
                rescue RuntimeError => e
                        @pcaprub_error = e
                        print_status("Cannot stat device: #{@pcaprub_error}")
-                       raise RuntimeError, "Pcaprub error: #{@pcaprub_error}")
+                       raise RuntimeError, "Pcaprub error: #{@pcaprub_error}"
                end
                return my_net
        end

取り敢えずこれで動きますのでお急ぎの方は是非。

% ./msfconsole

                |                    |      _) |
 __ `__ \   _ \ __|  _` |  __| __ \  |  _ \  | __|
 |   |   |  __/ |   (   |\__ \ |   | | (   | | |
_|  _|  _|\___|\__|\__,_|____/ .__/ _|\___/ _|\__|
                              _|


       =[ metasploit v3.3.4-dev [core:3.3 api:1.0]
+ -- --=[ 176 exploits - 30 auxiliary
+ -- --=[ 104 payloads - 17 encoders - 5 nops
       =[ svn r8340 updated today (2010.02.01)

msf >

metasploitはversion3からperlからrubyになったらしく、僕にとっては読みやすくて嬉しいです。でもWebインターフェースがRailsなのは少しアグレッシヴですね。

次回は実際に脆弱性を突いてみようと思います。