John the Ripper を使用した Wi-Fi WPA/WPA2 ハンドシェイクのクラッキング

Kali LinuxBeginner
オンラインで実践に進む

はじめに

この実験では、一般的なペネトレーションテストツールである John the Ripper を使用して、Wi-Fi WPA/WPA2パスワードをクラックするプロセスを探求します。主な目的は教育ですが、これらの技術を理解することは、ネットワークセキュリティを向上させるために不可欠です。WPA/WPA2ハンドシェイクをキャプチャする方法を学びます。このハンドシェイクには、オフラインパスワードクラッキングに必要な情報が含まれており、その後、専門的なツールを使用して、このハンドシェイクをJohn the Ripper が処理できる形式に変換します。最後に、辞書攻撃を使用してパスワードをクラックしようとします。この実験では、WPA/WPA2 の根本的なセキュリティ上の欠陥についても取り上げ、自身のネットワークを保護するための強力な Wi-Fi パスワードを作成するためのベストプラクティスを提供します。

WPA/WPA2ハンドシェイクのキャプチャ

このステップでは、WPA/WPA2 ハンドシェイクをキャプチャする概念を理解します。実際のシナリオでは、ワイヤレスアダプターをモニターモードにし、airmon-ngairodump-ngのようなツールを使用して、クライアントが Wi-Fi アクセスポイントに接続する際に発生する 4 ウェイハンドシェイクをキャプチャします。このハンドシェイクには、Wi-Fi パスワードに対するオフラインのブルートフォース攻撃または辞書攻撃を実行するために必要な暗号化マテリアルが含まれています。

この実験の目的のため、キャプチャされたハンドシェイクファイルの存在をシミュレートします。setupスクリプトは、すでに~/projectディレクトリにdummy_capture.capという名前のダミーの.capファイルを作成しています。このファイルは、WPA/WPA2 ハンドシェイクを含む可能性のあるキャプチャされたネットワークトラフィックファイルを表します。

このダミーキャプチャファイルの存在を確認するには、lsコマンドを使用します。

ls -lh ~/project/dummy_capture.cap

以下のような出力が表示され、ファイルが存在することを示します。

-rw-r--r-- 1 labex labex 48 Oct 26 08:00 /home/labex/project/dummy_capture.cap

このステップは概念的な理解に焦点を当てており、実際のネットワークインターフェイスの操作は、この仮想実験環境の範囲外です。

ハンドシェイクを John the Ripper 形式に変換する

このステップでは、キャプチャされた WPA/WPA2 ハンドシェイクファイル(通常は.capファイル)を、John the Ripper が理解できる形式に変換する方法を学びます。John the Ripper は、デフォルトでは WPA/WPA2 クラッキングのために.capファイルを直接処理しません。代わりに、aircrack-nghcxpcaptoolのようなツールによって生成される特定のハッシュ形式が必要です。aircrack-ngスイートには、.capファイルから WPA/WPA2 ハンドシェイクを抽出し、クラッキングに適した形式で出力できるユーティリティが含まれています。

この実験のために、setupスクリプトはすでに~/projectディレクトリにdummy_handshake.hccapxという名前のダミーファイルをhccapx形式で作成しています。このファイルは、そのような変換プロセスの出力をシミュレートしており、John the Ripper で利用できる形式で抽出されたハンドシェイク情報を含んでいます。

このダミーハンドシェイクファイルの存在を確認するには、lsコマンドを使用します。

ls -lh ~/project/dummy_handshake.hccapx

以下のような出力が表示され、ファイルの存在を確認できます。

-rw-r--r-- 1 labex labex 78 Oct 26 08:00 /home/labex/project/dummy_handshake.hccapx

このステップは、WPA/WPA2 クラッキングのために John the Ripper を使用する前に、形式変換が必要であることを強調しています。

John the Ripper で WPA/WPA2 ハンドシェイクをクラックする

このステップでは、John the Ripper を使用して、変換されたハンドシェイクファイルから WPA/WPA2 パスワードをクラックしようとします。John the Ripper は、辞書攻撃を含む様々な攻撃モードをサポートする強力なパスワードクラッキングツールです。辞書攻撃とは、キャプチャされたハンドシェイクに対して、一般的なパスワードのリスト(単語リスト)を試すことです。

johnコマンドに--wordlistオプションを付けて、単語リストファイルとハンドシェイクファイルのパスを指定します。setupスクリプトは、すでに~/projectディレクトリにwordlist.txtという名前の簡単な単語リストを作成しています。

ダミーハンドシェイクのクラッキングを試すには、以下のコマンドを実行します。

john --format=wpapsk --wordlist=~/project/wordlist.txt ~/project/dummy_handshake.hccapx
  • --format=wpapsk: John the Ripper が期待すべきハッシュ形式を指定します。これは Wi-Fi ハンドシェイクの WPA-PSK です。
  • --wordlist=~/project/wordlist.txt: John に、潜在的なパスワードを含む辞書ファイルを示します。
  • ~/project/dummy_handshake.hccapx: 変換されたハンドシェイクファイルへのパスです。

コマンドを実行すると、John the Ripper はパスワードのクラッキングを試みます。単語リスト内のパスワードが一致した場合、それが表示されます。このダミーハンドシェイクと単語リストでは、パスワードlabex123が見つかるはずです。

