Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
laf — Ce projet a pour but de fournir une série d'outils pour fabriquer, parser, envoyer, analyser et casser un ensemble de paquets LoRaWAN afin d'auditer ou de tester la sécurité d'une infrastructure LoRaWAN. | Kitploit
Outils/GitHubGitHub/ioactive/laf
Sniffing et Analyse de PaquetsSécurité IoTAnalyse des VulnérabilitésExploitationFuzzingSécurité Sans FilCryptographieTests d'Intrusion
GitHubioactive/laf

laf

Ce projet a pour but de fournir une série d'outils pour fabriquer, parser, envoyer, analyser et casser un ensemble de paquets LoRaWAN afin d'auditer ou de tester la sécurité d'une infrastructure LoRaWAN.

1873754il y a 4 ansVérifié par Kitploit
Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Cadre d'Audit LoRaWAN - VERSION ALPHA

Les déploiements IoT ne cessent de croître et une partie de cette croissance significative est composée de millions de capteurs LPWAN (réseau à faible consommation et longue portée) déployés dans des centaines de villes (Smart Cities) à travers le monde, ainsi que dans les industries et les foyers. L'une des technologies LPWAN les plus utilisées est LoRa, dont LoRaWAN est le standard réseau (couche MAC). LoRaWAN est un protocole sécurisé avec chiffrement intégré, mais les problèmes d'implémentation et les faiblesses affectent la sécurité de la plupart des déploiements actuels.

Ce projet vise à fournir une série d'outils pour fabriquer, analyser, envoyer, analyser et casser un ensemble de paquets LoRaWAN afin d'auditer ou de tester la sécurité d'une infrastructure LoRaWAN.

Ci-dessous, la structure de ce dépôt :

|-- tools 
    |-- UdpSender.py
    |-- UdpProxy.py
    |-- TcpProxy.py
    |-- lorawan
        |-- BruteForcer.py
        |-- MicGenerator.py
        |-- PacketCrafter.py
        |-- PacketParser.py
        |-- SessionKeysGenerator.py 
        |-- Loracrack (https://github.com/matiassequeira/Loracrack/tree/master) 
    |-- utils
        |-- DevAddrChanger.py
        |-- Fuzzer.py    
        |-- FileLogger.py
|-- auditing
    |-- datacollectors
        |-- MqttCollector.py
        |-- UdpForwarderProxy.py
    |-- analyzers
        |-- LafProcessData.py
        |-- bruteForcer
            |-- LafBruteforcer.py
            |-- keys
        |-- dataanalysis
            |-- LafPacketAnalysis.py
        |-- printer
            |-- LafPrinter.py
    |-- db
        |-- __init__.py
        |-- Models.py
        |-- Service.py
|-- lorawanwrapper 
        |-- LorawanWrapper.py
        |-- utils 
            |-- jsonUnmarshaler.go
            |-- lorawanWrapper.go
            |-- micGenerator.go
            |-- sessionKeysGenerator.go
|-- scripts
    |-- gateway_channel_changer
        |-- LoRa-GW-Installer.sh
        |-- Continuous-Channel-Switch.sh
        |-- LoRa-GW-Channel-Setup.sh

Pour commencer

Nous proposons différentes options pour mettre en place votre Cadre d'Audit LoRaWAN :

  1. La première est destinée à ceux qui souhaitent l'installer localement. Nous recommandons cette option si votre objectif principal est d'utiliser les outils de test d'intrusion situés dans le répertoire tools/, afin d'éviter les problèmes de mappage de ports avec Docker.
  2. L'autre option est destinée à ceux qui souhaitent l'exécuter dans un conteneur Docker, évitant ainsi d'installer manuellement les dépendances. Nous recommandons cette option si vous souhaitez utiliser les analyseurs et que vous n'avez pas beaucoup de temps pour configurer manuellement l'environnement.
  3. Bien sûr, vous pouvez exécuter LAF localement et utiliser la base de données Postgres depuis le conteneur Docker au lieu de sqlite ;). LAF essaiera de se connecter à Postgres via localhost. Voir les instructions ci-dessous pour configurer Docker.

Installer LAF dans votre environnement local

