mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
95 lines
8.6 KiB
Markdown
95 lines
8.6 KiB
Markdown
# Low-Power Wide Area Network
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
## Introduction
|
||
|
||
**Low-Power Wide Area Network** (LPWAN) — це група бездротових, низькопотужних, широкосмугових технологій, призначених для **дальніх комунікацій** з низькою швидкістю передачі даних. Вони можуть досягати більше **шісти миль**, а їх **батареї** можуть працювати до **20 років**.
|
||
|
||
Long Range (**LoRa**) наразі є найбільш розгорнутим фізичним рівнем LPWAN, а його відкрита специфікація MAC-рівня — **LoRaWAN**.
|
||
|
||
---
|
||
|
||
## LPWAN, LoRa та LoRaWAN
|
||
|
||
* LoRa – фізичний рівень Chirp Spread Spectrum (CSS), розроблений компанією Semtech (приватний, але задокументований).
|
||
* LoRaWAN – відкритий MAC/мережевий рівень, що підтримується LoRa-Alliance. Версії 1.0.x та 1.1 є поширеними в полі.
|
||
* Типова архітектура: *кінцевий пристрій → шлюз (пакетний пересилальник) → мережевий сервер → сервер додатків*.
|
||
|
||
> **Модель безпеки** базується на двох кореневих ключах AES-128 (AppKey/NwkKey), які генерують сеансові ключі під час процедури *приєднання* (OTAA) або закодовані (ABP). Якщо будь-який ключ витече, зловмисник отримує повний доступ на читання/запис відповідного трафіку.
|
||
|
||
---
|
||
|
||
## Підсумок поверхні атаки
|
||
|
||
| Рівень | Слабкість | Практичний вплив |
|
||
|-------|----------|------------------|
|
||
| PHY | Реактивне / селективне глушіння | 100 % втрата пакетів, продемонстрована з одним SDR та <1 Вт виходу |
|
||
| MAC | Повторення Join-Accept та data-frame (повторне використання nonce, обертання лічильника ABP) | Спуфінг пристроїв, ін'єкція повідомлень, DoS |
|
||
| Мережевий сервер | Небезпечний пакетний пересилальник, слабкі фільтри MQTT/UDP, застаріле прошивання шлюзів | RCE на шлюзах → перехід в OT/IT мережу |
|
||
| Додаток | Жорстко закодовані або передбачувані AppKeys | Брутфорс/дешифрування трафіку, видавання за сенсори |
|
||
|
||
---
|
||
|
||
## Останні вразливості (2023-2025)
|
||
|
||
* **CVE-2024-29862** – *ChirpStack gateway-bridge & mqtt-forwarder* приймали TCP пакети, які обходили правила станового брандмауера на шлюзах Kerlink, що дозволяло вразливість віддаленого управлінського інтерфейсу. Виправлено в 4.0.11 / 4.2.1 відповідно.
|
||
* **Dragino LG01/LG308 series** – Багато CVE 2022-2024 (наприклад, 2022-45227 перехід по директоріях, 2022-45228 CSRF) все ще спостерігаються без виправлень у 2025 році; дозволяють неавтентифікований дамп прошивки або перезапис конфігурації на тисячах публічних шлюзів.
|
||
* Переповнення *пакетного пересилальника UDP* Semtech (неопубліковане повідомлення, виправлено 2023-10): створений uplink більше 255 B викликав переповнення стеку ‑> RCE на референсних шлюзах SX130x (виявлено на Black Hat EU 2023 “LoRa Exploitation Reloaded”).
|
||
|
||
---
|
||
|
||
## Практичні техніки атаки
|
||
|
||
### 1. Перехоплення та дешифрування трафіку
|
||
```bash
|
||
# Capture all channels around 868.3 MHz with an SDR (USRP B205)
|
||
python3 lorattack/sniffer.py \
|
||
--freq 868.3e6 --bw 125e3 --rate 1e6 --sf 7 --session smartcity
|
||
|
||
# Bruteforce AppKey from captured OTAA join-request/accept pairs
|
||
python3 lorapwn/bruteforce_join.py --pcap smartcity.pcap --wordlist top1m.txt
|
||
```
|
||
### 2. OTAA join-replay (повторне використання DevNonce)
|
||
|
||
1. Захопіть легітимний **JoinRequest**.
|
||
2. Негайно повторно передайте його (або збільшіть RSSI) перед тим, як оригінальний пристрій знову передасть дані.
|
||
3. Сервер мережі виділяє новий DevAddr та ключі сесії, поки цільовий пристрій продовжує використовувати стару сесію → атакуючий володіє вільною сесією і може вводити підроблені uplink.
|
||
|
||
### 3. Зниження адаптивної швидкості передачі даних (ADR)
|
||
|
||
Примусьте SF12/125 kHz збільшити час ефіру → вичерпайте цикл обов'язків шлюзу (відмова в обслуговуванні), зберігаючи низький вплив на батарею атакуючого (просто надсилайте команди MAC на рівні мережі).
|
||
|
||
### 4. Реактивне глушіння
|
||
|
||
*HackRF One*, що працює з GNU Radio flowgraph, активує широкосмуговий сигнал, коли виявляється преамбула – блокує всі фактори розповсюдження з ≤200 мВт TX; повне відключення вимірюється на відстані 2 км.
|
||
|
||
---
|
||
|
||
## Наступальні інструменти (2025)
|
||
|
||
| Інструмент | Призначення | Примітки |
|
||
|------------|-------------|----------|
|
||
| **LoRaWAN Auditing Framework (LAF)** | Створення/парсинг/атака на LoRaWAN фрейми, аналізатори на базі БД, брутфорсер | Docker-образ, підтримує Semtech UDP вхід |
|
||
| **LoRaPWN** | Утиліта Trend Micro на Python для брутфорсу OTAA, генерації downlink, розшифровки навантажень | Демонстрація випущена 2023, SDR-агностична |
|
||
| **LoRAttack** | Багатоканальний sniffing + повтор з USRP; експортує PCAP/LoRaTap | Хороша інтеграція з Wireshark |
|
||
| **gr-lora / gr-lorawan** | Блоки GNU Radio OOT для базової передачі/прийому | Основи для кастомних атак |
|
||
|
||
---
|
||
|
||
## Рекомендації щодо захисту (чек-лист для пентестера)
|
||
|
||
1. Вибирайте **OTAA** пристрої з дійсно випадковим DevNonce; моніторте дублікати.
|
||
2. Впроваджуйте **LoRaWAN 1.1**: 32-бітні лічильники кадрів, відмінні FNwkSIntKey / SNwkSIntKey.
|
||
3. Зберігайте лічильник кадрів у пам'яті з непостійним доступом (**ABP**) або переходьте на OTAA.
|
||
4. Впроваджуйте **secure-element** (ATECC608A/SX1262-TRX-SE) для захисту кореневих ключів від витоку прошивки.
|
||
5. Вимкніть порти для віддаленого UDP-пакетного пересилання (1700/1701) або обмежте їх за допомогою WireGuard/VPN.
|
||
6. Тримайте шлюзи в актуальному стані; Kerlink/Dragino надають патчі 2024 року.
|
||
7. Реалізуйте **виявлення аномалій трафіку** (наприклад, аналізатор LAF) – позначайте скидання лічильників, дубльовані приєднання, раптові зміни ADR.
|
||
|
||
## Посилання
|
||
|
||
* LoRaWAN Auditing Framework (LAF) – [https://github.com/IOActive/laf](https://github.com/IOActive/laf)
|
||
* Огляд Trend Micro LoRaPWN – [https://www.hackster.io/news/trend-micro-finds-lorawan-security-lacking-develops-lorapwn-python-utility-bba60c27d57a](https://www.hackster.io/news/trend-micro-finds-lorawan-security-lacking-develops-lorapwn-python-utility-bba60c27d57a)
|
||
{{#include ../../banners/hacktricks-training.md}}
|