Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
sparrow-wifi — 适用于Linux的下一代基于GUI的WiFi和蓝牙分析器 | Kitploit
工具/GitHubGitHub/ghostop14/sparrow-wifi
OSINT (开源情报)侦察Wi-Fi审计蓝牙安全网络映射信息收集无线安全日志分析
GitHubghostop14/sparrow-wifi

sparrow-wifi

适用于Linux的下一代基于GUI的WiFi和蓝牙分析器

查看仓库
1.6k1901个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Sparrow-WiFi

Sparrow-WiFi 是一个用于 Linux 的 2.4 GHz 和 5 GHz WiFi 及蓝牙频谱感知工具。它集成了 WiFi 扫描、蓝牙低功耗(BLE)和经典蓝牙发现、软件定义无线电频谱分析(HackRF、Ubertooth)、GPS 追踪、FAA RemoteID 无人机检测、无人机/漫游车远程操作,以及将 ECS 8.17 索引到 Elasticsearch 或 OpenSearch,统一在一个平台上。完全使用 Python 3 编写。

该项目包含四个可独立或协同工作的组件:

组件界面用途
Sparrow-WiFiPyQt5 桌面 GUIWiFi/BT 扫描、频谱分析、源追踪、战争驾驶
Sparrow Agent无头 HTTP 服务器远程扫描、无人机/漫游车部署、第三方集成
Sparrow DroneID基于 Web(浏览器)通过 WiFi 和蓝牙低功耗进行 FAA RemoteID 无人机检测
Sparrow Elastic Bridge无头 CLI 服务将 WiFi/BT 观测数据以 ECS 8.17 索引到 Elasticsearch / OpenSearch

Sparrow Agent 和 Sparrow DroneID 暴露 JSON REST API,允许其他应用程序查询扫描结果、触发扫描、获取无人机检测信息,并将无线/无人机感知集成到自己的工作流程中。Elastic Bridge 消耗代理的 REST API,并发送带有捆绑 Kibana 仪表板的 ECS 8.17 文档。


新增内容(2026 年 4 月)

此版本相较于先前版本包含三项重大改进:

  • Sparrow Agent:单次飞行 WiFi 扫描合并(single-flight coalescing)。 当多个 HTTP 客户端(DroneID 应用、Elasticsearch 桥接、GUI)同时访问 /wireless/networks/<iface> 时,代理先前会启动 N 个冗余的 iw scan 调用,这些调用在接口锁上串行化,导致扫描延迟随客户端数量倍增。现在第一个请求成为实际扫描的“领导者”;并发请求等待 threading.Event 并共享领导者的结果。还包含锁创建时的 TOCTOU 修复以及接口锁的异常安全性。
  • Sparrow DroneID — 全新的基于 Web 的应用程序,用于通过 WiFi(ASTM F3411 NAN、信标供应商 IE、大疆专有 DroneID 协议)和蓝牙低功耗(BT4/BT5 Legacy 广播)进行 FAA RemoteID 检测。包含地理区域叠加、多状态告警(集成 Slack)、KML 导出、Cursor-on-Target 输出、可选的 ECS 8.17 索引到 Elasticsearch / OpenSearch(使用自定义的 droneid.* 命名空间),以及多设备响应式 Web UI。请参见下面的 Sparrow DroneID 部分。
  • 现代化 Elasticsearch / OpenSearch 桥接 — sparrow-elastic.py 桥接已被重写,现在生成 ECS 8.17 文档(之前为 ECS 1.5),同时支持 Elasticsearch 8.x 和 OpenSearch 2.x,自动引导可组合索引模板(含 ILM/ISM 生命周期策略和滚动写入别名),执行 OUI 供应商丰富和基于规则的设备分类(可选 Fingerbank 指纹识别),并打包四个捆绑的 Kibana 仪表板以及六个保留的旧版可视化。旧版 ECS 1.5 桥接保留在 legacy/sparrow-elastic.py。请参见 Elasticsearch / OpenSearch 集成。

Sparrow-WiFi(桌面 GUI)

