Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
riotpot — Honeypot IoT et Technologie Opérationnelle | Kitploit
Outils/GitHubGitHub/aau-network-security/riotpot
Outils DéfensifsSécurité IoTSécurité SCADA/ICSCollecte d'InformationsSécurité Réseau
GitHubaau-network-security/riotpot

riotpot

Honeypot IoT et Technologie Opérationnelle

Voir le dépôt
105285il y a 2 ansVérifié par Kitploit

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
📢 ATTENTION!!!
Ce dépôt a été déplacé vers le Projet Honeynet :)

RIoTPot

GitHub Actions status
Télécharger l’outil

RIoTPot est un honeypot à interaction hybride, principalement axé sur l’émulation des protocoles IoT et OT, bien qu’il soit également capable d’émuler d’autres services. Essentiellement, RIoTPot agit comme un service proxy pour les autres honeypots inclus dans le système. Vous pouvez donc exécuter n’importe quel honeypot et d’autres services en parallèle avec RIoTPot. De plus, une application Web (UI) est disponible pour gérer votre routage.

Le honeypot est livré avec plusieurs services à faible interaction prêts à l’emploi. Ces services étant écrits sous forme de plugins, ils ne sont pris en charge que sous Linux ; cependant, vous pouvez lancer RIoTPot sans eux. Le tableau suivant contient la liste des services inclus par défaut dans RIoTPot, leur port interne et leur port proxy.

ServicePort internePort proxy
Echo200077
SSH2002222
Telnet2002323
HTTP2808080
Modbus20502502
MQTT218831883
CoAP256835683

Table des matières

  • RIoTPot
    • 1. Architecture
    • 2. Comment utiliser RIoTPot
    • 3. Commandes

1. Architecture

L’architecture de RIoTPot repose sur des connexions proxy vers des services internes et environnants (ou externes) (par exemple, honeypots, services complets, conteneurs, hôtes distants, etc.). Pour ce faire, le honeypot gère un certain nombre de proxies définis par l’utilisateur, qui relayent les connexions entre les services et RIoTPot 1. Ainsi, RIoTPot peut décider comment et où router les attaques entrantes. La logique utilisée pour déterminer comment traiter l’attaque entrante est implémentée sous forme de middlewares 2. Pour gérer les services, les middlewares et les proxies, RIoTPot est livré avec une API REST 3 et une interface Web (UI) 4 prêtes à l’emploi. L’interface utilisateur est accessible via votre navigateur à l’adresse localhost:2022 et vous pouvez manipuler les points de terminaison de l’API à localhost:2022/api/swagger, qui présente une interface Swagger.

Figure 1 montre l’architecture de RIoTPot, incluant les deux applications principales qui le constituent (RIoTPot lui-même et RIoTPot UI) et leurs composants, ainsi qu’une section pour les services externes (ou adjacents).

Figure 1. Architecture de RIoTPot, comprenant l’application principale, les services externes et l’interface Web UI pour gérer les instances RIoTPot.

RIoTPot est écrit en Golang5. Chaque instance RIoTPot expose les proxies enregistrés (basés sur leur port) à la demande. Pour servir un proxy, il doit avoir un service lié et le port proxy doit être disponible (actuellement, RIoTPot n’accepte pas plusieurs services fonctionnant sur le même port). Lorsqu’un proxy a été lié et servi, les attaquants pourront envoyer des messages à RIoTPot sur ce port, relayant les messages au service lié et en retour à l’attaquant6.

Pour faciliter l’accès, plusieurs instances de RIoTPot peuvent être gérées depuis l’interface Web RIoTPot UI. En plus de gérer les proxies enregistrés dans chaque instance, l’interface utilisateur permet de créer, d’utiliser et de modifier des profiles. Chaque profil contient un certain nombre de proxies nommés d’après des protocoles ou d’autres services, faisant ressembler une instance RIoTPot à un appareil réel (par exemple, un assistant domestique). En quelques mots, les profils accélèrent le processus de configuration et de provisionnement d’une instance RIoTPot avec des configurations spécifiques. L’interface utilisateur est écrite à l’aide de la bibliothèque JavaScript front-end React (nous utilisons TypeScript pour ce projet) et de la bibliothèque de gestion d’état Recoil. RIoTPot étant relativement petit, il n’utilise pas de base de données pour le moment.

