Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/ghostop14/sparrow-wifi
OSINT (Разведка открытых источников)РазведкаАудит Wi-FiБезопасность BluetoothКартирование сетиСбор информацииБезопасность беспроводных сетейАнализ Журналов
GitHubghostop14/sparrow-wifi

sparrow-wifi

Анализатор Wi-Fi и Bluetooth нового поколения с графическим интерфейсом для Linux

Репозиторий
1.6k1901 месяц назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
sparrow-wifi — Анализатор Wi-Fi и Bluetooth нового поколения с графическим интерфейсом для Linux | Kitploit

Sparrow-WiFi

Sparrow-WiFi — это инструмент для анализа спектра 2,4 ГГц и 5 ГГц WiFi и Bluetooth для Linux. Он объединяет в себе сканирование WiFi, обнаружение Bluetooth Low Energy и Classic, анализ спектра с помощью программно-определяемого радио (HackRF, Ubertooth), GPS-трекинг, обнаружение дронов FAA RemoteID, удаленное управление с дронов/роверов и индексацию ECS 8.17 в Elasticsearch или OpenSearch — все в одной платформе. Полностью написан на Python 3.

Проект включает четыре компонента, которые могут работать как отдельно, так и вместе:

КомпонентИнтерфейсНазначение
Sparrow-WiFiГрафический интерфейс PyQt5Сканирование WiFi/BT, анализ спектра, отслеживание источников, вардрайвинг
Sparrow AgentHeadless HTTP-серверУдаленное сканирование, развертывание на дронах/роверах, интеграция со сторонними приложениями
Sparrow DroneIDВеб-интерфейс (браузер)Обнаружение дронов FAA RemoteID через WiFi и Bluetooth LE
Sparrow Elastic BridgeHeadless CLI-сервисИндексация наблюдений WiFi/BT в формате ECS 8.17 в Elasticsearch / OpenSearch

Sparrow Agent и Sparrow DroneID предоставляют JSON REST API, позволяющие другим приложениям запрашивать результаты сканирования, запускать сканирование, получать обнаружения дронов и интегрировать функции беспроводного/дронного мониторинга в свои рабочие процессы. Elastic Bridge потребляет REST API агента и отправляет документы ECS 8.17 с встроенными панелями Kibana.


Что нового (апрель 2026)

Этот выпуск включает три значительных улучшения по сравнению с предыдущей версией:

  • Sparrow Agent: объединение однопоточных WiFi-сканирований. Когда несколько HTTP-клиентов (приложение DroneID, мост Elasticsearch, графический интерфейс) одновременно обращаются к /wireless/networks/<iface>, агент ранее запускал N избыточных вызовов iw scan, которые сериализовались на блокировке интерфейса, умножая задержку сканирования на количество клиентов. Теперь первый запрос становится «лидером», который фактически выполняет сканирование; параллельные запросы ожидают на threading.Event и используют результат лидера. Также исправлена ошибка TOCTOU при создании блокировок и обеспечена безопасность исключений для блокировок интерфейсов.
  • Sparrow DroneID — новое веб-приложение для обнаружения FAA RemoteID через WiFi (ASTM F3411 NAN, вендорские IE маяков, собственный протокол DroneID от DJI) и Bluetooth LE (рекламные пакеты BT4/BT5 Legacy). Включает наложение геозон, многоуровневые оповещения с интеграцией Slack, экспорт KML, вывод Cursor-on-Target, опциональную индексацию ECS 8.17 в Elasticsearch / OpenSearch (с пользовательским пространством имен droneid.*) и адаптивный веб-интерфейс для нескольких устройств. См. раздел Sparrow DroneID ниже.
  • Модернизированный мост Elasticsearch / OpenSearch — мост sparrow-elastic.py переписан для создания документов ECS 8.17 (ранее ECS 1.5), теперь поддерживает как Elasticsearch 8.x, так и OpenSearch 2.x, автоматически создает компонуемые индексные шаблоны с политиками жизненного цикла ILM/ISM и псевдонимами для перезаписи, выполняет обогащение данных WIF-вендорами и классификацию устройств на основе правил (с опциональным Fingerbank), а также поставляет четыре встроенные панели Kibana и шесть сохраненных визуализаций из предыдущей версии. Устаревший мост ECS 1.5 сохранен в legacy/sparrow-elastic.py. См. .