原始的 Sparrow 应用程序提供了一个全面的基于 GUI 的替代工具,如 inSSIDer 和 LinSSID,其功能远超基本扫描:

  • WiFi 扫描 — 2.4 GHz 和 5 GHz SSID 发现、信号强度、信道利用率
  • 源追踪 — 追踪模式,具有高采样率和遥测窗口,用于定位 WiFi 和蓝牙信号源
  • 频谱分析 — 通过 Ubertooth One 或 HackRF One 进行实时 2.4/5 GHz 频谱叠加
  • 蓝牙 — BLE 广告扫描、iBeacon 检测/广告、Ubertooth 混杂模式(经典 + LE)
  • 远程代理 — 无头代理(sparrowwifiagent.py),用于分布式扫描、无人机/漫游车操作以及 Raspberry Pi 部署
  • GPS 集成 — gpsd、静态坐标或 MAVLink(无人机 GPS)
  • 地图 — 使用 Google Maps / OpenStreetMap 可视化扫描结果与 GPS 轨迹
  • 导入/导出 — CSV、JSON 和原始 iw scan 输出
  • Elasticsearch / OpenSearch — 符合 ECS 8.17 的 WiFi 和蓝牙扫描数据索引,含 ILM/ISM 生命周期管理、设备分类、可选 Fingerbank 指纹识别以及捆绑的 Kibana 仪表板
  • Falcon 插件 — 集成 Aircrack-ng 进行渗透测试(监控模式、隐藏 SSID 发现、去认证、WEP/WPA 捕获)

截图


Sparrow DroneID(Web 应用程序)

一个独立的基于 Web 的无人机检测与追踪系统,能够解码 FAA 强制要求的远程识别(RemoteID)广播。作为 Python HTTP 服务器运行,带有基于浏览器的 UI,可从网络上的任何设备访问。

功能

  • WiFi 捕获 — 解码 ASTM F3411 NAN 动作帧、信标供应商 IE 和大疆专有 DroneID
  • 蓝牙低功耗捕获 — 解码 ASTM F3411 BT4/BT5 Legacy 广播(UUID 0xFFFA)
  • 实时地图 — 基于 Leaflet 的地图,带有四轴飞行器图标、航向指示器、操作员位置标记以及无人机到操作员的连线
  • 一目了然的标签 — 地图上每个无人机图标下方显示操作员 ID 和离地高度(AGL)
  • 详细信息弹窗 — 点击无人机可查看序列号、注册 ID、操作员 ID、类型、速度、航向、高度、相对于接收器的方位/距离、BVLOS 状态
  • 告警系统 — 可配置的告警,针对新无人机、高度违规、速度违规和信号丢失,支持音频提示、视觉 Toast、Slack webhook 通知,以及可选的带 Bearer Token 的 JSON POST 到通用外部告警接收 API(见下面的 基于 API 的告警)
  • 告警确认 — 三状态工作流(活动/已确认/已解决),带有操作员身份,所有连接设备共享
  • 机场地理区域 — 自动下载并显示附近机场(OurAirports 数据)和 FAA 禁飞/限制空域多边形,本地缓存以供离线使用
  • GPS — gpsd 集成或可配置的静态坐标
  • 历史记录与回放 — 基于 SQLite 的检测历史记录,带有时间线回放和 KML 导出
  • Cursor-on-Target (CoT) — 多播 CoT 输出,用于态势感知集成
  • 多设备 — Web UI 可同时在桌面、平板和手机上使用
  • 公制/英制 — 在 UI 和告警中完全支持单位偏好

启动后 Web UI 运行在 http://localhost:8097。请参阅下面的 安装 了解设置,以及 API 参考 了解编程接口。

基于 API 的告警

除了 Slack webhook,Sparrow DroneID 还可将每次触发的告警 POST 到 一个通用的外部告警接收端点。该通道默认禁用; 请在“设置” → “告警” → “基于 API 的告警”中配置:

  • 启用 — 开/关切换
  • API 端点根路径 — 包含所有路径前缀的完整根 URL,例如 http://MY_API_HOST:PORT/API_ROOT
  • 域(Domain) — 接收 API 用于路由告警的不透明租户字符串
  • Bearer Token — 在 Authorization: Bearer ... 头中发送;存储后在 UI 中隐藏
  • 验证 TLS — 对于自签名或私有 CA 端点取消勾选
  • 测试认证 — 调用接收方的验证端点并报告明确的通过/失败信息
  • 发送测试消息 — 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) | 必需(monitor mode, BLE) |
