wpapcap2john の使い方ガイド 📡🔑

セキュリティツール

John the Ripper で WPA/WPA2 パスワードを解析するための準備

この記事では、John the Ripper スイートに含まれるユーティリティツール wpapcap2john の使い方を詳しく解説します。Wi-Fi セキュリティのテストやパスワード強度評価に興味がある方は必見です!💪

wpapcap2john は、オープンソースのパスワードクラッキングツールである John the Ripper (JtR) スイートに含まれているPerlスクリプトです。 その主な目的は、WPA (Wi-Fi Protected Access) および WPA2 プロトコルで保護されたワイヤレスネットワークの認証プロセス(特に4ウェイハンドシェイク)を含むネットワークキャプチャファイル(通常は .pcap または .cap 形式)を、John the Ripper が解析できるハッシュ形式に変換することです。

簡単に言うと、Wi-Fi の通信データからパスワード解析に必要な部分を抽出し、JtR が「読める」形に整えるためのツールです。これにより、キャプチャしたデータを使って、ネットワークのパスワード(事前共有鍵 – PSK)の強度をテストすることが可能になります。

このツールは、ペネトレーションテスト担当者やセキュリティ研究者が、管理下にあるネットワークのセキュリティ耐性を評価するために使用されます。

インストールと場所 💻

wpapcap2john は通常、John the Ripper 本体と一緒に配布されています。Kali Linux などのペネトレーションテスト用ディストリビューションでは、John the Ripper がプリインストールされていることが多く、wpapcap2john も含まれています。

一般的なインストール場所は以下の通りです(環境によって異なります):

  • パッケージマネージャーでインストールした場合: /usr/sbin//usr/bin/、あるいは John the Ripper の共有ディレクトリ (例: /usr/share/john/) 内。
  • ソースからコンパイルした場合: John the Ripper のソースディレクトリ内の run ディレクトリ (例: /path/to/john/run/)。

見つからない場合は、システム内で wpapcap2john を検索してみてください。

find / -name wpapcap2john 2>/dev/null

John the Ripper をまだインストールしていない場合は、公式サイトからダウンロードしてインストールしてください。Jumbo バージョンには多くの追加ツールが含まれており、wpapcap2john もその一つです。

基本的な使い方 🚀

wpapcap2john の基本的なコマンド構文は非常にシンプルです。

wpapcap2john [オプション] <キャプチャファイル.pcap> > <出力ハッシュファイル>

各部分の説明:

  • wpapcap2john: 実行するコマンド(スクリプト)。
  • [オプション]: 必要に応じて指定するオプション(後述)。
  • <キャプチャファイル.pcap>: 処理対象のネットワークキャプチャファイル(.pcap, .cap など)。
  • >: 標準出力をリダイレクトする記号。
  • <出力ハッシュファイル>: 変換されたハッシュを保存するファイル名(任意)。

例えば、myhandshake.cap というキャプチャファイルからハッシュを抽出し、wifi_hash.txt というファイルに保存する場合は、次のように実行します。

wpapcap2john myhandshake.cap > wifi_hash.txt

複数のキャプチャファイルを一度に処理することも可能です。

wpapcap2john capture1.pcap capture2.cap > combined_hashes.txt
💡 ポイント: 出力ファイル名を指定しない場合、ハッシュは標準出力(通常はターミナル画面)に表示されます。解析に使うためにはファイルに保存するのが一般的です。

キャプチャファイルの要件: 4ウェイハンドシェイク 🤝

wpapcap2john が正しく動作するためには、入力するキャプチャファイルに特定の情報、すなわち完全なWPA/WPA2の4ウェイハンドシェイクが含まれている必要があります。

4ウェイハンドシェイクとは?

4ウェイハンドシェイクは、WPA/WPA2で保護されたWi-Fiネットワークにクライアント(スマートフォンやPCなど)が接続する際に行われる、4つのステップからなる認証プロセスです。このプロセスを通じて、クライアントとアクセスポイント(AP)は互いを認証し、その後の通信を暗号化するための鍵(PTK: Pairwise Transient Key)を安全に生成・共有します。

  1. Message 1 (AP -> Client): APがANonce (AP Nonce) をクライアントに送信。
  2. Message 2 (Client -> AP): クライアントがSNonce (Supplicant Nonce) とMIC (Message Integrity Code) をAPに送信。
  3. Message 3 (AP -> Client): APがGTK (Group Temporal Key) とMICをクライアントに送信。
  4. Message 4 (Client -> AP): クライアントが確認応答をAPに送信。

wpapcap2john は、これらのメッセージ(特にMessage 1から4、または最低限 Message 1, 2, 4)をキャプチャファイルから見つけ出し、パスワードのハッシュを生成するために必要な情報(SSID、ANonce、SNonce、MACアドレスなど)を抽出します。

ハンドシェイクの取得方法

