
Ferramenta Bash para verificações de segurança Wi-Fi a pé em loop, com relatórios de evidências. (WarDriving Wi-Fi reinventado)
CyclePatrol é um único script Bash, cp.sh. É uma ferramenta de avaliação de segurança Wi-Fi para o terminal.
Funciona em Linux e Android (Kali NetHunter). Requer root.
A ferramenta executa em loop. Em cada rodada ela:
Apenas para uso autorizado. O CyclePatrol executa ataques wireless ativos. Use-o apenas em redes que você possui ou tem permissão por escrito para testar.
Esta documentação foi escrita a partir do código-fonte. Ela não ensina como atacar redes. Ela explica como a ferramenta é construída, como os dados fluem e onde a lógica de segurança reside.
| Item | Valor | Origem |
|---|---|---|
| Nome da ferramenta | CyclePatrol | TOOL_NAME |
| Versão | 1.6 | VERSION |
| Versão do SAR / relatório | 1 / 5 | SAR_VERSION / REPORT_VERSION |
| Linguagem | Bash 5+ | cabeçalho do script |
| Privilégio | root necessário | run_precheck |
| Interface padrão | wlan2 | DEF_IFACE |
| Diretório de log padrão | /sdcard/Download/wifi | DEF_LOG_DIR |
| Arquivos rastreados | cp.sh, vendor/oui.json, vendor/vendors.json, README.md, LICENSE, docs/ | raiz do repositório |
| Configuração | apenas variáveis de ambiente + flags de 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
Ajuda e a lista completa de opções:
./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
Consulte docs/architecture.md e docs/data-flow.md para mais detalhes.
| Componente | Funções (exemplos) | Função |
|---|---|---|
| Inicialização / configuração | main, validate_env, run_precheck, auto_install_deps | analisar flags, verificar root + interface + ferramentas, criar diretórios temporários |
| Controle de interface | ensure_mode, iface_set_type, iface_set_channel, iface_do_scan | modo monitor/managed, canal, varredura iw |
| Furtividade | stealth_mac_rotate, stealth_gen_mac, stealth_wps_id_block | MAC aleatório, UUID WPS aleatório |
| Varredura + análise | scan_band, parse_scan | coletar saída de iw scan, analisar beacons em campos |
| Enriquecimento | get_chip, get_cves, detect_dpp_vulns, consultas à KB de fornecedores | OUI → fornecedor → chipset, dicas de CVE, verificações DPP |
| Controle de escopo | active_attack_permitted, allowlist_init_active | decidir se um módulo ativo pode ser executado em um BSSID |
| Módulos de avaliação | attack_pixie, attack_vendor, attack_pmkid, attack_deauth_handshake, attack_wpa_psk_brute, attack_wpa_enterprise_eviltwin | os testes sem fio (encapsulam ferramentas externas) |
| Quebra offline | offline_crack, _hashcat_22000, _aircrack_cap | quebrar PMKID / handshake capturados |
| Evidências + saída | sar_store_record, save_proof, make_report, recon_report | fatos JSONL, arquivos de prova, relatórios HTML |
| Localização | location_fix, location_nmea_feeder | marcação GPS para war-driving (Android / gpsd) |
Mapa completo de funções: docs/project-structure.md.
O CyclePatrol é um orquestrador. Ele chama ferramentas sem fio padrão do Linux como subprocessos.
| Ferramenta | Usada por | Finalidade |
|---|---|---|
iw, ip, nmcli, macchanger | interface + furtividade | varredura, modo, canal, MAC |
reaver | attack_pixie, attack_vendor, attack_null, attack_empty, attack_user_pin | troca com o registrar WPS |
pixiewps | attack_pixie | recuperação offline de PIN WPS |
wpa_supplicant, wpa_cli, wpa_passphrase | WPS, verify_psk_live, attack_wpa_psk_brute | associação, verificação de chave em tempo real |
hcxdumptool, hcxpcapngtool | attack_pmkid, attack_pmkid_active | captura de PMKID → hashcat 22000 |
tcpdump | eapol_passive_capture | captura passiva de EAPOL |
airodump-ng, aireplay-ng, mdk4 | attack_deauth_handshake, run_recon | captura, deauth, recon |
hashcat, aircrack-ng | offline_crack | quebra offline de capturas |
eaphammer, hostapd-wpe | attack_wpa_enterprise_eviltwin | captura de credenciais via evil-twin 802.1X |
dragondrain, dragontime | sae_dos_dragondrain, sae_timing_dragontime | verificações WPA3 / SAE. Funções definidas mas nunca chamadas (código morto), consulte docs/security.md |
tshark, airgraph-ng | recon_report | análise de uptime, gráficos |
gpsd, termux-location, gpspipe | localização | fixação / marcação GPS |
jq | KB de fornecedores | consulta JSON (opcional) |
Detalhes dos módulos e controle de execução: docs/modules.md.
Tudo é gravado em LOG_DIR (padrão /sdcard/Download/wifi).
O diretório é criado com chmod 700. Os arquivos de saída usam chmod 600.
| Caminho | O quê |
|---|---|
sar.jsonl | fatos por AP, um objeto JSON por linha |
cp_audit.log | log de auditoria: AP, método, resultado |
report_*.html | relatório de avaliação (descobertas, severidade, evidências) |
report_recon_*.html | relatório de levantamento de recon passivo |
proof/proof_*.conf | prova de uma descoberta confirmada: PIN, PSK, SHA-256, verificação em tempo real |
proof/proofs.jsonl | manifesto de cadeia de custódia: uma linha por arquivo de prova, com seu SHA-256 |
proof/handshake_*.cap | handshake de 4 vias capturado |
proof/pmkid_*.22000 | PMKID no formato hashcat 22000 |
known_bssids.txt, processed_bssids.txt | estado (pular os já processados) |