はじめに
この実験(Lab)では、情報収集のための Metasploit Framework の基本的な使い方を学びます。具体的には、補助スキャナーモジュールを使用した FTP(File Transfer Protocol)の列挙に焦点を当てます。
Metasploit は、ハッキングをよりシンプルにする強力なペネトレーションテストフレームワークです。膨大なツール、エクスプロイト、モジュールが含まれています。補助モジュールは、直接的なエクスプロイトを伴わないスキャン、ファジング、偵察などのタスクに使用される重要なコンポーネントです。
FTP 列挙とは、FTP サービスに関する情報(バージョン、設定、匿名アクセスが可能かどうかなど)を収集するプロセスです。この情報は、潜在的な脆弱性を特定するために不可欠です。ここでは、ftp_version 補助モジュールを使用してターゲットをスキャンし、実行中の FTP サーバーソフトウェアを特定します。
この実験(Lab)の終わりには、Metasploit モジュールを見つけ、設定し、実行するという基本的なワークフローに慣れるでしょう。
ftp_version 補助モジュールの検索
このステップでは、Metasploit Framework コンソールを起動し、FTP バージョン スキャンに適したモジュールを検索します。Metasploit コンソールは、フレームワークと対話するための主要なインターフェースです。
まず、ターミナルを開き、Metasploit コンソールを起動します。ここでは -q フラグを使用して「サイレント」起動を行い、バナーを抑制してインターフェースをクリーンにします。
msfconsole -q
msfconsole プロンプトに入ったら、search コマンドを使用してモジュールを検索できます。ここでは、FTP サーバーのバージョンを識別できるモジュールを探しています。検索に適したキーワードは ftp_version です。
msfconsole プロンプトに次のコマンドを入力します。
search ftp_version
一致するモジュールのリストが表示されます。私たちが興味を持っているのは、補助スキャナーです。
msf6 > search ftp_version
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/ftp/ftp_version normal No FTP Version Scanner
1 exploit/windows/ftp/ftpshell_version_bof 2010-05-12 good No FTPShell 6.70 (Windows 7) Version Stack Buffer Overflow
出力には auxiliary/scanner/ftp/ftp_version モジュールが表示されており、これはまさに私たちのタスクに必要なものです。
ftp_version モジュールの選択
このステップでは、前のステップで見つけたモジュールを選択します。search コマンドで適切なモジュールを特定した後、それをフレームワークのコンテキストにロードして設定し、実行する必要があります。
モジュールを選択するコマンドは use で、その後に検索結果から得られたモジュールの完全な名前を指定します。
前のステップの出力に基づいて、次のコマンドを使用して FTP バージョン スキャナーを選択します。
use auxiliary/scanner/ftp/ftp_version
このコマンドを実行すると、msfconsole のプロンプトが変更されていることに気づくでしょう。選択されたモジュールの名前が含まれており、そのコンテキスト内で作業していることを示しています。
msf6 > use auxiliary/scanner/ftp/ftp_version
msf6 auxiliary(scanner/ftp/ftp_version) >
この新しいプロンプトは、ftp_version モジュールが現在アクティブであり、設定の準備ができていることを確認します。
RHOSTS オプションをターゲット IP に設定する
このステップでは、選択したモジュールを設定します。ほとんどの Metasploit モジュールは、実行前に特定のオプションを設定する必要があります。スキャナー モジュールの場合、最も一般的なオプションは RHOSTS で、「Remote Hosts」の略です。このオプションは、モジュールがどのターゲットをスキャンするかを指示します。
私たちの実験環境では、同じマシン(localhost)で FTP サーバーが実行されています。localhost の IP アドレスは 127.0.0.1 です。
Metasploit でオプションを設定するには、set コマンドの後にオプション名とその値を指定します。
RHOSTS オプションをターゲットの IP アドレスに設定します。
set RHOSTS 127.0.0.1
Metasploit は、新しい設定をエコーバックすることで変更を確認します。
msf6 auxiliary(scanner/ftp/ftp_version) > set RHOSTS 127.0.0.1
RHOSTS => 127.0.0.1
これで、モジュールはどのターゲットをスキャンするかを知っています。
show options でモジュールオプションを表示・理解する
このステップでは、モジュールの設定を表示および確認する方法を学びます。モジュールを実行する前に、すべてのオプションを確認して、すべてが正しく設定されていることを確認するのが常に良い習慣です。
show options コマンドは、現在アクティブなモジュールの設定可能なすべてのパラメータを表示します。
ftp_version スキャナーのオプションを表示するには、次のコマンドを実行します。
show options
これにより、各オプションの詳細を示す表が表示されます。
msf6 auxiliary(scanner/ftp/ftp_version) > show options
Module options (auxiliary/scanner/ftp/ftp_version):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS 127.0.0.1 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 21 yes The target port (TCP)
THREADS 1 yes The number of concurrent threads (max one per host)
各列の内訳を見てみましょう。
- Name: オプションの名前(例:
RHOSTS)。 - Current Setting: 現在オプションに割り当てられている値。
RHOSTSに127.0.0.1が設定されていることがわかります。 - Required: モジュールを実行するためにオプションを設定する必要があるかどうかを示します(
yesまたはno)。 - Description: オプションの機能に関する簡単な説明です。
この出力を確認することで、必須の RHOSTS オプションがターゲットに正しく設定されていることを確認できます。その他の必須オプションである RPORT と THREADS には、すでにスキャンに適したデフォルト値が設定されています。
run コマンドでモジュールを実行する
このステップでは、スキャンを実行するためにモジュールを実行します。モジュールを選択し、必要なすべてのオプションを設定したら、起動する準備が整います。
補助モジュールを実行するためのコマンドは run です。(エクスプロイト モジュールの場合は、run または exploit のいずれかを使用できます)。
これで、スキャナーを実行します。
run
モジュールは指定されたポートでターゲットの FTP サーバーに接続し、そのバージョンバナーを取得しようとします。出力にはスキャンの結果が表示されます。
msf6 auxiliary(scanner/ftp/ftp_version) > run
[+] 127.0.0.1:21 - FTP Banner: 220 (vsFTPd 3.0.5)
[*] 127.0.0.1:21 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
出力の [+] 127.0.0.1:21 - FTP Banner: 220 (vsFTPd 3.0.5) は重要な情報です。ターゲットで FTP サーバーが実行されていることを確認し、そのソフトウェアとバージョン vsFTPd 3.0.5 を教えてくれます。これは成功した列挙です。
まとめ
この実験では、Metasploit Framework を使用して基本的な FTP 列挙を正常に実行しました。補助モジュールを使用するための基本的なワークフローを学びましたが、これは Metasploit ユーザーにとって中核となるスキルです。
以下の主要なコマンドと概念を練習しました。
msfconsoleで Metasploit コンソールを開始する。searchコマンドでモジュールを検索する。useコマンドでモジュールを選択する。setコマンドでRHOSTSなどのモジュールオプションを設定する。show optionsでモジュールの設定を確認する。runコマンドでモジュールを実行し、そのタスクを実行する。
この検索、選択、設定、実行というプロセスは、Metasploit 内の何千ものモジュールに適用可能であり、ペネトレーション テストやセキュリティ分析の基本的なテクニックとなっています。


