Clause de non-responsabilité
L'outil est toujours activement en construction. L'utilitaire de renifleur devrait bien fonctionner avec une bande passante de 125 kHz, alors n'hésitez pas à le tester. Veuillez noter que les fonctionnalités de transmission nécessitent plus de tests car je ne possède actuellement pas de passerelle Lorawan.
Si vous rencontrez des problèmes, n'hésitez pas à soulever un problème.
Lorattaque
Ce référentiel fournit une boîte à outils pour évaluer la sécurité du réseau Lorawan. Voici ce qu'il offre:
- Sniffing multicanal: capturez le trafic de Lorawan sur plusieurs canaux à l'aide d'un SDR (Radio définie par logiciel).
- Capture basée sur la session: créer et gérer les sessions. Des poignées de main capturées au sein d'une session sont automatiquement stockées pour une analyse plus approfondie.
- Dérivation des clés: dériver les clés cryptographiques des données de poignée capturées spécifiques à une session, permettant le décryptage des paquets appartenant à cette session.
- Compatibilité de Wireshark: les magasins ont capturé le trafic dans des fichiers PCAP avec un numéro DLT modifié, assurant une analyse transparente avec Wireshark.
- Test de vulnérabilité: rejouer des charges utiles spécifiques pour sonder pour les vulnérabilités connues de Lorawan lors des évaluations de sécurité.
- Guide d'attaque: Accédez aux descriptions détaillées des attaques et des guides étape par étape pour rationaliser votre processus de test.

Table des matières
- Installation
- Usage
- Session
- Renifleur
- Renifler
- Configurer
- Décodage et décryptage
- Stockage de paquets
- Analyseur
- Attaque
- Rejouer
- Paquets d'artisanat
- Sortie
Installation
Exigences:
- Système Linux (testé avec Ubuntu, Debian)
- Radio défini par le logiciel USRP par ETTUS Research (testé avec B200, B205MINI)
1. Installez la radio et les dépendances GNU:
Suivez les instructions sur le Wiki radio GNU pour votre distribution Linux: https://wiki.gnuradio.org/index.php/installinggr
2. Installez les pilotes matériels USRP:
Ajouter le référentiel USRP de recherche ETTUS:
sudo add-apt-repository ppa:ettusresearch/uhd
sudo apt-get update
sudo apt-get install libuhd-dev uhd-host
3. Clone Le référentiel de boîte à outils d'attaque LORA:
git clone https://github.com/konicst1/lorattack.git
4. Installer les dépendances:
Accédez au répertoire de la boîte à outils et à l'installation des dépendances:
cd lorattack
source venv/bin/activate
pip install -r requirements.txt
sudo apt-get update
sudo apt-get install bittwist
Installez également les bibliothèques GR-Lora depuis:
- https://github.com/rpp0/gr-lora
- https://github.com/tapparelj/gr-lora_sdr
5. Mettre à jour les chemins Python (si vous utilisez un environnement virtuel):
Cette étape garantit que l'environnement virtuel peut accéder à Gnuradio installé en dehors de l'environnement.
export PYTHONPATH=/usr/local/lib/python3.10/dist-packages:/usr/lib/python3.10/site-packages: $PYTHONPATH
export PYTHONPATH= " /usr/lib/python3/dist-packages: $PYTHONPATH "
# Update library path (if necessary)
export LD_LIBRARY_PATH=/usr/local/lib: $LD_LIBRARY_PATH
Remarque: Remplacez /usr/local/lib/python3.10 par le chemin réel vers votre répertoire d'installation Python 3 s'il est différent. Ajustez la mise à jour du chemin de la bibliothèque ( export LD_LIBRARY_PATH... ) uniquement si vous rencontrez des problèmes liés aux bibliothèques manquantes.
6. Exécutez la boîte à outils d'attaque LORA:
Remarque: reportez-vous à la documentation de la boîte à outils (si disponible) pour des instructions d'utilisation détaillées.
Usage
Session
- Nouvelle session: créez une nouvelle session avec un nom descriptif chaque fois que vous commencez à renifler le trafic de Lorawan. Cela garantit que chaque capture a son propre ensemble de clés de décryptage plus tard.
- Choisissez la session: sélectionnez une session existante pour l'activer pour une analyse plus approfondie ou des attaques de relecture. Lorattack utilise des données de poignée de main de la session choisie pour dériver des clés de déchiffrement spécifiques à cette capture.
Les séances distinctes sont importantes pour le déchiffrement. Chaque session dans Lorattack extrait les données de poignée de main pour dériver des clés uniques pour les paquets capturés dans cette session, permettant une analyse détaillée.
Pour modifier les données de session, modifiez le fichier session / data / <ession_name> /data.json .
Renifleur
Le renifleur de Lorattack capture le trafic de Lorawan sur plusieurs canaux autour d'une fréquence centrale spécifiée, permettant le décodage et le décryptage en temps réel (si des clés sont disponibles).

