
Strumento Bash per controlli di sicurezza Wi-Fi a piedi in loop, con report di evidenza. (re-inventato il WarDriving Wi-Fi)
CyclePatrol è un singolo script Bash, cp.sh. È uno strumento di valutazione della sicurezza Wi-Fi per il terminale.
Funziona su Linux e Android (Kali NetHunter). Richiede root.
Lo strumento funziona in un ciclo. In ogni round:
Solo per uso autorizzato. CyclePatrol esegue attacchi wireless attivi. Usalo solo su reti di tua proprietà o per cui hai un'autorizzazione scritta ai test.
Questa documentazione è scritta a partire dal codice sorgente. Non insegna come attaccare le reti. Spiega come è costruito lo strumento, come si muovono i dati e dove risiede la logica di sicurezza.
| Voce | Valore | Fonte |
|---|---|---|
| Nome dello strumento | CyclePatrol | TOOL_NAME |
| Versione | 1.6 | VERSION |
| Versione SAR / report | 1 / 5 | SAR_VERSION / REPORT_VERSION |
| Linguaggio | Bash 5+ | intestazione dello script |
| Privilegi | root richiesto | run_precheck |
| Interfaccia predefinita | wlan2 | DEF_IFACE |
| Directory di log predefinita | /sdcard/Download/wifi | DEF_LOG_DIR |
| File tracciati | cp.sh, vendor/oui.json, vendor/vendors.json, README.md, LICENSE, docs/ | radice del repo |
| Configurazione | solo variabili d'ambiente + flag 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
Aiuto e l'elenco completo delle opzioni:
./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
Consulta docs/architecture.md e docs/data-flow.md per i dettagli.
| Componente | Funzioni (esempi) | Compito |
|---|---|---|
| Avvio / configurazione | main, validate_env, run_precheck, auto_install_deps | analizza i flag, verifica root + interfaccia + strumenti, crea directory temporanee |
| Controllo interfaccia | ensure_mode, iface_set_type, iface_set_channel, iface_do_scan | modalità monitor/managed, canale, scansione iw |
| Stealth | stealth_mac_rotate, stealth_gen_mac, stealth_wps_id_block | MAC casuale, UUID WPS casuale |
| Scansione + parsing | scan_band, parse_scan | raccoglie l'output di iw scan, analizza i beacon in campi |
| Arricchimento | get_chip, get_cves, detect_dpp_vulns, ricerche vendor KB | OUI → vendor → chipset, suggerimenti CVE, controlli DPP |
| Controllo di scope | active_attack_permitted, allowlist_init_active | decide se un modulo attivo può essere eseguito su un BSSID |
| Moduli di valutazione | attack_pixie, attack_vendor, attack_pmkid, attack_deauth_handshake, attack_wpa_psk_brute, attack_wpa_enterprise_eviltwin | i test wireless (wrappano strumenti esterni) |
| Crack offline | offline_crack, _hashcat_22000, _aircrack_cap | cracka PMKID / handshake catturati |
| Evidenze + output | sar_store_record, save_proof, make_report, recon_report | fatti JSONL, file di prova, report HTML |
| Posizione | location_fix, location_nmea_feeder | tagging GPS per il war-driving (Android / gpsd) |
Mappa completa delle funzioni: docs/project-structure.md.
CyclePatrol è un orchestratore. Richiama i comuni strumenti wireless di Linux come sottoprocessi.
| Strumento | Usato da | Scopo |
|---|---|---|
iw, ip, nmcli, macchanger | interfaccia + stealth | scansione, modalità, canale, MAC |
reaver | attack_pixie, attack_vendor, attack_null, attack_empty, attack_user_pin | scambio con il registrar WPS |
pixiewps | attack_pixie | recupero offline del PIN WPS |
wpa_supplicant, wpa_cli, wpa_passphrase | WPS, verify_psk_live, attack_wpa_psk_brute | associazione, verifica della chiave in tempo reale |
hcxdumptool, hcxpcapngtool | attack_pmkid, attack_pmkid_active | cattura PMKID → hashcat 22000 |
tcpdump | eapol_passive_capture | cattura EAPOL passiva |
airodump-ng, aireplay-ng, mdk4 | attack_deauth_handshake, run_recon | cattura, deauth, recon |
hashcat, aircrack-ng | offline_crack | crack offline delle catture |
eaphammer, hostapd-wpe | attack_wpa_enterprise_eviltwin | cattura credenziali tramite evil-twin 802.1X |
dragondrain, dragontime | sae_dos_dragondrain, sae_timing_dragontime | controlli WPA3 / SAE. Funzioni definite ma mai chiamate (codice morto), vedi docs/security.md |
tshark, airgraph-ng | recon_report | parsing dell'uptime, grafici |
gpsd, termux-location, gpspipe | posizione | fix / tagging GPS |
jq | vendor KB | ricerca JSON (opzionale) |
Dettagli dei moduli e gating: docs/modules.md.
Tutto viene scritto sotto LOG_DIR (predefinito /sdcard/Download/wifi).
La directory viene creata con chmod 700. I file di output usano chmod 600.
| Percorso | Cosa |
|---|---|
sar.jsonl | fatti per-AP, un oggetto JSON per riga |
cp_audit.log | log di audit: AP, metodo, risultato |
report_*.html | report di valutazione (riscontri, severità, evidenze) |
report_recon_*.html | report della ricognizione passiva |
proof/proof_*.conf | prova di un riscontro confermato: PIN, PSK, SHA-256, verifica live |
proof/proofs.jsonl | manifest della catena di custodia: una riga per file di prova, con il suo SHA-256 |
proof/handshake_*.cap | handshake a 4 vie catturato |
proof/pmkid_*.22000 | PMKID in formato hashcat 22000 |
known_bssids.txt, processed_bssids.txt | stato (salta quelli già fatti) |