Metasploit とはなんぞや ?
ペンテストや脆弱性の分析において広く一般的に使われているツール。
非常に強力なツールであるため、実務からCTF など、多岐に利用されている。
ちなみに、Metasploit PRO も用意されており、自動化や GUI ( Graphical Userinterface ) などが利用可能。おそらくセキュリティを生業とした法人などが契約するようなものかと思う。
一般的に CTF や ペネトレーションテストであれば Metafploit Framework ( 無料版 ) で問題はない。GUI は無いが、Command Line で簡単に利用可能。
Metasploit を立ち上げるには msfconsole
をターミナルに叩けばよい。
Module と Tool、その他語彙
Metasploit の用語として module ( モジュール ) と tool ( ツール ) がある。
ツールはmetasploit が提供する特定のツールである。有名どころでいうと msfvenom ( payload を作成できるツール ) はツールにあたる。
一方で、モジュールというのは Metasploit で使える様々な細かい機能をジャンル別に分けているものである。ツールとモジュールの違いはなんぞやというと:
モジュールはジャンル別で特定のアクションを行う機能とそのコードたち。
ツールはモジュールを補助する機能たち。
モジュールに関しては細かくジャンル分けすると以下の通り:
- Auxilary
- Encoder
- Evasion
- Exploits
- NOPs
- Singles
- Stagers
- Post
くわしくは本家サイトを要確認を確認できればとおもうが、
一般的な CTF のものだと Aux , Exploits, Payload をよく利用する。
ちなみに、Metasploit ではよく Vulnerability, Exploit, Payload という言葉を使うので要注意。
-
Vulnerability: システム内にある脆弱性。一般的にはこの脆弱性を逆手にアクセスを確立する。
-
Exploit: 脆弱性を用いるコードやモジュールのこと。また、動詞としても活用可能。
-
Payload: 脆弱性を突いてターゲットシステムにアクセスした後に、最終的なゴールを達成するためのコード。
たとえば、Windows の脆弱性 MS08-067 を利用してターゲットにアクセスするための Payload を msfconsole から指定し、最終的に exploit ( 攻撃を行う ) する、という形だ。
基本のコマンド: 開始から Payload の設定 まで。
msfconsole
: ターミナル上で metasploit を起動する。
search {terms}
: モジュールを検索するためのコマンド。
--> 例: search sftp : sftp 関連のモジュールの検索。
use {number or module path}
: 検索で表示されたモジュールの名前や番号を指定して利用する。
--> 例:use 0: リストの一番上の module を利用する。
show options
: 指定した module の設定オプションの確認。
info
: module の詳細確認。
set {}
: module のオプションを指定する。
--> 例:set LHOST {LHOST IP}: LHOST の IP を指定する。
setg {}
: グローバル定数の指定。ホストIPなど、固定のものはこれを使う。
unset all
: 設定をすべてリセットする。
exploit
: payload を実行する。
便利そうな module の例 :
様々な module があるなかで、一般的に使えそうなもの。
[1] scanner/smb/smb_login
: SMB ログインを見つけるスキャナ。ユーザー名と wordlist が必要。
[2] auxiliary/scanner/vnc/
: 脆弱性のスキャン nmap の --script vuln と同等。