Sparrow-WiFi (Графический интерфейс)

Оригинальное приложение Sparrow предоставляет комплексный графический интерфейс, заменяющий такие инструменты, как inSSIDer и LinSSID, с возможностями, далеко выходящими за рамки базового сканирования:

  • Сканирование WiFi — обнаружение SSID в диапазонах 2,4 ГГц и 5 ГГц, уровень сигнала, загрузка канала
  • Отслеживание источников — Режим охоты с высокой частотой выборки и телеметрическими окнами для локализации источников WiFi и Bluetooth
  • Анализ спектра — Наложение спектра в реальном времени для диапазонов 2,4/5 ГГц через Ubertooth One или HackRF One
  • Bluetooth — Сканирование BLE-рекламы, обнаружение/передача iBeacon, неразборчивый режим Ubertooth для Classic + LE
  • Удаленный агент — Headless-агент (sparrowwifiagent.py) для распределенного сканирования, работы с дронов/роверов и развертывания на Raspberry Pi
  • Интеграция GPS — gpsd, статические координаты или MAVLink (GPS дрона)
  • Картография — Визуализация результатов сканирования с GPS-треками на Google Maps / OpenStreetMap
  • Импорт/Экспорт — CSV, JSON и сырой вывод iw scan
  • Elasticsearch / OpenSearch — Индексация данных сканирования WiFi и Bluetooth в формате ECS 8.17 с управлением жизненным циклом ILM/ISM, классификацией устройств, опциональным Fingerbank и встроенными панелями Kibana
  • Плагин Falcon — Интеграция с Aircrack-ng для тестирования на проникновение (режим монитора, обнаружение скрытых SSID, deauth, захват WEP/WPA)

Скриншоты


Sparrow DroneID (Веб-приложение)

Автономная веб-система обнаружения и отслеживания дронов, декодирующая обязательную согласно FAA удаленную идентификацию (Remote Identification, RemoteID). Запускается как HTTP-сервер на Python с браузерным интерфейсом, доступным с любого устройства в сети.

Возможности

  • Захват WiFi — Декодирует кадры действий ASTM F3411 NAN, вендорские IE маяков и собственный DroneID от DJI
  • Захват Bluetooth LE — Декодирует рекламные пакеты ASTM F3411 BT4/BT5 Legacy (UUID 0xFFFA)
  • Карта в реальном времени — Карта на основе Leaflet с иконками квадрокоптеров, указателями направления, метками местоположения оператора и линиями "дрон-оператор"
  • Метки с первого взгляда — ID оператора и высота над уровнем земли отображаются под каждой иконкой дрона на карте
  • Всплывающие окна с деталями — Нажатие на дрон показывает серийный номер, регистрационный ID, ID оператора, тип, скорость, направление, высоту, пеленг/расстояние от приемника, статус BVLOS
  • Система оповещений — Настраиваемые оповещения о новых дронах, нарушениях высоты, превышении скорости и потере сигнала с звуковыми сигналами, визуальными всплывающими уведомлениями, уведомлениями через Slack и опциональными JSON POST-запросами с токеном носителя к внешнему API приема оповещений (см. API-оповещения ниже)
  • Подтверждение оповещений — Трехстадийный рабочий процесс (Активно/Подтверждено/Решено) с идентификацией оператора, общий для всех подключенных устройств
  • Геозоны аэропортов — Автоматическая загрузка и отображение ближайших аэропортов (данные OurAirports) и полигонов запретных/ограниченных зон FAA, кэшируемых локально для работы в офлайн-режиме
  • GPS — Интеграция gpsd или настраиваемые статические координаты
  • История и воспроизведение — Хранение истории обнаружений в SQLite с возможностью воспроизведения временной шкалы и экспорта в KML
  • Cursor-on-Target (CoT) — Многоадресный вывод CoT для интеграции с SA
  • Многопользовательский режим — Веб-интерфейс одновременно работает на настольных ПК, планшетах и телефонах
  • Метрическая / имперская система — Полная поддержка выбора единиц измерения во всем интерфейсе и в оповещениях

