Aircrack-ng で WPA ハンドシェイクをパッシブにキャプチャする

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

はじめに

この実験 (Lab) では、Aircrack-ng スイートのツールを使用して WPA/WPA2 ハンドシェイクをキャプチャする基本的な方法を学びます。WPA ハンドシェイクとは、クライアントデバイスとワイヤレスアクセスポイント (AP) との間で行われる 4 ウェイメッセージ交換であり、クライアントをネットワークに認証します。このハンドシェイクをキャプチャすることは、Wi-Fi パスワードの強度をテストする最初のステップです。

ここでは「パッシブ」キャプチャ方法に焦点を当てます。これは、ネットワークを積極的に妨害したり、クライアントを切断させたりしないことを意味します。代わりに、無線電波を傍受し、クライアントがターゲット AP に自然に接続または再接続するのを待ちます。これは、ワイヤレスセキュリティ監査におけるよりステルスなアプローチです。

airmon-ng を使用してワイヤレスインターフェイスのモニターモードを有効にし、airodump-ng を使用してネットワークトラフィックをキャプチャします。この実験 (Lab) の終わりには、有効な WPA ハンドシェイクを含むキャプチャファイルが作成され、その内容を確認する方法がわかるようになります。

--bssid および --channel を使用して特定の AP をターゲットにする

このステップでは、パケットキャプチャのためにワイヤレスインターフェイスを準備し、特定のアクセスポイント (AP) からのトラフィックの傍受を開始します。

まず、ワイヤレスインターフェイスを「モニターモード」にする必要があります。このモードにより、ネットワークカードは自分宛てのトラフィックだけでなく、空中のすべての Wi-Fi トラフィックを傍受できるようになります。このために airmon-ng ツールを使用します。シミュレートされたワイヤレスインターフェイスの名前は wlan0 です。

モニターモードを開始するには、ターミナルで次のコマンドを実行します。

sudo airmon-ng start wlan0

モニターモードが有効になったことを示す出力が表示されるはずです。新しいモニターインターフェイスの名前は、おそらく wlan0mon になります。

PHY     Interface       Driver          Chipset

phy0    wlan0           mac80211_hwsim  Software simulator
                (monitor mode enabled on wlan0mon)

モニターモードがアクティブになったので、airodump-ng を使用してキャプチャを開始できます。近くのすべてのネットワークからの不要なトラフィックのキャプチャを避けるために、特定の AP をターゲットにします。この実験 (Lab) では、次の詳細を持つシミュレートされた AP を使用します。

  • BSSID (MAC アドレス): 00:11:22:33:44:55
  • チャンネル:6

--bssid および --channel フラグを使用して、airodump-ng をターゲットに集中させます。次のコマンドを実行します。

sudo airodump-ng --bssid 00:11:22:33:44:55 --channel 6 wlan0mon

ターミナルには airodump-ng インターフェイスが表示され、ターゲット AP に関する情報が表示されます。このコマンドを実行したまま、次のステップに進んでください。

