airolib-ng を使用した PMK データベースの作成

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

はじめに

airolib-ng は、事前に計算されたマスターキー (PMK) データベースを管理および使用するために設計された、Aircrack-ng スイート内の強力なツールです。WPA/WPA2 ハンドシェイクをクラックしようとする際、最も時間のかかる部分は、候補となるパスフレーズとネットワーク名 (ESSID) から PMK を計算することです。

一般的なパスフレーズとネットワーク名のリストに対してこれらの PMK を事前に計算し、データベースに保存することで、クラッキングプロセスを劇的に加速させることができます。攻撃中に各パスワードの重い計算を実行する代わりに、aircrack-ng はデータベースで PMK を検索するだけで済みます。

この実験では、PMK データベースを作成および入力するための airolib-ng の基本的な操作を学びます。

事前計算マスターキーデータベースの概念を理解する

このステップでは、airolib-ng を使用する前に、PMK データベースの背後にある理論を説明します。このステップで実行するコマンドはありません。

WPA/WPA2 ネットワークのセキュリティは、ペアワイズマスターキー (PMK) を使用してトラフィックを暗号化する 4 ウェイハンドシェイクに依存しています。この PMK は、ネットワークのパスワード (パスフレーズ) とその名前 (ESSID) から派生します。式は次のとおりです。

PMK = PBKDF2(passphrase, SSID, 4096 iterations, 256-bit output)

aircrack-ng のようなツールと単語リストを使用してキャプチャされた WPA/WPA2 ハンドシェイクをクラックしようとすると、ツールはリスト内のすべてのパスワードに対してこの計算を実行します。4096 回のイテレーションにより、このプロセスは計算コストが高く、遅くなります。

ここで airolib-ng が登場します。これにより、この重い処理を事前に実行できます。一般的な ESSID のリストとパスフレーズの大きな単語リストを取得し、結果として得られるすべての PMK を事前に計算できます。これらの PMK は、効率的な SQLite データベースに保存されます。

ハンドシェイクをクラックする時間になると、aircrack-ng はこのデータベースを使用できます。各パスワードの PMK を計算する代わりに、キャプチャされたハンドシェイクの ESSID と単語リストのパスワードから一度計算し、事前計算されたデータベースで結果を検索します。この検索は、完全な計算よりも数千倍高速であり、クラッキング時間を劇的に短縮します。

次のステップでは、このようなデータベースを作成し、ESSID とパスワードで入力し、その整合性を検証します。

airolib-ng --new を使用して新しい SQLite データベースを作成する

このステップでは、PMK を保存するための新しい空の SQLite データベースを作成します。すべての作業は ~/project ディレクトリで行います。

airolib-ng コマンドに続けて、目的のデータベース名と --new フラグを使用します。このフラグは、airolib-ng に新しいデータベースファイルを初期化するように指示します。

pmk_db という名前のデータベースを作成しましょう。ターミナルで次のコマンドを実行します。

airolib-ng pmk_db --new

ツールは現在のディレクトリ (~/project) に pmk_db ファイルを作成し、その中に必要なテーブルを設定します。データベースの作成と初期化を確認する出力が表示されるはずです。

期待される出力:

Database 'pmk_db' created.
Wrote 1 ESSIDs and 0 PMKs.

ls コマンドを使用してファイルが作成されたことを確認できます。

ls -l pmk_db

期待される出力:

-rw-r--r-- 1 labex labex 8192 May 20 10:30 pmk_db

--import essid を使用してデータベースに単一の ESSID をインポートする

このステップでは、新しく作成したデータベースにネットワーク名 (ESSID) を追加します。データベースは、どの ESSID に対して PMK を事前計算したいかを知る必要があります。

--import essid オプションを使用します。このオプションは、コマンドラインから単一の ESSID を引数として受け取るか、ファイルから ESSID のリストを受け取ることができます。この実験では、MyHomeWiFi という名前の単一の ESSID をインポートします。

次のコマンドを実行して、pmk_db データベースに ESSID をインポートします。

airolib-ng pmk_db --import essid MyHomeWiFi

データベースが読み込まれ、1 つの ESSID が書き込まれたことを示す出力が表示されます。

期待される出力:

Reading file...
Wrote 1 ESSIDs and 0 PMKs.
Done.

これで、データベースは MyHomeWiFi ネットワークを認識し、それに関連付けられた PMK を保存する準備ができました。

その ESSID の PMK を計算するために単語リストをインポートする

このステップでは、パスワードのリスト (単語リスト) をインポートし、airolib-ng に前のステップでインポートした ESSID の PMK を計算させます。

この実験のセットアップスクリプトは、~/project ディレクトリに wordlist.txt という名前の小さな単語リストファイルを既に作成しています。このファイルを読み込むために --import pwd オプションを使用します。wordlist.txt の各パスワードに対して、airolib-ngMyHomeWiFi ESSID の PMK を計算し、結果をデータベースに保存します。

次のコマンドを実行します。

airolib-ng pmk_db --import pwd wordlist.txt

ツールはファイルからパスワードを読み込み、PMK を計算します。私たちの wordlist.txt には 4 つのパスワードが含まれており、データベースには 1 つの ESSID があるため、4 つの PMK を計算して保存します。

期待される出力:

Reading file...
Wrote 0 ESSIDs and 4 PMKs.
Done.

これで、データベースには wordlist.txt のすべてのパスワードに対する MyHomeWiFi ネットワークの事前計算済みキーが含まれています。

データベースの整合性を検証するためのバッチ操作を実行する

このステップでは、データベースの内容を検証し、不足している PMK ペアを計算する方法を学びます。これは、特に大規模なデータベースにとって重要なメンテナンス手順です。

--batch オプションは包括的な操作を実行します。データベース内のすべての ESSID とパスワードのペアの組み合わせを見つけ、まだ PMK が存在しないペアに対して PMK を計算します。また、既存の PMK を再計算して比較することにより、それらの整合性を検証する方法としても機能します。

pmk_db データベースでバッチコマンドを実行します。

airolib-ng pmk_db --batch

前のステップで可能なすべてのペア (1 ESSID x 4 パスワード) を計算したばかりなので、コマンドは新しい PMK を計算する必要がないことを検出します。既存のものを検証するだけです。

期待される出力:

All PMKs have been computed for all ESSIDs.
Nothing to do.

新しい ESSID または新しい単語リストを追加した場合、--batch コマンドを実行することが、すべての新しい PMK の組み合わせでデータベースを更新する最も効率的な方法となります。

まとめ

おめでとうございます!airolib-ng を使用して、事前計算済みマスターキー (PMK) データベースを作成および管理することに成功しました。

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

  • WPA/WPA2 クラッキングを高速化するための PMK データベースの概念と利点を理解する。
  • airolib-ng --new を使用して新しい空のデータベースを作成する。
  • airolib-ng --import essid を使用してネットワーク名をデータベースにインポートする。
  • airolib-ng --import pwd を使用して単語リストをインポートし、対応する PMK を計算する。
  • airolib-ng --batch を使用してデータベースを検証および更新するためのバッチ操作を実行する。

この知識があれば、より大きく、より包括的な PMK データベースを構築し、WPA/WPA2 セキュリティ評価を大幅に高速化できます。作成されたデータベース pmk_db は、aircrack-ng で次のように使用できます:aircrack-ng -r pmk_db your_capture_file.cap