| **WiFi适配器** | 任何支持 `iw` 的适配器 | 支持监听模式(例如 rtl8812au、Intel AX200) |
| **蓝牙** | 可选(hci 适配器、Ubertooth) | 可选(任何支持 BLE 的适配器用于 RemoteID) |
| **GPS** | 可选(gpsd) | 可选(gpsd 或静态坐标) |
| **显示** | X11/Wayland 桌面 | 无头模式可用(任何设备上的网页浏览器) |

---

## 安装

### Sparrow-WiFi (桌面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 依赖项 &mdash; 选择以下任一方式:

**选项 A:使用 `--break-system-packages` 进行系统级安装** &mdash; 最简单,适合 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 (Web 应用程序)```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的系统上工作(例如,仅使用NetworkManager的RHEL/Fedora)。

对于监控模式(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适配器报告支持监控模式,但在固件级别静默丢弃帧。应用程序会检测到这一点并警告您。


蓝牙

Sparrow-WiFi支持多种蓝牙扫描模式:

标准的内置或USB蓝牙适配器足以进行BLE广播扫描和RemoteID无人机检测。使用 bluetoothctl scan on 测试适配器。

为了全面混杂发现经典和BLE设备,您需要一个Ubertooth One和Blue Hydra,并安装到 /opt/bluetooth/blue_hydra。这是可选的,基本BLE或RemoteID扫描不需要。


频谱分析

在WiFi信道视图上叠加实时频谱:

Ubertooth One

  • 仅2.4 GHz,1 MHz分辨率
  • 测试命令:ubertooth-specan-ui

HackRF One

  • 2.4 GHz(0.5 MHz分辨率)和5 GHz(2 MHz分辨率)
  • 一次一个频段;与Ubertooth结合可实现同时双频段
  • 使用合适的双频天线(标准HackRF天线仅额定到1 GHz)
  • 注意:大多数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:~
For production, configure `/etc/default/gpsd` with your device path and restart the service.

Sparrow DroneID 也支持静态坐标(在设置中配置),用于没有GPS接收器的固定站点安装。

---

## Remote Agent and API Integration

Sparrow 代理(`sparrowwifiagent.py`)是一个无头 HTTP 服务器,将 Sparrow 的所有 WiFi 和蓝牙扫描能力以基于 JSON 的 REST API 方式暴露出来。这就是 Sparrow-WiFi GUI 与远程传感器通信的方式,但该 API 开放给任何应用程序使用。

**使用场景:**
- 部署在 Raspberry Pi、无人机或漫游车上进行远程/移动扫描
- 将 WiFi 和蓝牙态势感知集成到你自己的应用中
- 将扫描数据馈送到 SIEM、仪表盘或警报管道中
- 使用脚本自动化扫描(触发扫描,通过 curl/Python 等获取结果)

Sparrow DroneID 也有自己的 REST API([API 参考](https://github.com/ghostop14/sparrow-wifi/blob/HEAD/sparrow-droneid/sparrow_drone_id_api.md)),提供对无人机检测、警报管理、地理围栏和系统配置的编程访问。

### Running the Agent```bash
sudo ./sparrowwifiagent.py

默认监听端口8020。关键选项:

参见 --help 获取完整列表。

示例API调用```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 插件

高级无线渗透测试集成。提供点选式访问,支持:

- 通过 airodump-ng 发现隐藏 SSID
- 客户端站点枚举(已连接 AP、探测到的 SSID)
- 定向和广播解除认证
- WEP IV 捕获
- WPA 握手捕获及自动哈希提取(需要 JTR `wpapcap2john`)

### 先决条件```bash
# Kali users: aircrack-ng + JTR are usually pre-installed.
# Ubuntu / Debian / Raspberry Pi OS:
sudo apt install aircrack-ng john

验证安装后 airmon-ng、airodump-ng 和 wpapcap2john 是否在您的 PATH 中。

免责声明

主动渗透测试受法律法规约束。使用这些工具前,您有责任获得适当的授权。


Elasticsearch / OpenSearch 集成

