はじめに
Metasploit の世界へようこそ!Metasploit Framework は、セキュリティ専門家が侵入テスト(ペネトレーションテスト)や脆弱性評価に使用する強力なツールです。その中核となるのが Metasploit Console、すなわちmsfconsoleです。これは、フレームワークの膨大なモジュール、エクスプロイト、ペイロードにアクセスできる対話型のコマンドラインインターフェースです。
この実験(Lab)では、msfconsoleを操作するための必須コマンドを学習します。これらの基本を習得することが、Metasploit を効果的に使用するための第一歩です。ヘルプの取得方法、ワークスペースを使用したプロジェクトの管理、モジュールの検索、詳細情報の表示、そしてコンソールの適切な終了方法について解説します。
コンソールを起動して始めましょう。
help コマンドでコアコマンドを探る
このステップでは、Metasploit Console を起動し、helpコマンドを使用して利用可能なコマンドを探索します。helpコマンドは、特定のコマンドの機能や利用可能なコマンドがわからない場合に最も役立つリソースです。
まず、Metasploit Console を起動しましょう。起動バナーをスキップしてよりクリーンなインターフェースにするために、-q (quiet) フラグを使用します。
ターミナルで以下のコマンドを実行します。
msfconsole -q
コマンドプロンプトが msf > に変わったことに気づくでしょう。これは、現在 Metasploit Console 内にいることを示しています。
次に、helpコマンドを使用して、利用可能なすべてのコマンドのリストを表示します。
help
ナビゲーションを容易にするためにカテゴリ分けされた、長いコマンドリストが表示されます。
Core Commands
=============
Command Description
------- -----------
? Help menu
banner Display an awesome metasploit banner
cd Change the current working directory
color Toggle color output
connect Communicate with a host
...
Module Commands
===============
Command Description
------- -----------
advanced Displays advanced options for a module
back Move back from the current context
info Displays information about a module
...
また、特定のコマンドの詳細なヘルプを取得することもできます。例えば、searchコマンドについて詳しく知るには、help searchと入力します。
help search
これにより、searchコマンドの構文とオプションが表示されます。
Usage: search [options] <keywords>
Search for modules, plugins, and other framework objects.
OPTIONS:
-h, --help Help banner.
-o <file>, --output <file> Send output to a file in csv format.
-S <string>, --search <string> Search string for row filtering.
-t <type>, --type <type> The type of module to search for (exploit, payload, auxiliary, etc)
...
次のステップに進む前に、helpを使って他のコマンドも自由に探索してください。
workspace コマンドによるワークスペース管理の表示
このステップでは、ワークスペースについて学習します。ワークスペースは、Metasploit 内での作業を整理するための方法です。各ワークスペースは、特定のエンゲージメントに関するホスト、サービス、脆弱性、および収集データ(loot)の情報を格納する自己完結型の環境です。これは、異なる侵入テストプロジェクトを分離しておくために非常に役立ちます。
デフォルトでは、あなたは default ワークスペースにいます。workspace コマンドを使用して、現在利用可能なワークスペースを表示できます。
workspace
出力には利用可能なワークスペースが表示され、アスタリスク * が現在いるワークスペースを示します。
* default
プロジェクト用に新しいワークスペースを作成しましょう。名前を myproject とします。-a フラグは、新しいワークスペースを追加するために使用されます。
workspace -a myproject
Metasploit は作成を確認し、自動的に新しいワークスペースに切り替えます。
[*] Added workspace: myproject
[*] Workspace: myproject
これで、再度ワークスペースをリスト表示すると、default と myproject の両方が表示され、myproject がアクティブになります。
workspace
default
* myproject
ホストのスキャンやデータ収集など、その後のすべてのアクションは、現在 myproject ワークスペース内に保存されます。
search コマンドで利用可能なモジュールを一覧表示
このステップでは、search コマンドを使用してモジュールを見つける方法を学びます。Metasploit Framework には何千ものモジュールが含まれており、これらは実行するアクションの中核となるコンポーネントです。これらには、エクスプロイト、auxiliary(補助)スキャナ、ペイロードなどが含まれます。search コマンドは、その作業に適したツールを見つけるために不可欠です。
キーワードに基づいてモジュールを検索できます。例えば、一般的なネットワークプロトコルである smb (Server Message Block) に関連するモジュールを検索してみましょう。
search smb
出力は、一致するモジュールの長いリストになります。結果はいくつかの列を持つテーブル形式で表示されます。
- #: 結果のインデックス番号。
- Name: モジュールの完全なパスと名前。
- Disclosure Date: 脆弱性が公開された日付。
- Rank: エクスプロイトの信頼性(
lowからexcellentまで)。 - Check: 脆弱性を安全にテストするための
checkメソッドがモジュールにあるかどうかを示します。 - Description: モジュールが何をするかの簡単な要約。
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/admin/smb/impacket/secretsdump 2021-11-09 normal No SMB Secrets Dump
1 auxiliary/admin/smb/psexec_ntdsgrab 2021-11-09 normal No PsExec NTDSGRAB
...
58 exploit/windows/smb/ms17_010_eternalblue 2017-03-14 average Yes MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
...
type、platform、name などのキーワードを使用して検索を絞り込むことができます。例えば、smb に関連する windows プラットフォーム用の exploit モジュールのみを見つけるには、次のコマンドを使用できます。
search type:exploit platform:windows smb
これにより、結果のリストが大幅に絞り込まれ、必要な特定のエクスプロイトを見つけやすくなります。
info コマンドによるモジュール情報の表示
このステップでは、use コマンドと info コマンドを使用して、特定のモジュールの詳細情報を取得する方法を学びます。search で有望なモジュールを見つけた後、それが何をするのか、どのようなオプションが必要なのか、どのターゲットに影響を与えるのかを理解する必要があります。
まず、作業するモジュールを選択する必要があります。これは、use コマンドの後に、検索結果から取得したモジュールの完全な名前を指定して行います。有名な eternalblue エクスプロイトを選択してみましょう。
use exploit/windows/smb/ms17_010_eternalblue
プロンプトが変更されたことに注意してください。アクティブなモジュールの名前が含まれるようになり、そのコンテキスト内にいることを示します。
msf exploit(windows/smb/ms17_010_eternalblue) >
モジュールが選択されたので、info コマンドを使用してその詳細情報を取得できます。
info
このコマンドは、以下を含むモジュールの包括的な概要を表示します。
- Name(名前)、Module(モジュール)、Platform(プラットフォーム)、Arch(アーキテクチャ)
- Privileged: 特別な権限が必要かどうか。
- License(ライセンス)および Rank(ランク)
- Provided by: モジュールの作成者。
- Available targets: ターゲットとなる特定のオペレーティングシステムやアプリケーション。
- Basic options: ターゲットの IP アドレス (
RHOSTS) など、設定が必要なパラメータ。 - Payload information: 配信可能なペイロードの種類。
- Description: 脆弱性に関する詳細な説明。
- References: アドバイザリや記事へのリンク(CVE、BID など)。
Name: MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
Module: exploit/windows/smb/ms17_010_eternalblue
Platform: Windows
Arch: x86, x64
Privileged: Yes
License: Metasploit Framework License (BSD)
Rank: Average
...
Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 445 yes The target port (TCP)
SMBDomain . no (Optional) The Windows domain to use for authentication
...
これらの情報を確認することは、エクスプロイトを実行しようとする前の重要なステップです。
exit コマンドによるコンソール終了
最終ステップでは、Metasploit Console を適切に終了する方法を学びます。ターミナルウィンドウを閉じるか Ctrl+C を使用することもできますが、msfconsole を終了するための推奨される方法は exit コマンドを使用することです。
これにより、フレームワークが正常にシャットダウンし、実行中のジョブが停止し、現在の状態が保存されます。
終了する前に、モジュールのコンテキストからメインの msfconsole プロンプトに戻るには、back コマンドを使用できます。
back
プロンプトは標準の msf > に戻ります。
次に、コンソールから完全に終了するには、単に exit と入力します。
exit
シャットダウンメッセージが表示され、通常のシステムシェルプロンプトに戻ります。
labex:project$
これで、Metasploit Console のナビゲーションに関する基本的なツアーは終了です。
まとめ
おめでとうございます!これで、Metasploit Console のナビゲーションの基本に関するこの実験(Lab)を無事に完了しました。
この実験(Lab)では、msfconsole 内で最も基本的な操作を実行する方法を学びました。
- コンソールを起動し、
helpコマンドを使用して他のコマンドを発見し、学習する方法。 workspaceコマンドを使用して、個別の環境を作成および管理することでプロジェクトを整理する方法。- 強力な
searchコマンドとそのフィルターを使用して、あらゆるタスクに対応するモジュールを見つける方法。 infoコマンドを使用して、モジュールの詳細、オプション、ターゲットを調査する方法。exitコマンドを使用して、フレームワークを適切にシャットダウンする方法。
これらのコマンドは、今後の Metasploit でのすべての作業の基盤となります。この知識があれば、モジュールの設定や実行など、より高度なトピックを探求する準備が整いました。