2. Comment utiliser RIoTPot

Exécuter RIoTPot est relativement simple. Globalement, vous avez trois options. La première consiste à télécharger une version de RIoTPot ; vous pouvez choisir de télécharger la dernière version ou une version antérieure. La deuxième option est de construire le projet vous-même. La dernière option consiste à utiliser le code source pour créer un conteneur Docker avec RIoTPot et quelques applications supplémentaires pour améliorer le honeypot.

Utiliser une version publiée

Info : Ce guide est destiné aux utilisateurs sans besoins particuliers, qui souhaitent une expérience simple et prête à l’emploi.

Chaque version se présente dans un dossier nommé riotpot contenant un binaire exécutable (également) nommé riotpot et un dossier plugins rempli de multiples services (ou honeypots à faible interaction). Il est important de conserver la structure interne des dossiers pour que RIoTPot fonctionne correctement.

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

  1. Téléchargez d’abord la version de votre choix depuis la page des versions. Choisissez celle correspondant à votre système d’exploitation (OS).
  2. Extrayez le dossier riotpot.
  3. Exécutez le binaire riotpot. Cela démarrera RIoTPot avec l’API activée, tous les plugins prêts à l’emploi et le serveur UI.
    • L’API et l’interface utilisateur sont accessibles via l’adresse localhost:2022
Construire vous-même

Info : Ce guide est destiné aux utilisateurs avancés à l’aise dans les environnements de développement.

Prérequis
  • Golang - Requis pour construire le projet
  • Node - Requis pour construire l’interface utilisateur

Optionnel :

  • Git - Utilisé pour télécharger le code source
  • Make - Pour exécuter des commandes préconfigurées

  1. Téléchargez le code source de RIoTPot depuis GitHub. Ouvrez une console et saisissez la ligne suivante.

    root@kitploit:~
    git clone [email protected]:aau-network-security/riotpot.git
    
  2. Naviguez vers le dossier où vous avez téléchargé le source de RIoTPot et installez les paquets node requis.

    root@kitploit:~
    npm install
    
  3. Si vous avez installé Make, nous avons inclus plusieurs aides de commande pour vous assister dans la construction du projet. Pour faire simple, vous pouvez exécuter deux commandes simples qui construiront le binaire RIoTPot et les plugins (et les placeront dans le bon dossier).

    root@kitploit:~
    # Construire le serveur
    make build-ui
    # Construit RIoTPot et les plugins
    make riotpot-build
    

NOTE : L’interface utilisateur utilise Vite pour construire le projet. Si vous préférez utiliser un autre constructeur, vous devrez peut-être apporter quelques modifications par vous-même.

Docker (Virtualisation)

Info : Ce guide est destiné aux utilisateurs avancés qui préfèrent utiliser RIoTPot dans un environnement virtuel.

Prérequis
  • Docker - Utilisé pour construire une image d’une instance RIoTPot et du serveur UI.
  • Docker-compose - Utilisé pour créer un seul conteneur avec une instance RIoTPot, l’interface utilisateur et d’autres applications et services.

Les principaux avantages de cette configuration sont les fonctionnalités de sécurité supplémentaires avec des modifications minimales de la configuration du conteneur et des conteneurs eux-mêmes. Par exemple, nous pouvons définir des réseaux privés virtuels séparés et des réseaux superposés pour cacher, cloisonner et encapsuler RIoTPot et d’autres services adjacents. De plus, les conteneurs permettent de lier des services en utilisant leur nom d’adresse Docker plutôt que leur IP, ce qui est très pratique. Enfin, nous pouvons démarrer et arrêter des conteneurs séparés à la demande sans affecter les autres services.

D’un autre côté, la virtualisation est sans doute plus exigeante que l’utilisation d’applications sur du métal nu. Bien qu’une seule instance de RIoTPot soit relativement légère, il est important de prendre en compte les inconvénients introduits par la virtualisation et l’émulation matérielle (par exemple, les délais de réponse).