4ウェイハンドシェイクは、クライアントがネットワークに接続する瞬間に発生します。したがって、キャプチャを行う際には、ターゲットネットワークに接続しようとしているクライアントが存在する必要があります。

既に接続済みのクライアントがいる場合は、Aircrack-ng スイートの aireplay-ng などのツールを使って、クライアントに一時的に切断させ(Deauthentication攻撃)、再接続を促すことでハンドシェイクをキャプチャできます。ただし、これは許可されたネットワークでのみ行うべきです。

キャプチャには、airodump-ng (Aircrack-ng) や tcpdump, Wireshark などのツールが使用されます。airodump-ng はハンドシェイクをキャプチャすると、画面右上に “WPA handshake: [BSSID]” のように表示されるため、確認が容易です。

# 例: airodump-ng を使ったキャプチャ (チャネル1、APのBSSIDを指定)
# wlan0mon はモニターモードのインターフェース名
airodump-ng --bssid AA:BB:CC:DD:EE:FF -c 1 -w capture_file wlan0mon
⚠️ 注意: キャプチャファイルに完全なハンドシェイクが含まれていない場合、wpapcap2john はハッシュを生成できず、”No supported AP found” のようなエラーメッセージを表示することがあります。

オプションについて ⚙️

wpapcap2john には、いくつかの便利なオプションがあります。wpapcap2john -h または --help で確認できますが、主なものを紹介します。

オプション 説明
-h, --help ヘルプメッセージを表示して終了します。
-c 完全な認証(4ウェイハンドシェイク)のみを表示します。不完全なハンドシェイク(例えば、誤ったパスワード試行など)を除外したい場合に役立ちます。
-e <ESSID> キャプチャファイルからESSID(ネットワーク名)を特定できない場合に、手動で指定します。ビーコンフレームがキャプチャに含まれていない場合などに使用されることがあります。
-b <BSSID> キャプチャファイルからBSSID(APのMACアドレス)を特定できない場合に、手動で指定します。
-v 詳細度を上げます。複数回指定することで、より詳細なデバッグ情報を表示できます(例: -vvv)。問題のトラブルシューティングに役立ちます。

通常はオプションなしで実行し、問題が発生した場合や特定の情報が不足している場合にこれらのオプションを利用します。

出力フォーマット 📄

wpapcap2john が成功すると、John the Ripper が解釈できる形式のハッシュ文字列が出力されます。一般的な形式は以下のようになります。

SSID:$WPAPSK$SSID#HEX_DATA

具体的な例:

MyWifiNetwork:$WPAPSK$MyWifiNetwork#010300...[長い16進数データ]...ac47

この文字列には、パスワード解析に必要な以下の情報が含まれています。

  • SSID: ネットワークの名前(例: MyWifiNetwork)。$WPAPSK$ の前後両方に含まれます。
  • $WPAPSK$: ハッシュの種類を示す識別子。
  • #HEX_DATA: 4ウェイハンドシェイクから抽出されたデータ(ANonce, SNonce, MACアドレスなど)を16進数でエンコードしたもの。

John the Ripper はこのハッシュ文字列を読み込み、--format=wpapsk または --format=wpapsk-opencl (GPU使用時) などのフォーマット指定子を使って、指定されたワードリストやルールに基づきパスワードのクラッキングを試みます。

実践!ステップ・バイ・ステップ ✨

ここでは、実際に wpapcap2john を使ってハッシュを抽出し、John the Ripper で解析するまでの流れをステップごとに見ていきましょう。

ステップ 1: 4ウェイハンドシェイクのキャプチャ

まず、ターゲットネットワークの4ウェイハンドシェイクを含む .pcap ファイルが必要です。ここでは、airodump-ng を使ってキャプチャし、handshake-01.cap というファイルが生成されたと仮定します。(実際のキャプチャ手順はここでは省略します)

📌 注意: このプロセスは、自身が管理するネットワーク、または明確な許可を得たネットワークに対してのみ行ってください。

ステップ 2: wpapcap2john でハッシュを抽出

次に、wpapcap2john を使ってキャプチャファイルからハッシュを抽出し、wifi_hash.txt ファイルに保存します。

wpapcap2john handshake-01.cap > wifi_hash.txt

成功すれば、wifi_hash.txt ファイルに以下のようなハッシュ文字列が書き込まれます(SSIDやデータは実際のキャプチャ内容によって異なります)。

TargetNetwork:$WPAPSK$TargetNetwork#010300...[hex data]...

ステップ 3: John the Ripper で解析

最後に、John the Ripper を使って、生成されたハッシュファイル (wifi_hash.txt) とパスワードリスト (例: rockyou.txt) を用いてパスワード解析を試みます。

john --wordlist=/path/to/rockyou.txt wifi_hash.txt

GPU を使って高速化する場合は、OpenCL 対応フォーマットを指定します。