CH  6 ][ Elapsed: 0 s ][ 2023-10-27 10:00

 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  TestAP

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe

-w を使用してキャプチャを .cap ファイルに書き込む

前のステップでは、airodump-ng は画面にライブトラフィックを表示するだけでした。後で分析を実行するには、キャプチャされたパケットをファイルに保存する必要があります。

まず、実行中の airodump-ng コマンドを、そのターミナルで Ctrl+C を押して停止します。

次に、同じコマンドを再度実行しますが、-w (write) フラグを追加します。このフラグは、airodump-ng にキャプチャされたパケットをファイルに書き込むように指示します。ファイル名のプレフィックスを指定すると、airodump-ng はそのプレフィックスを持ついくつかのファイルを作成し、最も重要なファイルは .cap で終わります。

ファイル名のプレフィックスとして passive_capture を使用しましょう。次のコマンドを実行します。

sudo airodump-ng --bssid 00:11:22:33:44:55 --channel 6 -w passive_capture wlan0mon

画面上の出力は前のステップと同じように見えますが、すべての生のパケットデータが現在のディレクトリ (~/project) のファイルに保存されています。主要なファイルは passive_capture-01.cap という名前になります。

次のステップに進むまで、このコマンドを実行したままにしておきます。次のステップでは、重要なハンドシェイクが発生するのを待ちます。

クライアントが自然に接続または再接続するのを待つ

このステップでは、WPA ハンドシェイクをキャプチャするために必要な条件について学びます。airodump-ng が実行され、ファイルに保存されている状態で、セットアップは完了です。あとはハンドシェイクが発生するのを待つだけです。

WPA ハンドシェイクは、クライアントデバイスがアクセスポイント (AP) に対して認証を行う場合にのみ発生します。パッシブキャプチャのシナリオでは、次のいずれかのイベントが発生するのを待つ必要があります。

  1. 新しいクライアントが AP に接続する。
  2. 既存のクライアントが切断され、その後 AP に再接続する。

このプロセスには忍耐が必要です。これらのイベントが発生するタイミングを制御できないためです。アクティブな攻撃 (この実験ではカバーされていません) では、aireplay-ng のような別のツールを使用してクライアントを切断させ、すぐに再接続するように促し、要求に応じてハンドシェイクを生成します。

この実験では、この待機期間をシミュレートします。クライアントがシミュレートされた環境の「TestAP」ネットワークに自動的に接続します。このステップでコマンドを実行する必要はありません。ターミナルで airodump-ng の出力を観察し続けてください。

出力で「WPA handshake」メッセージを特定する

このステップでは、WPA ハンドシェイクを正常にキャプチャできたことを確認します。

しばらく待つと、シミュレートされたクライアントが AP に接続しました。airodump-ng が 4 ウェイハンドシェイクパケットを正常にキャプチャすると、そのディスプレイの右上隅に確認メッセージが表示されます。

airodump-ng のターミナルウィンドウを確認してください。次の 2 つの重要な変更が表示されているはずです。

  1. WPA handshake: 00:11:22:33:44:55 というメッセージが表示された。
  2. 下部のセクションに、接続したばかりのクライアントデバイスを表す新しいエントリが表示された。

出力は次のようになります。

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

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

 00:11:22:33:44:55  -30       55       20    1   6  54e  WPA2 CCMP   PSK  TestAP

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe

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

この「WPA handshake」メッセージは、必要なデータをキャプチャできたことを示す信号です。これでキャプチャプロセスを停止できます。

キャプチャを停止し、.cap ファイルを検証する

この最後のステップでは、パケットキャプチャを停止し、aircrack-ng を使用して、キャプチャファイル内にハンドシェイクが存在し有効であることを確認します。

「WPA handshake」メッセージが表示されたので、これで airodump-ng を停止できます。実行中のターミナルで Ctrl+C を押してください。

次に、現在のディレクトリのファイルを一覧表示して、airodump-ng によって作成されたファイルを確認します。

ls -l

キャプチャファイルが表示されるはずです。最も重要なファイルは passive_capture-01.cap です。

-rw-r--r-- 1 root root 1234 Oct 27 10:06 passive_capture-01.cap
-rw-r--r-- 1 root root 5678 Oct 27 10:06 passive_capture-01.csv
...

.cap ファイルに実際に使用可能なハンドシェイクが含まれていることを確認するには、aircrack-ng 自体で確認できます。単に aircrack-ng を実行し、.cap ファイルを指定します。

aircrack-ng passive_capture-01.cap

Aircrack-ng はファイルを分析し、見つかったものを報告します。確認すべき重要な情報は (1 handshake) です。これは、ファイルにターゲットネットワークの完全でクラック可能な WPA ハンドシェイクが含まれていることを確認します。

Opening passive_capture-01.cap
Read 1500 packets.

   ##  BSSID              ESSID                     Encryption

   1  00:11:22:33:44:55  TestAP                    WPA (1 handshake)

Choosing first network as target.

これで、WPA ハンドシェイクを正常にパッシブにキャプチャし、その整合性を検証しました。

まとめ

この実験では、無線ネットワークセキュリティ監査における基本的なスキルである、WPA/WPA2 ハンドシェイクのパッシブキャプチャを正常に実行しました。

以下の方法を学びました。

  • sudo airmon-ng start wlan0 を使用して、ワイヤレスインターフェイスでモニターモードを有効にする方法。
  • --bssid および --channel フラグを使用して、特定の AP をターゲットにするために airodump-ng を使用する方法。
  • -w フラグを使用して、キャプチャされたネットワークトラフィックをファイルに保存する方法。
  • airodump-ng の出力で「WPA handshake」確認メッセージを認識する方法。
  • aircrack-ng を使用してキャプチャファイルを分析し、有効なハンドシェイクの存在を確認する方法。

生成されたキャプチャファイル passive_capture-01.cap には、パスワードクラッキング攻撃(例:辞書攻撃)を試みるために必要なすべての情報が含まれています。これは、完全なセキュリティ評価における論理的な次のステップです。この実験の完了おめでとうございます!