- Sniff: Ce sous-menu vous permet de capturer le trafic de Lorawan:
- Sniff Up / Down Link (Bidirectional): commence à capturer le trafic de liaison montante (périphériques sur le réseau) et de liaison down link (réseau vers les appareils). Remarque: la capture bidirectionnelle peut entraîner des paquets en double si les mêmes données sont envoyées dans les deux sens.
- Sniff Link: commence à ne capturer que le trafic de liaison montante.
- Sniffon lien: commence à ne capturer que le trafic de liaison descendante.
- Configurer: ce sous-menu vous permet de modifier le fichier de configuration de Sniffer (
config/sniffer.config ) qui définit les paramètres de capture:- Fréquence (fréquence centrale): spécifiez la fréquence centrale (par exemple, "868.6e6") pour le reniflement. Lorattack capturera également les canaux autour de cette fréquence centrale en fonction de la bande passante choisie.
- Bande passante: Définissez la bande passante du canal (par exemple, "125000") pour définir la plage de fréquences capturées autour de la fréquence centrale.
- Taux d'échantillonnage: Définissez le taux d'échantillonnage (par exemple, "1000000") pour le matériel SDR.
- Facteur d'étalement: spécifiez le facteur d'écart (7 - 12) utilisé par le réseau Lorawan (affecte le débit de données et la plage).
- Gain (DB): Réglez le gain (par exemple, "10 dB") de l'antenne SDR pour ajuster la force du signal.
Décodage et décryptage:
- Les paquets capturés sont décodés en temps réel, fournissant des informations sur la structure de communication de Lorawan.
- Le décryptage est possible et effectué automatiquement si des clés cryptographiques sont présentes dans le fichier de configuration de session:
- Les clés peuvent être spécifiées manuellement.
- Les clés peuvent être dérivées automatiquement si la demande d'adhésion et la jointure d'accepter les messages sont capturées dans (Appkey doit être configuré manuellement)

Stockage des paquets:
- Tous les paquets reniflés sont stockés au format PCAP dans le répertoire actuel de la session.
- Les PCAP avec le préfixe Wireshark ont l'en-tête UDP dépouillé et DLT est défini sur Lorawan (147) pour une analyse facile avec Wireshark.
Analyseur
Le sous-menu Analyzer affiche une liste de fichiers PCAP associés à votre session active. La sélection d'un fichier PCAP déclenche un processus d'analyse:

- Analyse du trafic: L'analyseur examine la structure des paquets et décode la communication Lorawan et met à jour les valeurs de session si des messages de demande / acceptation sont trouvés.
- Décription (le cas échéant): Si la configuration de session contient les clés cryptographiques nécessaires (NWKSKE et AppsKey), l'analyseur tente de déchiffrer les charges utiles des paquets.
Attaque

Rejouer:
- À partir de PCAP: sélectionnez un fichier PCAP (contenant des paquets capturés) dans les options répertoriées pour rejouer une séquence de paquets.
- Modifier la séquence de relecture: modifier manuellement la séquence de paquets du PCAP choisi à rejouer.
Paquets d'artisanat:
- Spoof Join Demande: Crame un message de demande de jointure basé sur les valeurs de la session actuelle (Joineui, Deveui) et la transmet avec SDR. Si certains d'entre eux ne sont pas présents, des valeurs par défaut sont appliquées. Appkey / nwkkey est nécessaire pour calculer le micro.
- SPOOF JOIN ACCEPT: Crade un message de demande de jointure en fonction des valeurs de la session actuelle (NetID, Devaddr) et le transmet avec SDR. Si certains d'entre eux ne sont pas présents, des valeurs par défaut sont appliquées. Appkey / nwkkey est nécessaire pour calculer le micro et le cryptage.
- Spoof ACK Message: Crafts et ACK Message basé sur les valeurs des données de session (DevADDR, FCNT est défini sur 0xFFF0 sur de bonnes chances pour DOS) et les transmet avec SDR. NWKSKE est requis pour le calcul du micro.
Configurer l'émetteur: reportez-vous à la section de configuration de renifleur pour plus de détails sur la configuration des paramètres de l'émetteur utilisés lors des attaques de relecture (par exemple, fréquence, gain).
Consignes de simulation d'attaque
TBD