Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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
riotpot — Honeypot per IoT e Tecnologia Operativa | Kitploit
Strumenti/GitHubGitHub/aau-network-security/riotpot
Strumenti DifensiviSicurezza IoTSicurezza SCADA/ICSRaccolta InformazioniSicurezza di Rete
GitHubaau-network-security/riotpot

riotpot

Honeypot per IoT e Tecnologia Operativa

Vedi Repository
105282 anni faRevisionato da Kitploit

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
📢 ATTENZIONE!!!
Questo repository è stato spostato su The Honeynet Project :)

RIoTPot

Stato di GitHub Actions

RIoTPot è un honeypot a interazione ibrida, focalizzato principalmente sull'emulazione di protocolli IoT e OT, sebbene sia anche in grado di emulare altri servizi. In sostanza, RIoTPot funge da servizio proxy per altri honeypot inclusi nel sistema. Pertanto, puoi eseguire qualsiasi honeypot e altri servizi insieme a RIoTPot. Inoltre, è disponibile un'applicazione web UI che puoi utilizzare per gestire il tuo instradamento.

L'honeypot viene fornito con diversi servizi a bassa interazione pronti all'uso. Poiché questi servizi sono scritti come plugin, sono supportati solo su Linux; tuttavia, puoi avviare RIoTPot senza di essi. La tabella seguente contiene l'elenco dei servizi inclusi in RIoTPot per impostazione predefinita, la loro porta interna e la porta proxy.

Indice

  • RIoTPot
    • 1. Architettura
    • 2. Come usare RIoTPot
    • 3. Comandi

1. Architettura

L'architettura di RIoTPot si basa su connessioni proxy verso servizi interni e circostanti (o esterni) (ad esempio, honeypot, servizi completi, container, host remoti, ecc.). A tal fine, l'honeypot gestisce un certo numero di proxy definiti dall'utente che inoltrano le connessioni tra servizi e RIoTPot 1. In questo modo, RIoTPot può decidere come e dove instradare gli attacchi in arrivo. La logica utilizzata per determinare come gestire l'attacco in arrivo è implementata sotto forma di middleware 2. Per gestire servizi, middleware e proxy, RIoTPot è dotato di una REST API 3 e di un'interfaccia webapp UI 4 già pronti all'uso. L'interfaccia utente è accessibile tramite il browser all'indirizzo localhost:2022 e puoi interagire con gli endpoint API all'indirizzo localhost:2022/api/swagger che mostra un'interfaccia Swagger.

Figura 1 mostra l'architettura di RIoTPot, incluse le due applicazioni principali che lo costituiscono (RIoTPot stesso e RIoTPot UI) e i loro componenti, e una sezione per racchiudere servizi esterni (o adiacenti).

Figura 1. Architettura di RIoTPot, che include l'applicazione principale, i servizi esterni e l'app web UI per gestire le istanze di RIoTPot.

RIoTPot è scritto in Golang5. Ogni istanza di RIoTPot espone proxy registrati (in base alla loro porta) su richiesta. Per servire un proxy, deve avere un servizio associato e la porta proxy deve essere disponibile (attualmente, RIoTPot non accetta più servizi in esecuzione sulla stessa porta). Quando un proxy è stato associato e servito, gli aggressori saranno in grado di inviare messaggi a RIoTPot su quella porta, inoltrando i messaggi al servizio associato e viceversa all'aggressore6.

Per facilità di accesso, più istanze di RIoTPot possono essere gestite dall'app web RIoTPot UI. Oltre a gestire i proxy registrati in ciascuna istanza, l'interfaccia utente consente di creare, utilizzare e modificare i profili. Ogni profilo contiene un certo numero di proxy denominati in base a protocolli o altri servizi, facendo sì che un'istanza di RIoTPot assomigli a un dispositivo reale (ad esempio, un assistente domestico). In poche parole, i profili accelerano il processo di configurazione e provisioning di un'istanza di RIoTPot con configurazioni specifiche. L'interfaccia utente è scritta utilizzando la libreria front-end React JavaScript (usiamo Typescript per questo progetto) e la libreria di gestione dello stato Recoil. Poiché RIoTPot è piuttosto piccolo, al momento non utilizza un database.