После запуска веб-интерфейс доступен по адресу http://localhost:8097. Инструкции по настройке см. в разделе Установка, а программный доступ — в справочнике API.

API-оповещения

Помимо вебхуков Slack, Sparrow Droneid может отправлять каждое сработавшее оповещение на внешнюю конечную точку приема оповещений. Канал по умолчанию отключен; настройка выполняется в Настройки → Оповещения → API-оповещения:

  • Включить — вкл/выкл
  • Корневой URL API — полный корневой URL, включая префикс пути, например http://MY_API_HOST:PORT/API_ROOT
  • Домен — непрозрачная строка арендатора, используемая принимающим API для маршрутизации оповещений
  • Токен носителя — отправляется в заголовке Authorization: Bearer ...; после сохранения маскируется в интерфейсе
  • Проверять TLS — снимите флажок для конечных точек с самоподписанным или частным сертификатом ЦС
  • Тестовая аутентификация — вызывает конечную точку верификации приемника и сообщает о явном успехе/неудаче
  • Отправить тестовое сообщение — POST-запрос с синтетическим оповещением (rule.category: "test", серийный номер TEST-0000), чтобы проверить приемник от начала до конца без ожидания реального дрона

Контракт конечной точки

Sparrow Droneid выполняет два вызова к настроенному корневому URL:

Оба вызова отправляют заголовки Authorization: Bearer <token> и Content-Type: application/json.

Формат полезной нагрузки```json

{ "domain": "", "alert": { "message": "", "observer": { "name": "<operator_name or 'Sparrow DroneID'>", "type": "drone-sensor", "geo": {"location": {"lat": 0.0, "lon": 0.0}} }, "rule": {"name": "", "category": "drone_detection"}, "event": { "severity": 40, "category": "network", "action": "new_drone" }, "labels": { "serial": "", "vendor": "", "ua_type": "", "alert_type": "new_drone | altitude_max | speed_max | signal_lost" }, "source": {"geo": {"location": {"lat": 0.0, "lon": 0.0}}}, "details": { "operator_id": "...", "registration_id": "...", "self_id_text": "...", "mac_address": "...", "protocol": "...", "rssi": -68, "range_m": 1234.5, "bearing_deg": 215.0, "bearing_cardinal": "SW", "speed_mps": 5.2, "direction_deg": 240.0, "altitude_m_agl": 42.0, "detail": "..." } } }

root@kitploit:~
`observer.geo.location` включается, когда приёмник имеет GPS-фикс; `source.geo.location` включается, когда дрон транслирует своё местоположение. Серьёзность следует соглашению ECS (меньше = более срочно): предупреждения (`new_drone`, `altitude_max`, `speed_max`) имеют значение `40`, информационные события (`signal_lost`) — `70`. Дроны, помеченные как дружественные, не вызывают оповещения, когда на стороне оператора выключен переключатель «Оповещать о дружественных дронах», поэтому они также не попадают на эту конечную точку.

Синтетические тестовые оповещения, отправляемые кнопкой **Отправить тестовое сообщение**, используют `rule.category: "test"`, `event.action: "test"`, `event.severity: 70` и серийный номер `TEST-0000`, чтобы приёмник мог распознать и исключить их из операционных панелей.

---

## Системные требования

| Требование | Sparrow-WiFi (GUI) | Sparrow DroneID (Web) |
|-------------|-------------------|----------------------|
| **ОС** | Ubuntu 20.04+, Kali 2020.3+, Debian 11+ | Ubuntu 20.04+, Kali, Debian 11+, Raspberry Pi OS |
| **Python** | 3.8+ | 3.8+ |
| **Root** | Требуется (iw scan) | Требуется (режим монитора, BLE) |
| **WiFi-адаптер** | Любой с поддержкой `iw` | С поддержкой режима монитора (например, rtl8812au, Intel AX200) |
| **Bluetooth** | Опционально (адаптер hci, Ubertooth) | Опционально (любой адаптер с поддержкой BLE для RemoteID) |
| **GPS** | Опционально (gpsd) | Опционально (gpsd или статические координаты) |
| **Дисплей** | Рабочий стол X11/Wayland | Работает без дисплея (веб-браузер на любом устройстве) |

---

## Установка

### Sparrow-WiFi (Desktop GUI)```bash
git clone https://github.com/ghostop14/sparrow-wifi
cd sparrow-wifi