sparrow_elastic 包提供了一个 ECS 8.17 桥接,用于轮询 Sparrow WiFi 代理并将 WiFi 和蓝牙观测数据批量索引到 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:~
> **凭据卫生:** 在 `--elasticserver` 中嵌入 `user:pass@` 虽然方便,但 URL 会在 `ps`、`journalctl` 和 shell 历史记录中可见。生产环境请使用 `--username`/`--password` 标志、环境变量(`SPARROW_ES_USERNAME`、`SPARROW_ES_PASSWORD`),或所附 systemd 单元示例中的 `EnvironmentFile=` 模式。

### 桥接器附带的组件

- **5 个 Kibana 仪表板** — 态势感知、生活模式、新设备检测、频谱规划(附带 SSID × 信道信号强度热力图)以及蓝牙态势感知(附带真正新设备 Vega 面板和估计距离接近度表格)
- **6 个保留旧版的可视化** — 对原始 `Sparrow*` 可视化进行字段重命名的克隆,以便旧操作习惯继续适用。
- **设备分类器** — 包含 64 条规则的种子表,涵盖无人机控制器(DJI/Autel/Skydio/Parrot/Yuneec)、蓝牙设备类别、GAP 外观、Apple Continuity 子类型以及 OUI 厂商启发式规则。
- **参考数据刷新** — 附带的 Wireshark `manuf`、BT SIG 公司 ID、服务 UUID、GAP 外观值以及 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 年前的桥接器通过 `--wifiindex` / `--btindex` 将 ECS 1.5 文档写入操作员命名的索引。新桥接器将 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` | 未更改        | 跳过引导。                                       |
| `--elasticserver`, `--sparrowagent`, `--sparrowport`, `--wifiinterface`, `--scandelay` | 未更改 | |

像这样的旧调用:```bash
./sparrow-elastic.py --elasticserver=http://user:pass@host:9200 \
                     --wifiinterface=wlan1 \
                     --wifiindex=sparrowwifi-home \
                     --btindex=sparrowbt-home

仍能解析并运行—但桥接器现在拒绝写入一个预先存在的索引,其映射不包含 ECS 8.17 架构标记,退出时提供三种修复选项(使用不同的别名、擦除并重新引导、或运行旧版桥接器)。对于全新安装,只需去掉 --wifiindex / --btindex 并接受新的默认值。


无人机/漫游车操作

远程代理可以部署在安装在无人机或漫游车上的树莓派上,用于移动无线勘测。已在配备 GPS 并通过 MAVLink 集成的 Solo 3DR 无人机上测试。

自主记录```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 indicators (Raspberry Pi):
1. Both off &mdash; Initializing
2. Red heartbeat &mdash; GPS present, not synchronized
3. Red solid &mdash; GPS synchronized
4. Green solid &mdash; Agent ready, serving requests

Recordings can be retrieved via the Sparrow-WiFi GUI's agent management interface.

### Pi Setup Notes

- Use Raspberry Pi OS (Bookworm or later) with Python 3.8+
- Disable the onboard WiFi to enable 5 GHz scanning with USB adapters: add `dtoverlay=disable-wifi` to `/boot/firmware/config.txt` on Bookworm and later, or `/boot/config.txt` on older releases
- Install prerequisites: `sudo pip3 install --break-system-packages -r requirements.txt` (or use a venv as in the [Installation](#installation) section)

---

## Project Structure```
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 文件。

下载工具
动词路径用途
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 广播扫描标准蓝牙适配器正在主动广播的LE设备
混杂模式扫描Ubertooth One + Blue Hydra范围内所有BLE和经典BT设备
iBeacon 广播标准蓝牙适配器广播自己的iBeacons
RemoteID 扫描标准蓝牙适配器符合FAA的无人机识别(仅限Sparrow DroneID)
标志用途
--port PORTHTTP监听端口
--allowedips IP1,IP2限制客户端连接
--staticcoord LAT,LON,ALT使用固定GPS坐标
--mavlinkgps 3dr从Solo 3DR无人机获取GPS
--recordinterface IFACE启动时自动录制(无头模式)
--userpileds使用树莓派LED显示状态
--sendannounceUDP广播用于代理发现