Attention : Techniquement, un attaquant déterminé pourrait réaliser que RIoTPot est en fait un honeypot en analysant et en comparant les délais de réponse introduits par la virtualisation par rapport à de vrais serveurs (!!). Bien que ce type d’empreinte de honeypot ait été étudié auparavant, les résultats pour les services Internet courants restent non concluants (par exemple, HTTP, Telnet et SSH), en raison de la généralisation des services d’hébergement cloud utilisant des machines virtuelles et des configurations de serveur détaillées.

Le fichier docker-compose inclut des services supplémentaires pour améliorer l’expérience RIoTPot. Le tableau suivant résume la liste des services et applications regroupés dans ce conteneur.

Services
ServiceImagePortDétails
MQTTeclipse-mosquitto1883Serveur MQTT Mosquito
HTTPhttpd80Serveur HTTP classique
Modbusoitc/modbus-server502Serveur Modbus
OCPPocpp1.6-central-system443OCPP v1.6 (utilisé dans les bornes de recharge de voitures)
Applications
ApplicationImageDétails
TCPDumpkaazing/tcpdumpEnregistreur de paquets. Stocke le trafic réseau dans des fichiers .pcap

Le conteneur peut être configuré en trois étapes simples :

  1. Téléchargez le code source de RIoTPot depuis GitHub. Ouvrez une console et saisissez la ligne suivante.

    root@kitploit:~
    git clone [email protected]:aau-network-security/riotpot.git
    
  2. Naviguez vers le dossier où vous avez téléchargé le source de RIoTPot.

  3. Avec Docker en cours d’exécution : si vous avez Make installé, exécutez la commande suivante. Sinon, exécutez une commande docker-compose en utilisant le fichier docker-compose inclus dans le dossier build/docker.

    • Avec make
    root@kitploit:~
    # Avec make
    make up
    
    • Avec Docker-compose
    root@kitploit:~
    # Avec docker-compose
    docker-compose -p riotpot -f build/docker/docker-compose.yaml up -d --build
    

3. Commandes

RIoTPot est livré avec des indicateurs (flags) qui affectent la manière dont il démarre et ce qui est démarré. Exemple :

root@kitploit:~
# Exécuter RIoTPot sans l'interface utilisateur
./riotpot --ui false
FlagTypeDéfautDescription
debugBooleanfalseDéfinir le niveau de journalisation sur debug
apiBooleantrueIndique si l'API doit être démarrée
pluginsBooleantrueIndique si les plugins honeypot à faible interaction doivent être chargés
whitelistStringhttp://localhost,http://localhost:3000Liste des hôtes autorisés, séparés par des virgules, pour contacter l'API
uiBooleantrueIndique si l'interface utilisateur doit être démarrée

Footnotes

  1. Les services internes et environnants ne sont pas accessibles via Internet. Les services internes sont intégrés et uniquement accessibles à RIoTPot. Ces services sont chargés au démarrage et ne peuvent pas être supprimés, mais ils peuvent être arrêtés. Les services environnants doivent être sur le même réseau que RIoTPot. Les services externes doivent mettre RIoTPot sur une liste blanche uniquement. ↩

  2. Les middlewares sont actuellement en cours de développement. ↩

  3. L’API RIoTPot ne doit pas être exposée à Internet. Quoi qu’il en soit, l’API n’accepte actuellement que les connexions provenant de localhost. Cela pourra être modifié à l’avenir, avec l’ajout d’une liste blanche d’hôtes et d’une authentification standard. ↩

  4. Bien que l’interface Web puisse être utilisée comme composant séparé, elle est intégrée au binaire RIoTPot. ↩

  5. Bien que l’application de base soit interopérable, les services internes (plugins) ne peuvent être utilisés que dans les environnements Linux, FreeBSD et macOS. Nous prévoyons de surmonter cette limitation en remplaçant les plugins par des micro-services communiquant via gRPC. ↩

  6. Pour des raisons éthiques et de sécurité, RIoTPot ne permet pas les requêtes non sollicitées vers l’extérieur, c’est-à-dire que les shells inversés et autres ne sont pas autorisés. ↩