Системные пакеты (Ubuntu 22.04+ / Debian 12+ / Kali rolling):```bash sudo apt install python3-pip python3-pyqt5 python3-pyqt5.qtchart
gpsd gpsd-clients python3-tk python3-setuptools

root@kitploit:~
> **Пользователи Kali:** PyQt5, PyQtChart и aircrack-ng (для плагина Falcon) обычно предустановлены. Вам в основном понадобятся только `gpsd`, `gpsd-clients` и Python-зависимости ниже.

Python-зависимости — выберите один из способов:

**Вариант A: Установка в систему с `--break-system-packages`** — самый простой, подходит для способа запуска GUI/агента (скрипты от root):```bash
# Modern systems (Ubuntu 24.04+, Kali rolling 2023+, Debian 12+) require this
# flag because Python is marked externally-managed (PEP 668). Sparrow runs as
# root anyway, so system-wide install is consistent with how it executes.
sudo pip3 install --break-system-packages -r requirements.txt

Вариант B: Виртуальное окружение — изолированная среда, без предупреждений системного pip, предпочитается некоторыми операторами:```bash python3 -m venv venv source venv/bin/activate pip install -r requirements.txt

Run with sudo using the venv interpreter:

sudo venv/bin/python3 ./sparrow-wifi.py

root@kitploit:~
В любом случае, выполните:```bash
sudo ./sparrow-wifi.py

Sparrow DroneID (Веб-приложение)```bash

cd sparrow-droneid

System tools — tcpdump for WiFi monitor mode, bluez for BLE RemoteID

sudo apt install tcpdump bluez

Python dependencies — pick one of:

sudo pip3 install --break-system-packages -r sparrow_droneid/requirements.txt

or:

python3 -m venv venv && source venv/bin/activate && pip install -r sparrow_droneid/requirements.txt

Run (either entry point works):

sudo python3 sparrow_droneid/app.py

or: sudo python3 -m sparrow_droneid

root@kitploit:~
Откройте `http://localhost:8097` в браузере. Настройте интерфейс монитора и GPS в настройках, затем нажмите «Старт».

### Elasticsearch / OpenSearch Bridge (опционально)```bash
sudo pip3 install --break-system-packages -r requirements-elastic.txt
# or via venv as above

См. Интеграция с Elasticsearch / OpenSearch ниже.


Примечания по WiFi-адаптерам

Большинство WiFi-адаптеров работают для базового сканирования. Sparrow-WiFi поддерживает несколько бэкендов для перечисления интерфейсов (iw, iwconfig, nmcli), поэтому он работает в системах, где iw может быть не установлен (например, RHEL/Fedora только с NetworkManager).

Для режима мониторинга (требуется Sparrow DroneID и плагином Falcon) поддержка адаптеров и драйверов различается:

  • Рекомендуемые: Alfa AWUS036ACH (rtl8812au), Alfa AWUS036AXML (mt7921au)
  • Хорошо работают: Intel AX200/AX210 (iwlwifi) для сканирования; доставка кадров в режиме мониторинга зависит от версии прошивки
  • Сначала проверьте: iw phy <phy> info | grep monitor или iwconfig <iface> для проверки возможностей