出力例:

Using default input encoding: UTF-8
Loaded 1 password hash (WPA-PSK [PBKDF2-SHA1 256/256 AVX2])
Will run till completion
Press 'q' or Ctrl-C to abort, almost any other key for status
labex123         (dummy_essid)
1g 0:00:00:00 DONE (2023-10-26 08:00) 100% (ETA: 08:00) 1.000g/s 5.000p/s 5.000c/s 5.000C/s labex123
Session completed.

labex123 (dummy_essid)という行は、ESSID(ネットワーク名)dummy_essidに対してパスワードlabex123が正常にクラックされたことを示しています。

WPA/WPA2セキュリティの脆弱性を理解する

このステップでは、ハンドシェイククラッキングを可能にする WPA/WPA2(Wi-Fi Protected Access II)に内在するセキュリティ上の欠陥について、より深く理解します。WPA2 は、その前身である WEP や WPA と比較して大幅な改善でしたが、依然として特定の種類の攻撃、特に 4 ウェイハンドシェイクに対するオフライン辞書攻撃に対して脆弱です。

中核となる脆弱性は、Pairwise Master Key(PMK)が、Pairwise Transient Key(PTK)を導出するために使用され、その PMK が Pre-Shared Key(PSK)とハンドシェイク中に交換されるノンス(nonce)に基づいているという事実にあります。攻撃者がこの 4 ウェイハンドシェイクをキャプチャした場合、PMK に対してオフラインでのブルートフォース攻撃または辞書攻撃を実行できます。これは、攻撃者がパスワードを試すためにネットワークに積極的に接続する必要がなく、キャプチャされたハンドシェイクがあればよいことを意味します。

理解すべき重要なポイント:

  • オフライン攻撃: クラッキングプロセスはオフラインで行われます。つまり、攻撃者はキャプチャされたハンドシェイクを取得し、ターゲットネットワークとやり取りすることなく何百万ものパスワードを試すことができます。これにより、検出が非常に困難になります。
  • 辞書攻撃/ブルートフォース攻撃: この攻撃の成功は、Wi-Fi パスワードの強度に大きく依存します。パスワードが弱い、一般的である、または辞書に含まれている場合、比較的迅速にクラックされる可能性があります。
  • 直接アクセスなし: 攻撃者はクラッキングプロセス中にネットワークへの直接アクセスを得ることはありません。パスワードのみを取得します。

この脆弱性は、Wi-Fi ネットワークに強力でユニークなパスワードを使用することの極めて重要な重要性を浮き彫りにしています。WPA2 の堅牢な暗号化をもってしても、弱いパスワードはネットワーク全体を危険にさらす可能性があります。

強力な Wi-Fi パスワードの実装

この最終ステップでは、WPA/WPA2 ハンドシェイククラッキングのリスクを軽減するために、強力な Wi-Fi パスワードを実装するためのベストプラクティスを学び、理解します。前のステップで実証されたように、弱いパスワードはこれらの攻撃を成功させる主な脆弱性です。

Wi-Fi ネットワークを効果的に保護するために、強力なパスワードを作成するための以下のガイドラインを検討してください。

  1. 長さ: 少なくとも 12〜16 文字のパスワードを目指してください。パスワードが長いほど、クラッキングに必要な時間と計算リソースが大幅に増加します。
  2. 複雑性: 大文字、小文字、数字、特殊文字(例:!@#$%^&*)を組み合わせて使用してください。これにより、辞書攻撃やブルートフォース攻撃がはるかに困難になります。
  3. ユニーク性: 異なるサービスやネットワークでパスワードを再利用しないでください。1 つのパスワードが侵害されても、他のパスワードは安全なままです。
  4. 一般的な単語/フレーズの回避: 辞書にある単語、一般的なフレーズ、個人情報(誕生日、名前など)、または連続した数字(例:12345678)を使用しないでください。これらは辞書攻撃の最初の標的となります。
  5. パスフレーズ: パスフレーズ(関連性のない単語のシーケンス)の使用を検討してください。例えば、CorrectHorseBatteryStapleは、P@$$w0rd!よりもはるかに強力で覚えやすいです。
  6. 定期的な変更: 非常に強力なパスワードには厳密には必要ありませんが、Wi-Fi パスワードを定期的に(例:年に一度)変更することで、セキュリティの層をさらに強化できます。

これらの推奨事項に従うことで、Wi-Fi ネットワークのセキュリティを大幅に向上させ、攻撃者がハンドシェイクをキャプチャできたとしても、WPA/WPA2 パスワードをクラックすることを極めて困難にすることができます。

まとめ

この実験では、Wi-Fi WPA/WPA2セキュリティに関する実践的な経験と理論的な知識を得ました。WPA/WPA2ハンドシェイクのキャプチャ(概念的)、John the Ripper に適した形式への変換、そして辞書攻撃によるパスワードクラッキングのための John the Ripper の使用プロセスを学びました。さらに、これらの攻撃を可能にする根本的なセキュリティ上の欠陥を探求し、最も重要なこととして、ネットワークをそのような脆弱性から保護するために、強力で複雑でユニークな Wi-Fi パスワードを実装することの極めて重要な重要性を理解しました。この知識は、攻撃的なセキュリティの理解と防御的なネットワーク保護の両方にとって不可欠です。