
徒歩でのWi-Fiセキュリティチェックをループで実行し、証拠レポートを出力するBashツール。(再発明されたWi-Fi WarDriving)
CyclePatrolは1つのBashスクリプト、cp.shです。ターミナル向けのWi-Fiセキュリティ評価ツールです。
LinuxとAndroid(Kali NetHunter)で動作します。rootが必要です。
このツールはループで動作します。各ラウンドで以下を実行します:
許可された使用のみ。 CyclePatrolはアクティブな無線攻撃を実行します。 所有しているネットワーク、または書面によるテスト許可を得たネットワークでのみ使用してください。
このドキュメントはソースコードから書かれています。ネットワークへの攻撃方法を教えるものではありません。 ツールがどのように構築され、データがどのように流れ、セキュリティロジックがどこにあるかを説明します。
| 項目 | 値 | ソース |
|---|---|---|
| ツール名 | CyclePatrol | TOOL_NAME |
| バージョン | 1.6 | VERSION |
| SAR / レポートバージョン | 1 / 5 | SAR_VERSION / REPORT_VERSION |
| 言語 | Bash 5+ | スクリプトヘッダー |
| 権限 | root必須 | run_precheck |
| デフォルトインターフェース | wlan2 | DEF_IFACE |
| デフォルトログディレクトリ | /sdcard/Download/wifi | DEF_LOG_DIR |
| 追跡ファイル | cp.sh、vendor/oui.json、vendor/vendors.json、README.md、LICENSE、docs/ | リポジトリルート |
| 設定 | 環境変数 + CLIフラグのみ | main |
# 1. get the code
git clone https://github.com/buybitart/cyclepatrol
cd cyclepatrol
# 2. make it runnable
chmod +x cp.sh
# 3. start (root required)
sudo ./cp.sh
ヘルプとオプションの全リスト:
./cp.sh --help
flowchart TD
M[main parse CLI] --> AI[auto_install_deps apt]
AI --> PC[run_precheck validate_env root iface tmp dirs allowlists]
PC --> RC{recon mode?}
RC -- "--recon" --> RE[run_recon airodump-ng] --> RPT1[report_recon_*.html] --> END1[exit]
RC -- default --> R0[run_recon once at start]
R0 --> LOOP[run_scan_loop]
LOOP --> MAC[stealth MAC rotate]
MAC --> SCAN[scan_band 2.4 / 5 / 6E via iw scan]
SCAN --> PARSE[parse_scan awk -> targets]
PARSE --> PT[process_target per AP, up to MAX_TARGETS]
PT --> REP[make_report report_*.html]
REP --> SLEEP[sleep COOLDOWN] --> LOOP
詳細は docs/architecture.md と docs/data-flow.md を参照してください。
| コンポーネント | 機能(例) | 役割 |
|---|---|---|
| 起動 / 設定 | main, validate_env, run_precheck, auto_install_deps | フラグの解析、root + インターフェース + ツールの確認、一時ディレクトリの作成 |
| インターフェース制御 | ensure_mode, iface_set_type, iface_set_channel, iface_do_scan | モニタ/マネージドモード、チャネル、iw スキャン |
| ステルス | stealth_mac_rotate, stealth_gen_mac, stealth_wps_id_block | ランダム MAC、ランダム WPS UUID |
| スキャン + 解析 | scan_band, parse_scan | iw scan の出力を収集し、ビーコンをフィールドに解析 |
| エンリッチメント | get_chip, get_cves, detect_dpp_vulns, ベンダー KB 検索 | OUI → ベンダー → チップセット、CVE ヒント、DPP チェック |
| スコープゲート | active_attack_permitted, allowlist_init_active | アクティブモジュールを BSSID に対して実行してよいか判断 |
| 評価モジュール | attack_pixie, attack_vendor, attack_pmkid, attack_deauth_handshake, attack_wpa_psk_brute, attack_wpa_enterprise_eviltwin | 無線テスト(外部ツールをラップ) |
| オフラインクラック | offline_crack, _hashcat_22000, _aircrack_cap | キャプチャした PMKID / ハンドシェイクをクラック |
| 証拠 + 出力 | sar_store_record, save_proof, make_report, recon_report | JSONL ファクト、証拠ファイル、HTML レポート |
| 位置情報 | location_fix, location_nmea_feeder | ワードライビング用の GPS タグ付け(Android / gpsd) |
完全な関数マップ: docs/project-structure.md。
CyclePatrol はオーケストレーターです。標準的な Linux 無線ツールをサブプロセスとして呼び出します。
| ツール | 使用元 | 目的 |
|---|---|---|
iw, ip, nmcli, macchanger | インターフェース + ステルス | スキャン、モード、チャネル、MAC |
reaver | attack_pixie, attack_vendor, attack_null, attack_empty, attack_user_pin | WPS レジストラ交換 |
pixiewps | attack_pixie | WPS オフライン PIN 復元 |
wpa_supplicant, wpa_cli, wpa_passphrase | WPS, verify_psk_live, attack_wpa_psk_brute | アソシエーション、ライブキー確認 |
hcxdumptool, hcxpcapngtool | attack_pmkid, attack_pmkid_active | PMKID キャプチャ → hashcat 22000 |
tcpdump | eapol_passive_capture | パッシブ EAPOL キャプチャ |
airodump-ng, aireplay-ng, mdk4 | attack_deauth_handshake, run_recon | キャプチャ、deauth、偵察 |
hashcat, aircrack-ng | offline_crack | キャプチャのオフラインクラック |
eaphammer, hostapd-wpe | attack_wpa_enterprise_eviltwin | 802.1X evil-twin 認証情報キャプチャ |
dragondrain, dragontime | sae_dos_dragondrain, sae_timing_dragontime | WPA3 / SAE チェック。関数は定義されているが呼び出されない(デッドコード)、docs/security.md を参照 |
tshark, airgraph-ng | recon_report | 稼働時間の解析、グラフ |
gpsd, termux-location, gpspipe | 位置情報 | GPS フィックス / タグ付け |
jq | ベンダー KB | JSON 検索(オプション) |
モジュールの詳細とゲーティング: docs/modules.md。
すべては LOG_DIR(デフォルト /sdcard/Download/wifi)の下に書き込まれます。
ディレクトリは chmod 700 で作成されます。出力ファイルは chmod 600 を使用します。
| パス | 内容 |
|---|---|
sar.jsonl | AP ごとのファクト、1 行につき 1 つの JSON オブジェクト |
cp_audit.log | 監査ログ: AP、手法、結果 |
report_*.html | 評価レポート(検出事項、重大度、証拠) |
report_recon_*.html | パッシブ偵察調査レポート |
proof/proof_*.conf | 確認された検出事項の証拠: PIN、PSK、SHA-256、ライブ検証 |
proof/proofs.jsonl | 証拠保全マニフェスト: 証拠ファイルごとに 1 行、その SHA-256 付き |
proof/handshake_*.cap | キャプチャした 4-way ハンドシェイク |
proof/pmkid_*.22000 | hashcat 22000 形式の PMKID |
known_bssids.txt, processed_bssids.txt | 状態(処理済みをスキップ) |
レポートの重大度は Critical / High / Medium / Low / Info です。検出結果が Critical となるのは、
鍵が実際に復元され、その証明ファイルが存在する場合のみです。レポートは、証明に裏付けられた検出結果を表示する
シンプルビューで開きます。テクニカルビューの切り替えにより、ポスチャ検出結果、
証拠テーブル、および診断ログが追加されます。ポスチャ検出結果(Medium / Low / Info)には、
その評価を裏付ける測定済みのビーコン事実が付随します。フィールドスキーマとレポートモデルは
docs/outputs.md にあります。
| ファイル | 内容 |
|---|---|
docs/architecture.md | コンポーネント、制御フロー、信頼境界、図 |
docs/data-flow.md | スキャン → パース → 処理 → レポート、フィールドパイプライン、スコープフロー |
docs/modules.md | すべての評価モジュール、それがラップするツール、およびそのスコープゲート |
docs/configuration.md | すべての環境変数と CLI フラグ |
docs/outputs.md | sar.jsonl スキーマ、証明ファイル、レポートモデル |
docs/security.md | スコープモデル、デフォルトのポスチャ、ディスク上のシークレット、確認済みの観測結果 |
docs/attack-surface.md | エントリポイント、外部依存関係マップ、ランタイム図、該当しない項目 |
docs/setup-and-testing.md | 要件、インストール、実行、検証コマンド |
docs/project-structure.md | ファイルと完全な関数マップ |
Aliaksandr Zasinets (BITART)。
MIT。LICENSE を参照してください。 Copyright (c) 2026 Aliaksandr Zasinets。