Для Sparrow DroneID адаптер должен передавать сырые кадры 802.11 в режиме мониторинга. Некоторые адаптеры Intel сообщают о поддержке режима мониторинга, но молча отбрасывают кадры на уровне прошивки. Приложение обнаруживает это и предупреждает вас.


Bluetooth

Sparrow-WiFi поддерживает несколько режимов сканирования Bluetooth:

Стандартного встроенного или USB Bluetooth-адаптера достаточно для сканирования BLE-рекламы и обнаружения дронов RemoteID. Проверьте свой адаптер с помощью bluetoothctl scan on.

Для полного неразборчивого обнаружения как классических, так и BLE-устройств вам понадобятся Ubertooth One и Blue Hydra, установленные в /opt/bluetooth/blue_hydra. Это опционально и не требуется для базового сканирования BLE или RemoteID.


Анализ спектра

Наложение спектральных данных в реальном времени на представления WiFi-каналов:

Ubertooth One

  • Только 2.4 ГГц, разрешение 1 МГц
  • Проверьте с помощью: ubertooth-specan-ui

HackRF One

  • 2.4 ГГц (разрешение 0.5 МГц) и 5 ГГц (разрешение 2 МГц)
  • По одному диапазону за раз; комбинируйте с Ubertooth для одновременного двухдиапазонного использования
  • Используйте подходящую двухдиапазонную антенну (стандартная антенна HackRF рассчитана только до 1 ГГц)
  • Примечание: Для большинства WiFi-антенн требуется переходник RP-SMA на SMA
  • Проверьте с помощью: hackrf_sweep


GPS

Оба приложения используют gpsd для GPS. Быстрая настройка:```bash

Install

sudo apt install gpsd gpsd-clients

Test with a USB GPS receiver

sudo gpsd -D 2 -N /dev/ttyUSB0

Verify

xgps # or: cgps -s

root@kitploit:~
Для производственной среды настройте `/etc/default/gpsd` с указанием пути вашего устройства и перезапустите службу.

Sparrow DroneID также поддерживает статические координаты (настраиваются в настройках) для стационарных установок без GPS-приемника.

---

## Удаленный агент и интеграция API

Агент Sparrow (`sparrowwifiagent.py`) — это безголовый HTTP-сервер, который предоставляет все возможности сканирования WiFi и Bluetooth Sparrow в виде REST API на основе JSON. Именно так GUI Sparrow-WiFi взаимодействует с удаленными датчиками, но API открыто для использования любым приложением.

**Варианты использования:**
- Развертывание на Raspberry Pi, дроне или ровере для удаленного/мобильного сканирования
- Интеграция ситуационной осведомленности по WiFi и Bluetooth в ваши собственные приложения
- Подача данных сканирования в SIEM, панели мониторинга или конвейеры оповещений
- Автоматизация сканирования с помощью скриптов (запуск сканирований, получение результатов через curl/Python и т.д.)

Sparrow DroneID также имеет собственный REST API ([справочник по API](https://github.com/ghostop14/sparrow-wifi/blob/HEAD/sparrow-droneid/sparrow_drone_id_api.md)), обеспечивающий программный доступ к обнаружению дронов, управлению оповещениями, геозонам и конфигурации системы.

### Запуск агента```bash
sudo ./sparrowwifiagent.py

Listens on port 8020 by default. Key options:

See --help for the full list.

