はじめに
Fluxion は、無線ネットワークのセキュリティ監査のために設計された強力なソーシャルエンジニアリングツールです。その主要な攻撃ベクターの 1 つは、ターゲットネットワークからの有効な WPA/WPA2 ハンドシェイクを必要とするキャプティブポータル攻撃です。Fluxion はこのハンドシェイクを自身でキャプチャできますが、airodump-ng や besside-ng のような他のツールを使用して既にキャプチャしたハンドシェイクファイル(通常は .cap ファイル)を持っている場合があります。
この実験では、既存のハンドシェイクファイルを Fluxion に手動でインポートするプロセスを学びます。これには、.cap ファイルを正しいディレクトリに配置し、Fluxion がネットワークの詳細を識別するために使用する対応するデータベースファイルを作成することが含まれます。この実験の終わりまでに、他のツールからのキャプチャを Fluxion のワークフローにシームレスに統合できるようになります。
他のツールから .cap ハンドシェイクファイルを取得する
このステップでは、既にハンドシェイクファイルをキャプチャしたプロセスをシミュレートします。実際のシナリオでは、別のマシンで airodump-ng のようなツールを使用してこのファイルを生成した可能性があります。この実験のために、~/project/external_captures ディレクトリにサンプルファイルが用意されています。
最初のタスクは、このファイルを見つけることです。ls -l コマンドを使用してディレクトリの内容を一覧表示し、サンプルのハンドシェイクファイルを確認してください。
ls -l ~/project/external_captures
以下のような出力が表示され、.cap ファイルの存在が確認できるはずです。ESSID_BSSID.cap という命名規則は一般的ですが、必須ではありません。
total 0
-rw-r--r-- 1 labex labex 0 Jan 1 12:00 MyHomeWiFi_00-11-22-33-44-55.cap
これでファイルを見つけることができたので、Fluxion が見つけられる場所に配置することができます。
.cap ファイルを 'handshakes' ディレクトリにコピーする
このステップでは、ハンドシェイクファイルを、Fluxion が既存のキャプチャをスキャンする特定のディレクトリに移動します。Fluxion は、ハンドシェイクを含むすべてのアタック関連ファイルを独自のディレクトリ構造内に保存します。ハンドシェイクファイルの正しい場所は ~/project/fluxion/attacks/Handshake/handshakes/ です。
cp コマンドを使用して、.cap ファイルを ~/project/external_captures から Fluxion のハンドシェイクディレクトリにコピーします。
cp ~/project/external_captures/MyHomeWiFi_00-11-22-33-44-55.cap ~/project/fluxion/attacks/Handshake/handshakes/
ファイルをコピーした後、ファイルが正しい場所にあることを確認するのが良い習慣です。再度 ls -l コマンドを使用して、宛先ディレクトリの内容を確認してください。
ls -l ~/project/fluxion/attacks/Handshake/handshakes/
コピーしたファイルが一覧に表示されているはずです。
total 0
-rw-r--r-- 1 labex labex 0 Jan 1 12:01 MyHomeWiFi_00-11-22-33-44-55.cap
ネットワーク詳細情報を含む対応する .db ファイルを作成する
このステップでは、Fluxion がキャプチャされたネットワークの詳細を理解するために必要なメタデータファイルを作成します。.cap ファイルがあるだけでは不十分です。Fluxion は、同じディレクトリに同じ名前(例:MyHomeWiFi_00-11-22-33-44-55.db)の対応する .db ファイルを必要とします。このファイルには、ネットワークの BSSID、ESSID、およびチャンネルが保存されます。
まず、touch コマンドを使用して空の .db ファイルを作成します。
touch ~/project/fluxion/attacks/Handshake/handshakes/MyHomeWiFi_00-11-22-33-44-55.db
次に、このファイルにネットワーク情報を BSSID;ESSID;CHANNEL という特定の形式で入力する必要があります。例として、チャンネル "6" で BSSID "00:11:22:33:44:55" を持つネットワーク "MyHomeWiFi" の場合、echo コマンドを使用してこのデータをファイルに書き込みます。
echo "00:11:22:33:44:55;MyHomeWiFi;6" > ~/project/fluxion/attacks/Handshake/handshakes/MyHomeWiFi_00-11-22-33-44-55.db
最後に、cat コマンドを使用して .db ファイルの内容を確認し、データが正しく書き込まれたことを確認します。
cat ~/project/fluxion/attacks/Handshake/handshakes/MyHomeWiFi_00-11-22-33-44-55.db
出力は、先ほど入力した文字列と完全に一致するはずです。
00:11:22:33:44:55;MyHomeWiFi;6
Fluxion を起動し、ターゲットネットワークを選択する
このステップでは、Fluxion を起動して、インポートしたハンドシェイクが正しく検出されるかを確認します。Fluxion はワイヤレスアダプターを必要とするインタラクティブなスクリプトであるため、ここでは起動プロセスをシミュレートし、実際の環境で表示される内容を説明します。
まず、fluxion ディレクトリに移動します。
cd ~/project/fluxion
次に、sudo 権限でメインスクリプトを実行します。
sudo ./fluxion.sh
起動すると、Fluxion は一連の初期プロンプトを表示します。
- 言語選択: 言語を選択するように求められます。デフォルトの英語を選択するには
Enterを押します。 - アダプター選択: ワイヤレスアダプターを検索します。シミュレートされた実験環境では、おそらく何も検出されないでしょう。これは想定内です。
これらの初期チェックの後、Fluxion は handshakes ディレクトリをスキャンします。.cap ファイルと .db ファイルの両方を正しく配置したため、リストにターゲットネットワークが表示されます。出力は次のようになります。
[#] BSSID CH ENCR POWER ESSID
[1] 00:11:22:33:44:55 6 WPA2 - MyHomeWiFi
これにより、Fluxion がネットワーク情報を正常にインポートしたことが確認できます。この実験では、これでスクリプトを終了するには Ctrl+C を押します。
Fluxion がハンドシェイクを「Verified」として検出することを確認する
この最終ステップでは、Fluxion がハンドシェイクファイルをどのように検証するかを説明します。Fluxion は利用可能なネットワークをリストする際に、対応する .cap ファイルに有効な WPA/WPA2 ハンドシェイクが含まれているかどうかもチェックします。これは、バックグラウンドで aircrack-ng ユーティリティを実行することによって行われます。
このプロセスを自分で確認するために、Fluxion が使用するのと同じコマンドを実行できます。インポートした .cap ファイルに対して aircrack-ng を実行します。
aircrack-ng ~/project/fluxion/attacks/Handshake/handshakes/MyHomeWiFi_00-11-22-33-44-55.cap
作成した .cap ファイルは空であり、デモンストレーション目的のみであるため、aircrack-ng は有効なハンドシェイクが見つからなかったと報告します。出力は次のようになります。
Opening /home/labex/project/fluxion/attacks/Handshake/handshakes/MyHomeWiFi_00-11-22-33-44-55.cap
Read 0 packets.
## BSSID ESSID Encryption
1 00:11:22:33:44:55 MyHomeWiFi WPA (0 handshake)
Choosing first network as target.
Opening /home/labex/project/fluxion/attacks/Handshake/handshakes/MyHomeWiFi_00-11-22-33-44-55.cap
No valid WPA handshakes found.
実際のシナリオで、.cap ファイルに有効なハンドシェイクが含まれている場合、出力は代わりに WPA (1 handshake) と表示されます。Fluxion がこれを確認すると、ユーザーインターフェースでハンドシェイクを「Verified」とマークし、キャプティブポータル攻撃に使用できる状態であることを示します。この手動チェックは、Fluxion がハンドシェイク検証に使用するメカニズムを理解するのに役立ちます。
まとめ
この実験では、既存のハンドシェイクファイルを Fluxion にインポートする方法を習得しました。事前にキャプチャされたファイルを見つけることから、Fluxion の攻撃に使用する準備をするまで、ワークフロー全体を実践しました。
以下のことを学びました。
- 事前に存在する
.capファイルを見つける方法。 .capファイルを Fluxion 専用のhandshakesディレクトリにコピーする方法。- ネットワークの BSSID、ESSID、およびチャンネルを使用して、必要な
.dbメタデータファイルを作成し、入力する方法。 - Fluxion を起動して、インポートされたネットワークを認識することを確認する方法。
aircrack-ngを手動で実行して、Fluxion が自動的に実行するハンドシェイク検証プロセスを理解する方法。
このスキルにより、Fluxion はセキュリティ監査ツールキットにおいて、より柔軟なツールとなり、あらゆるソースからのハンドシェイクキャプチャを活用できるようになります。