2. Come usare RIoTPot

Eseguire RIoTPot è relativamente semplice. In generale, hai tre opzioni. La prima è scaricare una release di RIoTPot; puoi scegliere di scaricare l'ultima release o una precedente. La seconda opzione è compilare il progetto da solo. L'ultima opzione è utilizzare il codice sorgente per creare un container Docker con RIoTPot e alcune applicazioni aggiuntive per potenziare l'honeypot.

Usare una versione di rilascio

Info: Questa guida è pensata per utenti senza esigenze particolari, che desiderano un'esperienza semplice e pronta all'uso.

Ogni release si presenta in una cartella denominata riotpot con un binario eseguibile (anch'esso) chiamato riotpot e una cartella plugins piena di vari servizi (o honeypot a bassa interazione). È importante mantenere la struttura interna delle cartelle affinché RIoTPot funzioni correttamente.

root@kitploit:~
📁 riotpot
    ┕ riotpot
    ┕ 📁 plugins

  1. Per prima cosa, scarica la release che preferisci dalla pagina delle release. Scegli quella adatta al tuo sistema operativo (OS).
  2. Estrai la cartella riotpot.
  3. Esegui il binario riotpot. Questo avvierà RIoTPot con l'API abilitata, tutti i plugin pronti all'uso e il server UI.
    • L'API e l'UI sono accessibili tramite l'indirizzo localhost:2022
Compila da te

Info: Questa guida è pensata per utenti avanzati che si trovano a proprio agio in ambienti di sviluppo.

Requisiti
  • Golang - Necessario per compilare il progetto
  • Node - Necessario per compilare l'UI

Opzionali:

  • Git - Utilizzato per scaricare il codice sorgente
  • Make - Per eseguire comandi già pronti

  1. Scarica il codice sorgente di RIoTPot da GitHub. Apri una console e digita la seguente riga.

    root@kitploit:~
    git clone [email protected]:aau-network-security/riotpot.git
    
  2. Naviga nella cartella in cui hai scaricato il codice sorgente di RIoTPot e installa i pacchetti node richiesti.

    root@kitploit:~
    npm install
    
  3. Se hai installato Make, abbiamo incluso diversi helper di comando per assisterti nella compilazione del progetto. Per semplificare, puoi eseguire due semplici comandi che compileranno il binario di RIoTPot e i plugin (e li posizioneranno nella cartella corretta).

    root@kitploit:~
    # Compila il server
    make build-ui
    # Compila RIoTPot e i plugin
    make riotpot-build
    

NOTA: L'UI utilizza Vite per compilare il progetto. Se preferisci usare un altro compilatore, potresti dover apportare alcune modifiche da solo.

Docker (Virtualizzazione)

Info: Questa guida è pensata per utenti avanzati che preferiscono utilizzare RIoTPot in un ambiente virtuale.

Requisiti
  • Docker - Utilizzato per creare un'immagine di un'istanza di RIoTPot e del server UI.
  • Docker-compose - Utilizzato per creare un singolo container con un'istanza di RIoTPot, l'UI e altre applicazioni e servizi.

I principali vantaggi di utilizzare questa configurazione sono le funzionalità di sicurezza aggiuntive con modifiche minime alla configurazione del container e ai container stessi. Ad esempio, possiamo definire reti private virtuali separate e reti overlay per nascondere, isolare e incapsulare RIoTPot e altri servizi adiacenti. Inoltre, i container ci consentono di associare i servizi utilizzando il nome dell'indirizzo docker anziché il loro IP, il che è molto comodo. Infine, possiamo generare e arrestare container separati su richiesta senza influenzare altri servizi.

D'altra parte, la virtualizzazione è presumibilmente più impegnativa rispetto all'utilizzo di applicazioni su hardware reale. Sebbene una singola istanza di RIoTPot sia relativamente leggera, è importante considerare gli svantaggi introdotti dalla virtualizzazione e dall'emulazione hardware (ad esempio, ritardi di risposta).

Attenzione: Tecnicamente parlando, un aggressore dedicato potrebbe rendersi conto che RIoTPot è in realtà un honeypot analizzando e confrontando i ritardi di risposta introdotti dalla virtualizzazione rispetto ai server reali (!!). Sebbene questo tipo di fingerprinting degli honeypot sia stato studiato in precedenza, i risultati per i servizi Internet comuni sono ancora inconcludenti (ad esempio, HTTP, Telnet e SSH), a causa della mercificazione dei servizi di hosting cloud che utilizzano macchine virtuali e configurazioni dettagliate dei server.

Il file docker-compose include servizi aggiuntivi per migliorare l'esperienza di RIoTPot. La tabella seguente riassume l'elenco dei servizi e delle applicazioni inclusi in questo container.

Servizi

3. Comandi

RIoTPot è dotato di flag di comando che influenzano come e cosa viene avviato. Esempio:

root@kitploit:~
# Esegui RIoTPot senza l'ui
./riotpot --ui false

Footnotes

  1. I servizi interni e circostanti non sono accessibili tramite Internet. I servizi interni sono integrati e accessibili solo a RIoTPot. Questi servizi vengono caricati all'avvio e non possono essere eliminati, ma possono essere arrestati. I servizi circostanti devono essere nella stessa rete di RIoTPot. I servizi esterni devono inserire RIoTPot nella whitelist solo. ↩

  2. I middleware sono attualmente in fase di sviluppo. ↩

  3. L'API di RIoTPot non deve essere esposta a Internet. Ad ogni modo, l'API attualmente accetta solo connessioni da localhost. Questo potrebbe essere modificato in futuro, fornendo una whitelist di host e autenticazione standard. ↩

  4. Sebbene l'interfaccia web possa essere utilizzata come componente separato, è integrata nel binario di RIoTPot. ↩

  5. Sebbene l'applicazione di base sia interoperabile, i servizi interni (plugin) possono essere utilizzati solo in ambienti Linux, FreeBSD e macOS. Prevediamo di superare questa limitazione sostituendo i plugin con microservizi che comunicano tramite gRPC. ↩

  6. Per motivi etici e di sicurezza, RIoTPot non consente richieste non sollecitate verso l'esterno, ovvero shell inverse e simili non sono consentite. ↩

Scarica lo strumento
ServizioPorta InternaPorta Proxy
Echo200077
SSH2002222
Telnet2002323
HTTP2808080
Modbus20502502
MQTT218831883
CoAP256835683
ServizioImmaginePortaDettagli
MQTTeclipse-mosquitto1883Server MQTT Mosquito
HTTPhttpd80Server HTTP regolare
Modbusoitc/modbus-server502Server Modbus
OCPPocpp1.6-central-system443OCPP v1.6 (utilizzato nelle stazioni di ricarica per auto)
Applicazioni
ApplicazioneImmagineDettagli
TCPDumpkaazing/tcpdumpRegistratore di pacchetti. Memorizza il traffico di rete in file .pcap

Il container può essere configurato in tre semplici passaggi:

  1. Scarica il codice sorgente di RIoTPot da GitHub. Apri una console e digita la seguente riga.

    root@kitploit:~
    git clone [email protected]:aau-network-security/riotpot.git
    
  2. Naviga nella cartella in cui hai scaricato il codice sorgente di RIoTPot.

  3. Con Docker in esecuzione: se hai installato Make, esegui il comando seguente. Altrimenti, esegui un comando docker-compose utilizzando il file docker-compose incluso nella cartella build/docker.

    • Con make
    root@kitploit:~
    # Con make
    make up
    
    • Con Docker-compose
    root@kitploit:~
    # Con docker-compose
    docker-compose -p riotpot -f build/docker/docker-compose.yaml up -d --build
    
FlagTipoDefaultDescrizione
debugBooleanofalseImposta il livello di log su debug
apiBooleanotrueSe avviare l'API
pluginsBooleanotrueSe caricare i plugin honeypot a bassa interazione
whitelistStringahttp://localhost,http://localhost:3000Elenco di host consentiti separati da virgola per contattare l'API
uiBooleanotrueSe avviare l'UI