Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
cyclepatrol — Bash tool for on-foot Wi-Fi security checks in a loop, with evidence reports. (re-invented wifi WarDriving) | Kitploit
Tools/GitHubGitHub/buybitart/cyclepatrol
Defensive ToolsPassword CrackingReconnaissanceVulnerability ScannersWi-Fi AuditingHash AnalysisScripting & AutomationInformation GatheringNetwork SecurityWireless SecurityPenetration Testing
63612412 days agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
GitHub
buybitart/cyclepatrol

cyclepatrol

Bash tool for on-foot Wi-Fi security checks in a loop, with evidence reports. (re-invented wifi WarDriving)

View RepositoryWebsite
Share

CyclePatrol (re-invented wifi WarDriving)

license platform shell version

CyclePatrol is one Bash script, cp.sh. It is a Wi-Fi security assessment tool for the terminal. It runs on Linux and Android (Kali NetHunter). It needs root.

The tool runs in a loop. In each round it:

  1. scans nearby Wi-Fi networks,
  2. parses each beacon and reads the security facts,
  3. runs the enabled assessment modules (WPS, PMKID, handshake, WPA2 dictionary, WPA3/SAE, DPP, enterprise EAP),
  4. saves facts, evidence (proof files) and an HTML report.

Authorized use only. CyclePatrol runs active wireless attacks. Use it only on networks you own or have written permission to test.

This documentation is written from the source code. It does not teach how to attack networks. It explains how the tool is built, how data moves, and where the security logic lives.

CyclePatrol pipeline: scan, parse, enrich, scope gate, assessment modules, proof and report


cyclepatrol

Facts

ItemValueSource
Tool nameCyclePatrolTOOL_NAME
Version1.6VERSION
SAR / report version1 / 5SAR_VERSION / REPORT_VERSION
LanguageBash 5+script header
Privilegeroot requiredrun_precheck
Default interfacewlan2DEF_IFACE
Default log dir/sdcard/Download/wifiDEF_LOG_DIR
Tracked filescp.sh, vendor/oui.json, vendor/vendors.json, README.md, LICENSE, docs/repo root
Configenvironment variables + CLI flags onlymain

Install and start

# 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

Help and the full option list:

./cp.sh --help

Pipeline

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

See docs/architecture.md and docs/data-flow.md for detail.


Main components

ComponentFunctions (examples)Job
Startup / configmain, validate_env, run_precheck, auto_install_depsparse flags, check root + interface + tools, build temp dirs
Interface controlensure_mode, iface_set_type, iface_set_channel, iface_do_scanmonitor/managed mode, channel, iw scan
Stealthstealth_mac_rotate, stealth_gen_mac, stealth_wps_id_blockrandom MAC, random WPS UUID
Scan + parsescan_band, parse_scancollect iw scan output, parse beacons into fields
Enrichmentget_chip, get_cves, detect_dpp_vulns, vendor KB lookupsOUI → vendor → chipset, CVE hints, DPP checks
Scope gateactive_attack_permitted, allowlist_init_activedecide if an active module may run on a BSSID
Assessment modulesattack_pixie, attack_vendor, attack_pmkid, attack_deauth_handshake, attack_wpa_psk_brute, attack_wpa_enterprise_eviltwinthe wireless tests (wrap external tools)
Offline crackoffline_crack, _hashcat_22000, _aircrack_capcrack captured PMKID / handshake
Evidence + outputsar_store_record, save_proof, make_report, recon_reportJSONL facts, proof files, HTML reports
Locationlocation_fix, location_nmea_feederGPS tagging for war-driving (Android / gpsd)

Full function map: docs/project-structure.md.


External tools used

CyclePatrol is an orchestrator. It calls standard Linux wireless tools as subprocesses.

ToolUsed byPurpose
iw, ip, nmcli, macchangerinterface + stealthscan, mode, channel, MAC
reaverattack_pixie, attack_vendor, attack_null, attack_empty, attack_user_pinWPS registrar exchange
pixiewpsattack_pixieWPS offline PIN recovery
wpa_supplicant, wpa_cli, wpa_passphraseWPS, verify_psk_live, attack_wpa_psk_bruteassociation, live key check
hcxdumptool, hcxpcapngtoolattack_pmkid, attack_pmkid_activePMKID capture → hashcat 22000
tcpdumpeapol_passive_capturepassive EAPOL capture
airodump-ng, aireplay-ng, mdk4attack_deauth_handshake, run_reconcapture, deauth, recon
hashcat, aircrack-ngoffline_crackoffline crack of captures
eaphammer, hostapd-wpeattack_wpa_enterprise_eviltwin802.1X evil-twin credential capture
dragondrain, dragontimesae_dos_dragondrain, sae_timing_dragontimeWPA3 / SAE checks. Functions defined but never called (dead code), see docs/security.md
tshark, airgraph-ngrecon_reportuptime parse, graphs
gpsd, termux-location, gpspipelocationGPS fix / tagging
jqvendor KBJSON lookup (optional)

Module detail and gating: docs/modules.md.

Output

Everything is written under LOG_DIR (default /sdcard/Download/wifi). The directory is made with chmod 700. Output files use chmod 600.

PathWhat
sar.jsonlper-AP facts, one JSON object per line
cp_audit.logaudit log: AP, method, result
report_*.htmlassessment report (findings, severity, evidence)
report_recon_*.htmlpassive recon survey report
proof/proof_*.confproof of a confirmed finding: PIN, PSK, SHA-256, live-verify
proof/proofs.jsonlchain-of-custody manifest: one line per proof file, with its SHA-256
proof/handshake_*.capcaptured 4-way handshake
proof/pmkid_*.22000PMKID in hashcat 22000 form
known_bssids.txt, processed_bssids.txtstate (skip already done)

The report severities are Critical / High / Medium / Low / Info. A finding is Critical only when a key was actually recovered and a proof file exists for it. The report opens in a Simple view that shows the proof-backed findings. A Technical view toggle adds the posture findings, the evidence table, and the diagnostic log. Posture findings (Medium / Low / Info) carry the measured beacon facts that back their rating. Field schema and the report model are in docs/outputs.md.


Documentation map

Download Tool