Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
laf — Questo progetto intende fornire una serie di strumenti per creare, analizzare, inviare, esaminare e decifrare un insieme di pacchetti LoRaWAN al fine di effettuare audit o test di penetrazione sulla sicurezza di un'infrastruttura LoraWAN. | Kitploit
Strumenti/GitHubGitHub/ioactive/laf
Sniffing e Analisi dei PacchettiSicurezza IoTAnalisi delle VulnerabilitàExploitFuzzingSicurezza WirelessCrittografiaPenetration Testing
GitHubioactive/laf

laf

Questo progetto intende fornire una serie di strumenti per creare, analizzare, inviare, esaminare e decifrare un insieme di pacchetti LoRaWAN al fine di effettuare audit o test di penetrazione sulla sicurezza di un'infrastruttura LoraWAN.

18737544 anni faRevisionato da Kitploit
Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

LoRaWAN Auditing Framework - VERSIONE ALFA

Le implementazioni IoT continuano a crescere e una parte di questa significativa crescita è composta da milioni di sensori LPWAN (low-power wide-area network) distribuiti in centinaia di città (Smart Cities) in tutto il mondo, oltre che in industrie e case. Una delle tecnologie LPWAN più utilizzate è LoRa, per la quale LoRaWAN è lo standard di rete (livello MAC). LoRaWAN è un protocollo sicuro con crittografia integrata, ma problemi di implementazione e debolezze influenzano la sicurezza della maggior parte delle implementazioni attuali.

Questo progetto intende fornire una serie di strumenti per creare, analizzare, inviare, analizzare e decifrare un insieme di pacchetti LoRaWAN al fine di verificare la sicurezza di un'infrastruttura LoRaWAN.

Di seguito, la struttura di questo repository:

|-- 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

Per Iniziare

Forniamo diverse opzioni per avere il tuo LoraWAN Auditing Framework funzionante:

  1. La prima è per coloro che vogliono installarlo localmente. Raccomandiamo questa opzione se il tuo obiettivo principale è utilizzare gli strumenti di penetration testing situati nella directory tools/, per evitare problemi con il mapping delle porte di Docker.
  2. L'altra opzione è per coloro che vogliono eseguirlo in un container Docker, evitando così di dover installare manualmente le dipendenze. Raccomandiamo questa opzione se intendi utilizzare gli analizzatori e non hai molto tempo per configurare manualmente l'ambiente.
  3. Ovviamente, puoi eseguire LAF localmente e utilizzare il database Postgres dal container Docker invece di sqlite ;). LAF proverà a connettersi a Postgres tramite localhost. Vedi le istruzioni sotto per configurare Docker.

Installare LAF nel proprio ambiente locale

Queste istruzioni ti permetteranno di ottenere una copia del progetto e delle sue dipendenze sulla tua macchina locale. I comandi seguenti sono per un ambiente basato su Debian:

  1. Clona questo repository: git clone --recurse-submodules https://github.com/IOActive/laf.git

  2. Installa python3:

    1. sudo apt-get update
    2. sudo apt-get install python3.6
  3. Scarica e installa le dipendenze python:

    1. sudo pip3 install paho-mqtt && sudo pip3 install sqlalchemy && sudo pip3 install psycopg2-binary &&sudo pip3 install python-dateutil
  4. Imposta PYTHONPATH e ENVIRONMENT

    1. cd laf && export PYTHONPATH=$(pwd) && export ENVIRONMENT='DEV'
  5. Installa e configura golang:

    1. Scarica golang da https://golang.org/dl/ a seconda del tuo sistema operativo.
    2. Spostati nella cartella dove è stato scaricato l'installer go: cd ~/Downloads
    3. Decomprimi l'installer: sudo tar -C /usr/local -xvzf YOUR_GOLANG_FILE
    4. Esporta in PATH: export PATH=$PATH:/usr/local/go/bin
    5. Imposta GOPATH: export GOPATH="$HOME/go"
  6. Compila la libreria 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. A seconda del DB che desideri utilizzare:

    a. PostgreSQL: Segui le istruzioni 'Installare LAF usando Docker' fino al 3° passaggio.

    b. SQLite:

    1. cd laf/auditing/db
    2. Modifica __init__.py con il tuo editor di testo preferito e commenta le righe da utilizzare con Postgres (connessione DB e variabili d'ambiente) e decommenta la riga da utilizzare con sqlite.

Ed è tutto!

Installare LAF usando Docker

Questo approccio evita di gestire l'installazione delle dipendenze e avvia un database PostgreSQL dove gli strumenti salvano pacchetti e dati. Contenitori:

  • Tools.
  • PostgreSQL.
  • PgAdmin4.

Passaggi:

  1. Clona questo repository: git clone https://github.com/IOActive/laf.git
  2. Vai a cd laf/
  3. Avvia i contenitori: docker-compose up --build
  4. Se desideri utilizzare gli strumenti all'interno del contenitore docker exec -ti laf_tools_1 /bin/bash
  5. Goditi!

Connessione al database pgAdmin

Puoi controllare i dati nel DB usando pgAdmin:

Prima, accedi a pgAdmin:

  • URL: http://localhost:5001
  • Utente: pgadmin
  • Password: pgadmin

Poi, devi aggiungere il server:

  • Host: db
  • Porta: 5432
  • Utente: postgres
  • Password: postgres

Descrizione degli strumenti

Ecco la descrizione delle directory e degli strumenti/funzioni al loro interno.

/tools

Lo scopo principale degli strumenti forniti in questa directory è facilitare l'esecuzione di un penetration test su un'infrastruttura LoRaWAN.

UdpSender.py

Questo strumento è progettato per inviare pacchetti uplink (al server di rete o al gatewayBridge, a seconda dell'infrastruttura) o pacchetti downlink (al packet-forwarder). Opzionalmente, i pacchetti possono essere fuzzati e può essere calcolato un MIC valido.

Argomenti opzionali:

-h, --help            mostra questo messaggio di aiuto ed esce
--lcl-port LCL_PORT   Porta di origine, es. --lcl-port=623.
--timeout TIMEOUT     Tempo in secondi tra ogni pacchetto inviato. Default è
                        1s. In questo tempo, il mittente ascolterà le risposte.
--repeat              Invia il/i messaggio/i più volte
--fuzz-out FUZZ_OUT [FUZZ_OUT ...]
                        Fuzza i dati inviati alla porta di destinazione (vedi
                        modalità di fuzzing in utils/fuzzer.py), es. --fuzz-out 1 2.
--key KEY             Inserisci la chiave (in formato esadecimale, un totale di 32 caratteri
                        / 16 byte) per firmare i pacchetti (calcola e aggiungi un nuovo
                        MIC). Nota che per JoinRequest deve essere AppKey,
                        e NwkSKey per i pacchetti Data. Questo non può
                        essere validato a priori da questo programma. es.
                        00112233445566778899AABBCCDDEEFF
-a DEVADDR, --devaddr DEVADDR
                        DeviceAddress da impersonare, fornita in formato esadecimale (8
                        caratteri totali), es. AABB0011.
--fcnt FCNT           Il contatore di frame da impostare nel pacchetto dati dato.
                        Questo non funzionerebbe in un JoinRequest/JoinAccept poiché
                        questi pacchetti non hanno un fCnt

Argomenti obbligatori:

Scarica lo strumento