Example API calls```bash

List wireless interfaces the agent can scan

curl http://sensor:8020/wireless/interfaces

Trigger a WiFi scan and pull results (multiple concurrent callers

get coalesced into a single iw scan; first caller is the leader)

curl http://sensor:8020/wireless/networks/wlan0

Filter to specific frequencies

curl "http://sensor:8020/wireless/networks/wlan0?frequencies=2412,2437,2462"

Query GPS status

curl http://sensor:8020/gps/status

Start a Bluetooth Low Energy advertisement scan

curl http://sensor:8020/bluetooth/discoverystarta

Pull current BT discovery results

curl http://sensor:8020/bluetooth/discoverystatus

root@kitploit:~
Для Sparrow DroneID см. специальную [справочную документацию по API](https://github.com/ghostop14/sparrow-wifi/blob/HEAD/sparrow-droneid/sparrow_drone_id_api.md).

> **Примечание для продакшена:** по умолчанию агент прослушивает все интерфейсы. Для развёртывания вне доверенной сети используйте `--allowedips` для ограничения вызывающих, запускайте за обратным прокси с TLS или привязывайте только к приватному интерфейсу.

---

## Плагин Falcon / Aircrack-ng

Расширенная интеграция для тестирования беспроводных сетей на проникновение. Предоставляет доступ к следующему через точечные клики:

- Обнаружение скрытых SSID с помощью airodump-ng
- Перечисление клиентских станций (подключённые AP, пробованные SSID)
- Целевая и широковещательная деаутентификация
- Захват IV WEP
- Захват рукопожатия WPA с автоматическим извлечением хэша (требуется JTR `wpapcap2john`)

### Предварительные требования```bash
# Kali users: aircrack-ng + JTR are usually pre-installed.
# Ubuntu / Debian / Raspberry Pi OS:
sudo apt install aircrack-ng john

Verify airmon-ng, airodump-ng, and wpapcap2john are on your PATH after install.

Отказ от ответственности

Активное тестирование на проникновение регулируется законодательством. Вы обязаны получить соответствующее разрешение перед использованием этих инструментов.


Интеграция с Elasticsearch / OpenSearch

Пакет sparrow_elastic предоставляет мост ECS 8.17, который опрашивает агент Sparrow WiFi и выполняет массовую индексацию наблюдений Wi-Fi и Bluetooth в Elasticsearch 8.x или OpenSearch 2.x. Он автоматически инициализирует компоновочные шаблоны индексов, политики жизненного цикла ILM/ISM и псевдонимы записи с переключением; выполняет обогащение вендоров OUI и классификацию устройств на основе правил (с опциональным снятием отпечатков Fingerbank); а также поставляет готовые панели мониторинга Kibana.

