はじめに 👋
John the Ripper (JtR) は、強力なオープンソースのパスワードクラッキングツールとして広く知られています。様々なハッシュ形式に対応しており、システム管理者やセキュリティ専門家がパスワードの強度をテストするために利用しています。
Wi-Fi のセキュリティを評価する際、特に WPA/WPA2-PSK のパスワード強度をテストする場面があります。このプロセスでは、Wi-Fi ネットワーク上で交わされる認証ハンドシェイク(通常、4-way ハンドシェイク)をキャプチャする必要があります。キャプチャされたデータは、.pcap
や .cap
といった形式で保存されることが一般的です。
しかし、John the Ripper はこれらの生キャプチャファイルを直接扱うことができません。そこで登場するのが hccap2john
というユーティリティです。このツールは、主に Hashcat という別のパスワード回復ツールで使われる .hccap
または .hccapx
形式のファイルを、John the Ripper が解析可能な形式に変換する役割を担います。
この記事では、hccap2john
の基本的な使い方、関連するファイル形式、具体的な使用例、そして John the Ripper との連携方法について、詳しく解説していきます。 Wi-Fi セキュリティテストの効率化に役立てていただければ幸いです。😊
hccap2john とは?
hccap2john
は、John the Ripper スイートに含まれるユーティリティの一つです。その主な機能は、Hashcat で使用される WPA/WPA2 ハンドシェイクのキャプチャファイル形式である .hccap
や、より新しい形式である .hccapx
を、John the Ripper がネイティブで解析できるフォーマットに変換することです。
John the Ripper 自体にも、.pcap
ファイルから直接ハッシュを抽出する wpapcap2john
というツールが存在しますが、hccap2john
は Hashcat エコシステムとの連携や、既に .hccapx
形式で保存されているファイルを利用したい場合に特に役立ちます。
入手方法と場所
hccap2john
は通常、John the Ripper の “Jumbo” バージョン (コミュニティ強化版) に同梱されています。Kali Linux などのペネトレーションテスト用ディストリビューションを使用している場合、John the Ripper はプリインストールされていることが多く、hccap2john
も /usr/sbin/hccap2john
や /usr/share/john/
などのパスに含まれていることが一般的です。
もし個別に John the Ripper をソースからビルドした場合は、そのビルドディレクトリ内の run
ディレクトリなどに実行ファイルが生成されます。最新版は Openwall の John the Ripper GitHub リポジトリから入手できます。
💡 補足: Python スクリプト版の hccapx2john.py
も存在し、機能的には C 言語で書かれた hccap2john
と同様に .hccapx
ファイルを処理できます。
ファイル形式について理解する 📁
hccap2john
を使う上で、関連するファイル形式を理解しておくことが重要です。
入力ファイル形式
- .pcap / .cap
-
パケットキャプチャの標準的な形式です。Wireshark, tcpdump, airodump-ng などのツールで生成されます。WPA/WPA2 の 4-way ハンドシェイクや PMKID を含むネットワークトラフィックが記録されています。
注意点として、
hccap2john
はこれらのファイルを直接は処理しません。通常、aircrack-ng
スイートのツールやhcxpcaptool
などを使って、まず.hccapx
形式に変換する必要があります。 - .hccap
-
Hashcat で導入された古い形式のハンドシェイクファイルです。4-way ハンドシェイクの情報を格納しますが、現代のネットワーク環境では限界があり、
.hccapx
形式に取って代わられつつあります。hccap2john
はこの形式もサポートしています。 - .hccapx
-
.hccap
の後継となる、より堅牢な形式です。WPA/WPA2 のハンドシェイク情報に加え、PMKID (Pairwise Master Key Identifier) を利用した攻撃にも対応しています。PMKID 攻撃は、クライアントがネットワークに接続していなくても、アクセスポイントとの最初のメッセージ交換だけでハッシュを取得できる場合があるため、効率的な攻撃手法とされています (2018年に hashcat により導入)。hccap2john
の主なターゲットはこの形式です。.pcap
ファイルから.hccapx
への変換には、hcxpcaptool
(hcxtools パッケージの一部) や、過去にはcap2hccapx
(現在は非推奨とされることが多い) が使われていました。# hcxpcaptool を使った変換例 (-o で出力ファイル指定) hcxpcaptool -o output.hccapx input.pcap
出力ファイル形式 (John the Ripper 形式)
hccap2john
は、入力された .hccap
または .hccapx
ファイルを処理し、John the Ripper が解読可能なテキストベースのハッシュ形式で標準出力に出力します。この出力は通常、ファイルにリダイレクトして保存します。
出力形式の例 (WPA-PSK, wpapsk フォーマット):
[ESSID]$WPAPSK$[ESSID]#HEX_HASH_DATA
具体的には、以下のような形式になります(一部を省略・改変しています)。
MyWiFiNetwork:$WPAPSK$MyWiFiNetwork#010203...[長い16進文字列]...0a0b0c
この形式には、ターゲットとなる Wi-Fi ネットワークの ESSID (ネットワーク名) と、ハンドシェイクから抽出されたハッシュ関連データが含まれています。John the Ripper はこの情報を基にパスワードクラッキングを試みます。
hccap2john の基本的な使い方 ⚙️
hccap2john
の使い方は非常にシンプルです。基本的には、入力となる .hccap
または .hccapx
ファイルを引数として指定します。変換結果は標準出力に出力されるため、>
を使ってファイルに保存するのが一般的です。
コマンド構文
hccap2john [入力ファイル1.hccapx] [入力ファイル2.hccap] ... > [出力ファイル名.txt]
[入力ファイル.hccapx / .hccap]
: 変換したい Hashcat 形式のファイルを指定します。複数指定することも可能です。> [出力ファイル名.txt]
: John the Ripper 形式に変換されたハッシュ情報を保存するファイル名を指定します。
具体的な使用例
例1: 単一の .hccapx
ファイルを変換する
hccap2john my_handshake.hccapx > john_crackme.txt
このコマンドは、my_handshake.hccapx
ファイルを読み込み、John the Ripper 形式に変換した結果を john_crackme.txt
という名前のファイルに保存します。
例2: 複数のファイルをまとめて変換する
hccap2john capture1.hccapx capture2.hccap > combined_hashes.txt
このコマンドは、capture1.hccapx
と capture2.hccap
の両方を処理し、変換結果を combined_hashes.txt
ファイルに追記または上書きして保存します。
オプションについて
hccap2john
は非常にシンプルなツールであり、通常、特別なコマンドラインオプションは必要ありません。主な機能はファイル形式の変換に特化しています。ヘルプオプション (-h
や --help
など) も提供されていない場合が多いです。基本的な使用方法は上記の通り、入力ファイルを指定し、出力をリダイレクトすることです。
John the Ripper との連携 🤝
hccap2john
で変換したファイルは、John the Ripper でパスワードクラッキングを行うための準備が整った状態です。次に、John the Ripper を使って実際に解析を行います。
John the Ripper の実行
変換して得られたハッシュファイル (john_crackme.txt
など) を使って、John the Ripper を実行します。WPA/WPA2-PSK のクラッキングには、適切なフォーマットを指定する必要があります。
john --format=wpapsk --wordlist=/path/to/wordlist.txt john_crackme.txt
--format=wpapsk
: John the Ripper に対して、入力ファイルが WPA-PSK のハッシュ形式であることを明示的に伝えます。CPU を使用したクラッキングに適しています。--wordlist=/path/to/wordlist.txt
: 辞書攻撃を行う場合に、使用するワードリストファイルのパスを指定します。John the Ripper にはデフォルトのワードリスト (password.lst
) が付属していることが多いですが、より強力なリスト (rockyou.txt
など) を指定することも可能です。john_crackme.txt
:hccap2john
で生成したハッシュファイルです。
GPU を使用してクラッキングを高速化したい場合は、OpenCL 対応のフォーマットを指定します。
john --format=wpapsk-opencl --wordlist=/path/to/wordlist.txt john_crackme.txt
--format=wpapsk-opencl
は、対応する GPU や CPU を使って OpenCL による高速な計算を行います。
John the Ripper は、指定されたワードリストやルールに基づいてパスワードの候補を生成し、ハッシュ値と比較していきます。一致するパスワードが見つかると、画面に表示され、john.pot
ファイルに記録されます。
クラック結果の確認
クラッキングが完了した後、または途中で見つかったパスワードを確認するには、--show
オプションを使用します。
john --show john_crackme.txt
このコマンドは、john_crackme.txt
に含まれるハッシュのうち、既にクラックされたパスワードを表示します。
🎉 成功! パスワードが見つかれば、このように表示されます (例):
MyWiFiNetwork:SecretPassword123:::::/path/to/john_crackme.txt
この例では、ESSID “MyWiFiNetwork” のパスワードが “SecretPassword123” であることが判明しました。
トラブルシューティングと注意点 🤔
hccap2john
や関連ツールを使用する際には、いくつかの一般的な問題や注意点があります。
問題: .pcap ファイルから .hccapx への変換ができない
- 原因1: ハンドシェイクが不完全: キャプチャした
.pcap
ファイルに、完全な 4-way ハンドシェイクが含まれていない可能性があります。クライアントが接続する瞬間を捉えられていない、またはパケットロスが発生している場合などです。 - 対策1: 再度キャプチャを試みます。クライアントの接続を促すために、
aireplay-ng
などで一時的に Deauthentication パケットを送信する方法もありますが、ネットワークへの影響に注意が必要です。 - 原因2: ESSID 情報の欠落:
.pcap
ファイル内に、対象ネットワークの ESSID (ネットワーク名) を含むビーコンフレームなどが記録されていない場合、変換ツールが失敗することがあります。これは、フィルタリングしすぎた場合や、キャプチャ開始タイミングの問題で起こりえます。 - 対策2: より広い範囲でキャプチャを行うか、変換ツールによっては ESSID を手動で指定するオプションがあるか確認します (
hcxpcaptool
など)。 - 原因3: ファイル形式の問題: 非常に古い形式の
.pcap
や、破損したファイルである可能性も考えられます。 - 対策3: Wireshark などのツールでファイルを開き、内容を確認します。
問題: hccap2john がハッシュを出力しない
- 原因: 入力された
.hccap
または.hccapx
ファイルが空である、破損している、または有効なハンドシェイク情報を含んでいない可能性があります。 - 対策: 元の
.pcap
ファイルのキャプチャプロセスや、.hccapx
への変換プロセスを見直します。変換ツール (hcxpcaptool
など) の出力メッセージを確認し、エラーや警告がないか確認します。
注意点: PMKID 攻撃について
.hccapx
形式は PMKID を利用した攻撃にも対応しています。これはクライアントの接続を待たずにアクセスポイントから直接情報を取得できる可能性がある攻撃です。ただし、全てのアクセスポイントが PMKID を提供するわけではありません。PMKID が取得できた場合、hccap2john
はそれを John the Ripper 形式に変換します。John the Ripper でのクラッキング手順は基本的に同じ (--format=wpapsk
などを使用) です。
注意点: 倫理的な使用
繰り返しになりますが、これらのツールは強力であり、悪用される可能性があります。必ず法律と倫理を遵守し、許可された環境でのみ使用してください。不正な目的での使用は法的な責任を問われる可能性があります。
まとめ ✨
hccap2john
は、Hashcat 形式 (.hccap
, .hccapx
) の Wi-Fi ハンドシェイクファイルを John the Ripper で解析可能な形式に変換するための、シンプルかつ重要なユーティリティです。
以下の点を押さえておきましょう:
hccap2john
は JtR Jumbo に含まれるツール。- 入力は
.hccap
または.hccapx
ファイル。 - 出力は John the Ripper 用のテキスト形式ハッシュ (通常ファイルにリダイレクト)。
- 使用法は
hccap2john input.hccapx > output.txt
のようにシンプル。 - 変換後のファイルは
john --format=wpapsk ...
でクラッキング可能。 .pcap
から.hccapx
への変換にはhcxpcaptool
などが別途必要。- ツールの使用は、許可された範囲で倫理的に行うこと。
hccap2john
を活用することで、Hashcat と John the Ripper という二つの強力なツール間でのデータ連携が可能になり、Wi-Fi セキュリティ評価の幅が広がります。適切な知識と倫理観を持って、これらのツールを効果的に利用しましょう。🚀
参考情報
-
John the Ripper official website: https://www.openwall.com/john/
John the Ripper の公式サイト。ダウンロードやドキュメントへのリンクがあります。
-
John the Ripper Community Wiki – Cracking WPA-PSK: https://openwall.info/wiki/john/WPA-PSK
John the Ripper Wiki の WPA-PSK クラッキングに関するページ。
hccap2john
の基本的な使用例も記載されています。 -
Hashcat official website: https://hashcat.net/hashcat/
Hashcat の公式サイト。
.hccapx
形式に関する情報もあります。 -
hcxtools GitHub Repository: https://github.com/ZerBea/hcxtools
hcxpcaptool
などが含まれる hcxtools のリポジトリ。
コメント