はじめに
この実験 (lab) では、hcxdumptool を使用して Wi-Fi ハンドシェイクデータをキャプチャし、ソーシャルエンジニアリングツールである Fluxion で使用できるように準備する完全なワークフローを学びます。hcxdumptool は、wlan デバイスからパケットをキャプチャするために設計された強力なツールであり、ユーザーが接続するのを待つことなく、またはディアセンティフィケーション攻撃 (deauthentication attacks) を使用して、PMKID (Pairwise Master Key Identifiers) およびハンドシェイクを取得することに特化しています。
以下のプロセスを進めます。
- ソースコードから
hcxdumptoolをインストールします。 - シミュレートされたワイヤレスインターフェイスからネットワークデータをキャプチャするために
hcxdumptoolを実行します。 - 付属ツール
hcxpcaptoolを使用して、キャプチャされたデータを標準の.capファイル形式に変換します。 - 変換されたファイルを Fluxion が使用する適切なディレクトリに移動します。
- このハンドシェイクを Fluxion フレームワーク内でインポートおよび利用する方法を理解します。
この実験 (lab) の終わりには、Wi-Fi セキュリティ監査で使用される主要な技術についての実践的な理解が得られるでしょう。
Kali Linux への hcxdumptool のインストール
このステップでは、hcxdumptool をインストールします。デフォルトのパッケージリポジトリには常に利用可能とは限らないため、最新バージョンを入手する最も確実な方法は、GitHub で入手可能なソースコードからコンパイルすることです。セットアップスクリプトは、必要な依存関係をすでにインストールしています。
まず、GitHub から公式の hcxdumptool リポジトリをクローンします。すべての作業は ~/project ディレクトリで行う必要があります。
git clone https://github.com/ZerBea/hcxdumptool.git
リポジトリがクローンされていることを示す出力が表示されるはずです。
Cloning into 'hcxdumptool'...
remote: Enumerating objects: 8133, done.
remote: Counting objects: 100% (154/154), done.
remote: Compressing objects: 100% (88/88), done.
remote: Total 8133 (delta 81), reused 125 (delta 66), pack-reused 7979
Receiving objects: 100% (8133/8133), 2.21 MiB | 5.62 MiB/s, done.
Resolving deltas: 100% (6061/6061), done.
次に、新しく作成された hcxdumptool ディレクトリに移動します。
cd hcxdumptool
ここで、make コマンドを使用してソースコードをコンパイルします。
make
最後に、コンパイルされたバイナリをシステムにインストールして、どこからでも実行できるようにします。
sudo make install
hcxdumptool が正しくインストールされたことを確認するには、ヘルプメニューを表示します。
hcxdumptool -h
このコマンドは、利用可能なオプションの長いリストを表示し、ツールが使用準備完了であることを確認します。
PMKID およびハンドシェイクをキャプチャするために hcxdumptool を実行する
このステップでは、hcxdumptool を使用してネットワークトラフィックのキャプチャを開始します。この実験 (lab) のために、wlan0 という名前のシミュレートされたワイヤレスインターフェイスが作成されています。
まず、メインのプロジェクトディレクトリに戻ります。
cd ~/project
次に、wlan0 インターフェイスをリッスンし、キャプチャされたデータを dump.pcapng という名前のファイルに保存するために hcxdumptool を実行します。ツールの動作を確認するためにステータス表示も有効にします。
以下のコマンドを実行します。約 10〜15 秒間実行し、その後 Ctrl+C を押してキャプチャプロセスを停止してください。
sudo hcxdumptool -i wlan0 -o dump.pcapng --enable_status=1
実行中、リアルタイムで更新されるステータス画面が表示されます。
start capturing (stop with ctrl+c)
INTERFACE:...............: wlan0
FILTERLIST...............: 0 entries
MAC CLIENT...............: 000000000000
MAC ACCESS POINT.........: 000000000000
EAPOL TIMEOUT............: 150000
REPLAYCOUNT..............: 63468
ANONCE...................: a1a2a3a4a5a6a7a8a9b1b2b3b4b5b6b7b8b9c1c2c3c4c5c6c7c8c9d1d2d3d4d5
[22:12:30 - 001]
Ctrl+C を押すと、ツールは停止し、キャプチャファイルが保存されます。現在のディレクトリのファイルを表示して、dump.pcapng ファイルが作成されたことを確認できます。
ls -l
出力リストに dump.pcapng が表示されるはずです。
-rw-r--r-- 1 labex labex 24 Mar 20 22:12 dump.pcapng
drwxr-xr-x 8 labex labex 4096 Mar 20 22:10 fluxion
drwxr-xr-x 3 labex labex 4096 Mar 20 22:11 hcxdumptool
hcxpcaptool を使用して出力を .cap ファイルに変換する
このステップでは、生の dump.pcapng ファイルを、Fluxion や Hashcat などの他のツールと互換性のある形式に変換します。hcxdumptool スイートには、この目的のための hcxpcaptool というツールが含まれています。これは、生のキャプチャから価値のあるハンドシェイクおよび PMKID 情報を抽出します。
以下の hcxpcaptool コマンドを実行して、dump.pcapng ファイルを処理します。このコマンドは、クリーンアップされたデータを含む handshake.cap という名前の新しいファイルを作成します。
hcxpcaptool -o handshake.cap dump.pcapng
-o handshake.cap: 出力ファイル名を指定します。dump.pcapng: 前のステップからの入力ファイルです。
コマンドは、変換プロセスを要約する出力を生成します。実際のトラフィックがないシミュレートされた環境にいるため、ハンドシェイクが 0 件見つかるのは正常です。目標は、コマンドのワークフローを学ぶことです。
summary:
--------
file name....................: dump.pcapng
file type....................: pcapng
file hardware information....: x86_64
file os information..........: Linux 5.15.0-101-generic
file application information.: hcxdumptool 6.2.7
network type.................: DLT_IEEE802_11_RADIO (127)
endianess....................: little endian
read errors..................: 0
packets inside...............: 1
skipped packets..............: 0
packets with FCS.............: 0
beacons (with ESSID inside)..: 0
probe requests...............: 1
probe responses..............: 0
association requests.........: 0
association responses........: 0
reassociation requests.......: 0
reassociation responses......: 0
authentications (OPEN SYSTEM): 0
authentications (BROADCOM)...: 0
EAPOL packets................: 0
EAPOL PMKIDs.................: 0
EAPOL M1M2ROGUEs.............: 0
EAPOL M2s....................: 0
EAPOL M3s....................: 0
EAPOL M4s....................: 0
found handshakes.............: 0
ここで、ディレクトリ内のファイルを再度一覧表示して、handshake.cap が作成されたことを確認します。
ls -l
ファイルリストに handshake.cap が表示されるはずです。
変換された .cap ファイルを Fluxion の Handshakes フォルダにコピーする
このステップでは、handshake.cap ファイルを、Fluxion が事前にキャプチャされたハンドシェイクを探す特定のディレクトリに移動します。これにより、ツール内で再度キャプチャすることなく、キャプチャされたデータを Fluxion の攻撃で使用できます。
セットアップ中にクローンされた Fluxion ツールには、この目的のための専用フォルダが fluxion/attacks/HandshakeSnooper/handshakes/ にあります。
cp コマンドを使用して、handshake.cap ファイルをそのディレクトリにコピーします。
cp handshake.cap fluxion/attacks/HandshakeSnooper/handshakes/
ファイルが正常にコピーされたことを確認するには、宛先ディレクトリの内容を一覧表示します。
ls -l fluxion/attacks/HandshakeSnooper/handshakes/
出力には、デフォルトで存在する .gitkeep ファイルと共に、handshake.cap ファイルが表示されるはずです。
total 4
-rw-r--r-- 1 labex labex 24 Mar 20 22:14 handshake.cap
-rw-r--r-- 1 labex labex 0 Mar 20 22:10 .gitkeep
これで、ハンドシェイクファイルは Fluxion が使用できる正しい場所に配置されました。
ハンドシェイクをインポートして Fluxion 内で使用する
この最終ステップでは、準備したハンドシェイクファイルが Fluxion 内でどのように使用されるかについて説明します。完全なインタラクティブな Fluxion ツールを実行することは複雑であり、この実験の範囲外ですが、プロセスを理解することが重要です。
handshake.cap ファイルを fluxion/attacks/HandshakeSnooper/handshakes/ ディレクトリに配置することで、使用の準備が整いました。
実際のシナリオでは、以下のコマンドで Fluxion を実行します。
cd fluxion
sudo ./fluxion.sh
起動後、メニューシステムを操作します。「Captive Portal」攻撃など、ハンドシェイクを必要とする攻撃を選択すると、Fluxion は新しいハンドシェイクをキャプチャするか、既存のものを使用するかを選択するオプションを提供します。既存のものを使用することを選択すると、Fluxion は handshake.cap ファイルを自動的に検出し、ロードします。その後、攻撃の残りの部分に進むことができます。
この実験の主な目標である、hcxdumptool でハンドシェイクをキャプチャし、Fluxion のために準備するという目標は、これで完了です。これら 2 つの強力なツールの間のギャップを効果的に埋めることができました。
すべてが正しく配置されていることを最後に確認するために、ターゲットディレクトリで ls コマンドを再度実行できます。
ls -l /home/labex/project/fluxion/attacks/HandshakeSnooper/handshakes/handshake.cap
このコマンドはエラーなく実行され、ファイルの詳細が表示され、実際の攻撃の準備ができていることを確認できるはずです。
まとめ
この実験では、Fluxion フレームワーク用のハンドシェイクファイルを準備するために hcxdumptool を使用するエンドツーエンドのプロセスを学習しました。これは、現代の Wi-Fi セキュリティ監査における基本的かつ実践的なスキルです。
以下の主要なステップを習得しました。
- ソースコードからコンパイルして
hcxdumptoolユーティリティをインストールしました。 hcxdumptoolを使用して、シミュレートされたワイヤレスインターフェイスから生のパケットデータを.pcapngファイルにキャプチャしました。hcxpcaptoolユーティリティを使用して、生のキャプチャファイルを標準の.capフォーマットに変換しました。- 最終的な
.capファイルを、Fluxion によって自動的に認識および使用されるように正しいディレクトリにコピーしました。
これで、外部でキャプチャされたハンドシェイクを高度なセキュリティツールで使用するための、初期キャプチャから最終準備までの完全なワークフローを理解しました。