Быстрый старт```bash

1. Start the remote agent (it provides scan data via HTTP)

sudo ./sparrowwifiagent.py

2. Install bridge dependencies

sudo pip3 install --break-system-packages -r requirements-elastic.txt

3. Run the bridge

./sparrow-elastic.py --elasticserver http://user:pass@host:9200 --wifiinterface wlan1

4. (Optional) Import the bundled Kibana dashboards

python3 install_dashboards.py --kibana-url http://kibana:5601
--username elastic --password ''

root@kitploit:~
> **Гигиена учётных данных:** встраивание `user:pass@` в `--elasticserver` удобно, но URL становится видимым в `ps`, `journalctl` и истории оболочки. Для продакшена используйте флаги `--username`/`--password`, переменные окружения (`SPARROW_ES_USERNAME`, `SPARROW_ES_PASSWORD`) или шаблон `EnvironmentFile=` в прилагаемом примере systemd-юнита.

### Что поставляется с мостом

- **5 панелей мониторинга Kibana** — Ситуационная осведомлённость, Образ жизни, Обнаружение новых устройств, Планирование спектра (с тепловой картой силы сигнала SSID × Channel) и Ситуационная осведомлённость Bluetooth (с панелью Vega для действительно новых устройств и таблицей близости с оценкой дальности)
- **6 визуализаций, сохранённых для обратной совместимости** — переименованные клоны оригинальных визуализаций `Sparrow*`, чтобы старые привычные действия продолжали работать
- **Классификатор устройств** — начальная таблица из 64 правил, охватывающая контроллеры дронов (DJI/Autel/Skydio/Parrot/Yuneec), класс устройств BT, GAP Appearance, подтипы Apple Continuity и эвристики по OUI вендоров
- **Обновление эталонных данных** — встроенные `manuf` от Wireshark, идентификаторы компаний BT SIG, UUID сервисов, значения GAP appearance и таблицы подтипов Apple Continuity с фоновым потоком самообновления каждые 30/90 дней
- **Проверка совместимости перед запуском** — отказывается записывать в устаревшие индексы ECS 1.5 и выводит понятные шаги по устранению, вместо того чтобы молча повреждать данные

Полную документацию оператора (выбор движка, режимы аутентификации, импорт панелей мониторинга, эталонные данные, полная справка по CLI) см. в [sparrow_elastic/README.md](https://github.com/ghostop14/sparrow-wifi/blob/HEAD/sparrow_elastic/README.md).

Примеры конфигурационных файлов находятся в корне репозитория и в `init.d_scripts/`:

- `sparrow-elastic.conf.example` — конфигурация в стиле INI со всеми поддерживаемыми ключами
- `sparrow-elastic.env.example` — файл окружения в формате shell для развёртывания systemd
- `init.d_scripts/sparrow-elastic.service.example` — шаблон systemd-юнита

### Миграция с устаревшего моста ECS 1.5

Мост до 2026 года записывал документы ECS 1.5 в индексы, названные оператором, через `--wifiindex` / `--btindex`. Новый мост записывает документы ECS 8.17 в псевдонимы записи, управляемые ротацией (по умолчанию `sparrow-wifi` / `sparrow-bt`).

**Старый скрипт сохранён в `legacy/sparrow-elastic.py`** вместе с его шаблоном `.txt` и файлами политик ILM. Для его запуска по-прежнему требуется устаревшее окружение (ручная настройка шаблона + ILM).

**Изменения флагов (с обратной совместимостью):**

| Устаревший флаг         | Новый флаг           | Примечания                                                  |
|-------------------------|----------------------|-------------------------------------------------------------|
| `--wifiindex NAME`      | `--wifi-alias NAME`  | Устаревшее написание всё ещё принимается как устаревший псевдоним. |
| `--btindex NAME`        | `--bt-alias NAME`    | Устаревшее написание всё ещё принимается как устаревший псевдоним. |
| `--dont-create-indices` | unchanged            | Пропускает начальную настройку.                             |
| `--elasticserver`, `--sparrowagent`, `--sparrowport`, `--wifiinterface`, `--scandelay` | unchanged | |

Пример устаревшего вызова:```bash
./sparrow-elastic.py --elasticserver=http://user:pass@host:9200 \
                     --wifiinterface=wlan1 \
                     --wifiindex=sparrowwifi-home \
                     --btindex=sparrowbt-home

все равно анализирует и выполняется — но мост теперь отказывается записывать в уже существующий индекс, маппинг которого не содержит маркера схемы ECS 8.17, выходя с тремя вариантами исправления (использовать другой алиас, очистить и перезапустить, или запустить устаревший мост). Для чистой установки просто опустите --wifiindex / --btindex и примите новые значения по умолчанию.


Операции с дроном / ровером

Удаленный агент может быть развернут на Raspberry Pi, установленном на дроне или ровере, для мобильного беспроводного обследования. Протестировано на дроне Solo 3DR с GPS-интеграцией через MAVLink.

