
CyclePatrol 是一个 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 | monitor/managed 模式、信道、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 | 为 war-driving 添加 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 邪恶双胞胎凭据捕获 |
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 的事实,每行一个 JSON 对象 |
cp_audit.log | 审计日志:AP、方法、结果 |
report_*.html | 评估报告(发现、严重性、证据) |
report_recon_*.html | 被动侦察调查报告 |
proof/proof_*.conf | 已确认发现的证据:PIN、PSK、SHA-256、实时验证 |
proof/proofs.jsonl | 证据链清单:每个证据文件一行,附带其 SHA-256 |
proof/handshake_*.cap | 捕获的 4 次握手 |
proof/pmkid_*.22000 | hashcat 22000 格式的 PMKID |
known_bssids.txt、processed_bssids.txt | 状态(跳过已完成的) |
报告严重级别为 Critical / High / Medium / Low / Info。只有当密钥被实际恢复且存在对应的证明文件时,该发现才被标记为 Critical。报告以 Simple view(简单视图)打开,显示有证明支撑的发现。Technical view(技术视图)开关会额外显示态势发现、证据表和诊断日志。态势发现(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。