
Bash-инструмент для пеших проверок безопасности Wi-Fi в цикле с отчётами о доказательствах. (переизобретённый Wi-Fi WarDriving)
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, разбор beacon-кадров в поля |
| Обогащение | get_chip, get_cves, detect_dpp_vulns, поиск в базе знаний вендоров | 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 / handshake |
| Доказательства + вывод | sar_store_record, save_proof, make_report, recon_report | факты в JSONL, файлы доказательств, HTML-отчёты |
| Местоположение | location_fix, location_nmea_feeder | GPS-тегирование для war-driving (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 | перехват, деаутентификация, разведка |
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 | разбор uptime, графики |
gpsd, termux-location, gpspipe | местоположение | GPS-фиксация / тегирование |
jq | база знаний вендоров | поиск по JSON (опционально) |
Подробности о модулях и их ограничениях: docs/modules.md.
Всё записывается в LOG_DIR (по умолчанию /sdcard/Download/wifi).
Каталог создаётся с chmod 700. Выходные файлы используют chmod 600.
| Путь | Что |
|---|---|
sar.jsonl | факты по каждой точке доступа, один 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-way handshake |
proof/pmkid_*.22000 | PMKID в формате hashcat 22000 |
known_bssids.txt, processed_bssids.txt | состояние (пропуск уже обработанных) |