Автономная запись```bash

On the Pi: auto-start, pull drone GPS, record to local files

sudo python3 ./sparrowwifiagent.py --userpileds --sendannounce --mavlinkgps 3dr --recordinterface wlan0

root@kitploit:~
LED-индикаторы (Raspberry Pi):
1. Оба выключены &mdash; Инициализация
2. Красное мигание &mdash; GPS обнаружен, не синхронизирован
3. Красный постоянно &mdash; GPS синхронизирован
4. Зеленый постоянно &mdash; Агент готов, обслуживает запросы

Записи можно получить через интерфейс управления агентами Sparrow-WiFi GUI.

### Примечания по настройке Pi

- Используйте Raspberry Pi OS (Bookworm или новее) с Python 3.8+
- Отключите встроенный Wi-Fi для включения сканирования в диапазоне 5 ГГц с USB-адаптерами: добавьте `dtoverlay=disable-wifi` в `/boot/firmware/config.txt` на Bookworm и новее, или в `/boot/config.txt` на старых версиях
- Установите необходимые зависимости: `sudo pip3 install --break-system-packages -r requirements.txt` (или используйте venv, как описано в разделе [Установка](#installation))

---

## Структура проекта```
sparrow-wifi/
  sparrow-wifi.py            # Desktop GUI entry point
  sparrowwifiagent.py        # Headless remote agent
  sparrow-elastic.py         # Elasticsearch / OpenSearch bridge (ECS 8.17)
  install_dashboards.py      # One-shot Kibana dashboard installer
  requirements.txt           # Python dependencies (GUI)
  requirements-elastic.txt   # Python dependencies (Elasticsearch bridge)
  wirelessengine.py          # WiFi scan engine (iw)
  sparrowbluetooth.py        # Bluetooth scan engine
  sparrowhackrf.py           # HackRF spectrum engine
  sparrowmap.py              # Map generation
  plugins/                   # Falcon and other plugins
  sparrow_elastic/           # ES/OS bridge package
    *.py                     # Client abstraction, document builder, classifier...
    templates/               # Composable index templates (ES + OS variants)
    policies/                # ILM (ES) and ISM (OS) lifecycle policy JSON
    dashboards/              # Kibana NDJSON: 5 dashboards + legacy-preserved
    data/                    # Bundled reference data (manuf, BT SIG, classifier rules)
    README.md                # Full bridge operator documentation
  legacy/                    # Pre-2026 ECS 1.5 bridge, frozen for reference
    sparrow-elastic.py       # Legacy bridge (still runnable)
    sparrow_elastic_*.txt    # Legacy index templates and ILM policy
  sparrow-droneid/           # DroneID web application
    sparrow_droneid/
      app.py                 # Entry point (sudo python3 app.py)
      __main__.py            # Allows: sudo python3 -m sparrow_droneid
      requirements.txt       # Python dependencies (DroneID)
      backend/               # API server, capture engine, database
      frontend/              # HTML, JS, CSS (served by backend)
    sparrow_drone_id_api.md  # REST API reference

Лицензия

Данный проект лицензирован на условиях, включенных в репозиторий. Подробности смотрите в файле LICENSE.

Скачать инструмент
Интеграция с Elasticsearch / OpenSearch
ГлаголПутьНазначение
POST{root}/v1/alerts/verifyПроверка учетных данных — тело {"domain": "<настроенный>"}. Приемник должен ответить 200 {"status":"ok"} в случае успеха, 401 при неверном токене.
POST{root}/v1/alertsОтправка оповещения — тело представляет собой JSON, указанный ниже. Приемник должен ответить 201 {"alert_id":"..."} в случае успеха. Ответы 503 повторяются с экспоненциальной задержкой (3 повторные попытки); 4xx прерывают выполнение без повторной попытки. Ответ 200 {"status":"dropped"} означает, что домен отключен на стороне вышестоящего сервера.
РежимОборудованиеЧто вы видите
Сканирование BLE-рекламыСтандартный BT-адаптерLE-устройства, которые активно рекламируются
Неразборчивое сканированиеUbertooth One + Blue HydraВсе BLE и классические BT-устройства в зоне действия
Реклама iBeaconСтандартный BT-адаптерРекламируйте свои собственные iBeacons
Сканирование RemoteIDСтандартный BT-адаптерИдентификация дронов, соответствующая FAA (только Sparrow DroneID)
FlagPurpose
--port PORTHTTP listen port
--allowedips IP1,IP2Restrict client connections
--staticcoord LAT,LON,ALTUse fixed GPS coordinates
--mavlinkgps 3drPull GPS from Solo 3DR drone
--recordinterface IFACEAuto-record on startup (headless)
--userpiledsUse Raspberry Pi LEDs for status
--sendannounceUDP broadcast for agent discovery