john --wordlist=/path/to/rockyou.txt --format=wpapsk-opencl wifi_hash.txt

John the Ripper は、ワードリスト内の単語を順番に試行し、ハッシュと一致するパスワードが見つかればそれを表示します。解析には時間がかかる場合があります ⏳。

解析結果を確認するには、--show オプションを使用します。

john --show wifi_hash.txt

もしパスワードが見つかっていれば、ハッシュ文字列の後ろにコロン区切りで表示されます。

TargetNetwork:$WPAPSK$TargetNetwork#...[hex data]...:FoundPassword

トラブルシューティングとよくある問題 🛠️

wpapcap2john を使用する際に遭遇する可能性のある一般的な問題とその対処法です。

  • エラー: “No supported AP found in file(s)”
    • 原因: キャプチャファイルに、認識可能な4ウェイハンドシェイクが含まれていない、または不完全である可能性があります。あるいは、キャプチャファイル形式がサポートされていない (例: 破損している) 場合もあります。
    • 対処法:
      • 再度ハンドシェイクのキャプチャを試みます。クライアントがAPに接続する瞬間を確実に捉えるようにしてください。airodump-ng の表示でハンドシェイクが取得できたか確認しましょう。
      • Wireshark などのツールで .pcap ファイルを開き、EAPOL (Extensible Authentication Protocol over LAN) パケットが存在し、4ウェイハンドシェイクのシーケンス(特にMessage 1, 2, 4)が確認できるか見てみましょう。
      • キャプチャファイルの形式 (例: pcapng vs pcap) が原因である可能性も稀にあります。ツールによっては古い pcap 形式のみをサポートする場合があるので、変換を試みることも有効かもしれません。
      • キャプチャファイルにビーコンフレームが含まれていない場合、-e <ESSID>-b <BSSID> オプションで手動指定を試してみてください。
  • 出力が空、または期待したハッシュが出力されない
    • 原因: 上記と同様に、有効なハンドシェイクが存在しない可能性があります。また、使用している wpapcap2john のバージョンが古い、または特定のキャプチャ形式に対応していない可能性も考えられます。
    • 対処法:
      • John the Ripper を最新の Jumbo バージョンにアップデートしてみてください。
      • 詳細オプション -v をつけて実行し、デバッグ情報を確認します。何が問題かのヒントが得られる場合があります。
  • Perl スクリプトのエラー
    • 原因: Perl の実行環境に問題があるか、スクリプト自体に何らかの問題(権限など)がある可能性があります。
    • 対処法:
      • Perl が正しくインストールされているか確認します。
      • wpapcap2john スクリプトに実行権限が付与されているか確認します (chmod +x wpapcap2john)。
      • John the Ripper を再インストールまたはソースから再コンパイルしてみます。

問題が解決しない場合は、John the Ripper の GitHub Issues や関連コミュニティで情報を探したり、質問してみるのも良いでしょう。

セキュリティ上の考慮事項と倫理的利用 🛡️

wpapcap2john および John the Ripper は、強力なパスワード回復・監査ツールですが、その能力ゆえに悪用される危険性も伴います。以下の点を必ず守ってください。

🚨 重要: 倫理的な利用

  • 許可なきアクセスは禁止: これらのツールは、自身が所有または管理するネットワーク、あるいは明確な書面による許可を得たネットワークに対してのみ使用してください。
  • 法律の遵守: 他者のネットワークに対して許可なくこれらのツールを使用することは、多くの国や地域で法律違反(不正アクセス禁止法など)となり、重大な罰則の対象となります。
  • 目的の明確化: セキュリティ評価やパスワード強度の監査、教育目的など、正当な理由でのみ使用してください。

ツールの技術的な側面を学ぶことは重要ですが、それ以上に倫理的な責任を理解し、法律を遵守することが不可欠です。

WPA/WPA2 のセキュリティはパスワードの強度に大きく依存します。このツールを使って自身のネットワークのパスワードが容易に推測可能であることが判明した場合、より長く複雑なパスワードに変更し、可能であれば WPA3 などのより新しいセキュリティプロトコルへの移行を検討してください。

まとめ 🏁

wpapcap2john は、キャプチャされた WPA/WPA2 のハンドシェイクデータを John the Ripper で解析可能なハッシュ形式に変換するための重要なユーティリティです。

  • 正しい4ウェイハンドシェイクを含むキャプチャファイルが必要です。
  • 基本的な使い方は wpapcap2john <capture.pcap> > <output.hash> です。
  • 出力されたハッシュは John the Ripper でパスワード解析に使用できます。
  • ツールの使用は、許可されたネットワークに対してのみ、倫理的に行う必要があります。

このツールを正しく理解し活用することで、Wi-Fi ネットワークのセキュリティ強度を評価し、必要な対策を講じるための一助となります。安全なネットワーク環境の維持に役立ててくださいね!😊

参考情報

コメント

タイトルとURLをコピーしました