Ces instructions vous permettront d'obtenir une copie du projet et de ses dépendances sur votre machine locale. Les commandes ci-dessous sont pour un environnement basé sur Debian :

  1. Clonez ce dépôt : git clone --recurse-submodules https://github.com/IOActive/laf.git

  2. Installez python3 :

    1. sudo apt-get update
    2. sudo apt-get install python3.6
  3. Téléchargez et installez les dépendances Python :

    1. sudo pip3 install paho-mqtt && sudo pip3 install sqlalchemy && sudo pip3 install psycopg2-binary &&sudo pip3 install python-dateutil
  4. Définissez PYTHONPATH et ENVIRONMENT

    1. cd laf && export PYTHONPATH=$(pwd) && export ENVIRONMENT='DEV'
  5. Installez et configurez golang :

    1. Téléchargez golang depuis https://golang.org/dl/ selon votre système d'exploitation.
    2. Déplacez-vous dans le dossier où le programme d'installation de go a été téléchargé : cd ~/Downloads
    3. Décompressez l'installateur : sudo tar -C /usr/local -xvzf VOTRE_FICHIER_GOLANG
    4. Exportez vers PATH : export PATH=$PATH:/usr/local/go/bin
    5. Définissez GOPATH : export GOPATH="$HOME/go"
  6. Compilez la bibliothèque go :

    1. cd laf/lorawanwrapper/utils
    2. go build -o lorawanWrapper.so -buildmode=c-shared jsonUnmarshaler.go lorawanWrapper.go micGenerator.go sessionKeysGenerator.go hashGenerator.go
  7. Selon la base de données que vous souhaitez utiliser :

    a. PostgreSQL : Suivez les instructions 'Installer LAF en utilisant Docker' jusqu'à la 3ème étape.

    b. SQLite :

    1. cd laf/auditing/db
    2. Modifiez __init__.py avec votre éditeur de texte préféré et commentez les lignes à utiliser avec Postgres (connexion DB et variables d'environnement) et décommentez la ligne à utiliser avec sqlite.

Et voilà !

Installer LAF en utilisant Docker

Cette approche évite de gérer l'installation des dépendances et démarre une base de données PostgreSQL où les outils enregistrent les paquets et les données. Conteneurs :

  • Tools.
  • PostgreSQL.
  • PgAdmin4.

Étapes :

  1. Clonez ce dépôt : git clone https://github.com/IOActive/laf.git
  2. Allez dans cd laf/
  3. Démarrez les conteneurs : docker-compose up --build
  4. Si vous souhaitez utiliser les outils dans le conteneur docker exec -ti laf_tools_1 /bin/bash
  5. Profitez !

Connexion à la base de données pgAdmin

Vous pouvez vérifier les données dans la base de données en utilisant pgAdmin :

Tout d'abord, accédez à pgAdmin :

  • URL : http://localhost:5001
  • Utilisateur : pgadmin
  • Mot de passe : pgadmin

Ensuite, vous devez ajouter le serveur :

  • Hôte : db
  • Port : 5432
  • Utilisateur : postgres
  • Mot de passe : postgres

Description des outils

Voici la description des répertoires et des outils/fonctions qu'ils contiennent.

/tools

L'objectif principal des outils fournis dans ce répertoire est de faciliter l'exécution d'un test d'intrusion sur une infrastructure LoRaWAN.

UdpSender.py

Cet outil est destiné à envoyer des paquets montants (vers le serveur réseau ou la passerelle bridge, selon l'infrastructure) ou des paquets descendants (vers le packet-forwarder). Optionnellement, les paquets peuvent être fuzzés et un MIC valide peut être calculé.

Arguments optionnels :

-h, --help            show this help message and exit
--lcl-port LCL_PORT   Source port, eg. --lcl-port=623.
--timeout TIMEOUT     Time in seconds between every packet sent. Default is
                        1s. In this time, the sender will listen for replies.
--repeat              Send message/s multiple times
--fuzz-out FUZZ_OUT [FUZZ_OUT ...]
                        Fuzz data sent to dest port (see fuzzing modes in
                        utils/fuzzer.py), eg. --fuzz-out 1 2.
--key KEY             Enter the key (in hex format, a total of 32 characters
                        / 16 bytes) to sign packets (calculate and add a new
                        MIC). Note that for JoinRequests it must be the
                        AppKey, and the NwkSKey for Data packets. This cannot
                        be validated beforehand by this program. eg.
                        00112233445566778899AABBCCDDEEFF
-a DEVADDR, --devaddr DEVADDR
                        DeviceAddress to impersonate, given in hex format (8
                        characters total), eg. AABB0011.
--fcnt FCNT           The frame counter to be set in the given data packet.
                        This wouldn't work in a JoinRequest/JoinAccept since
                        this packets don't have a fCnt

Arguments obligatoires :

Télécharger l’outil