Dans ce nouvel article, nous vous invitons à découvrir comment sécuriser facilement les réseaux MQTT avec RALMQTT, notre outil de pentesting conçu pour les courtiers MQTT, et à approfondir vos connaissances avec notre rapport téléchargeable (que vous trouverez à la fin de cet article ), « MQTT : de zéro à héros ».
Ce rapport est la pièce maîtresse de notre exploration, offrant une plongée en profondeur dans les vulnérabilités du protocole MQTT et les mesures de sécurité pratiques. Avec des conseils détaillés et des informations d'experts, il vous permet de naviguer dans les complexités de la sécurité MQTT comme un pro.
Mais avant cela, dans cet article, vous trouverez également :
- Un didacticiel vidéo intégré démontrant les capacités de l'outil dans des scénarios réels
- Instructions étape par étape pour l'installation et l'utilisation de RALMQTT.
Processus d'installation :
La prise en main de notre outil est assez simple, il suffit de quelques commandes et vous êtes prêt.
- Tout d'abord, clonons dans le dépôt : git clone https://github.com/Red-Alert-Labs/ralmqtt/
- La deuxième étape consiste à créer un environnement virtuel pour gérer les versions des packages Python et éviter tout problème de compatibilité : python3 -m venv VENVMQTT
- Maintenant que l'environnement virtuel est créé, il suffit de l'activer : source VENVMQTT/bin/activate
- Et enfin installez les packages requis : pip install -r requirements.txt
Et voilà ! Vous êtes prêt :)
Présentation de l'outil :
- Découverte : collecte des informations sur le courtier (authentification, version, clients, disponibilité, etc.).
- Bruteforce : permet le bruteforce par mot de passe utilisateur (la liste de mots par défaut est basée sur mirai).
- DoS : implémente la méthode décrite dans cet article par Ivan Vaccari, Maurizio Aiello et Enrico Cambiaso
Ces 3 modules peuvent être utilisés ensemble pour mettre en place des scénarios d'attaque réalistes, par exemple :
- Découverte : collecte d'informations sur le courtier, nécessitant une authentification par mot de passe utilisateur.
- Bruteforce : essayez de forcer les identifiants de connexion. En cas de succès, relancez le mode Découverte avec les identifiants.
- DoS : Si la force brute échoue, sniffez les paquets de connexion valides. Une façon de procéder consiste à utiliser une attaque mitm (comme l'empoisonnement ARP) entre un client et le broker. Lancez une attaque DoS sur le broker jusqu'à ce que les messages keepalive échouent, ce qui oblige à arrêter toutes les connexions TCP client-broker. Une fois l'attaque arrêtée, le client établit une nouvelle connexion et voilà ! Puisqu'un mitm est en place, nous sniffons librement les informations d'identification et les identifiants client valides.
Utilisation et exemples :
python3 ralmqtt.py -m -a [-P ] [-p ] [-u ]
Options :
- -m, --mode Mode (choisir entre : discovery/dos/bruteforce)
- -a, --addr Adresse du courtier
- -P, --port Port du courtier (la valeur par défaut est 1883)
- -p, --password Mot de passe du courtier (facultatif)
- -u, --user Nom d'utilisateur du courtier (facultatif)
- -w, --wordlist Liste de mots de passe pour le mode bruteforce (par défaut ./passwords.t
Cette commande exécute ralmqtt en mode découverte pour rechercher des informations sur le courtier MQTT sur test.mosquitto.org.
python3 ralmqtt.py -a test.mosquitto.org -m découverte

Figure 1 : Mode découverte sur test.mosquitto.org
Mode force brute
Cette commande exécute ralmqtt en mode bruteforce sur le courtier MQTT à 192.168.50.1, en utilisant la liste de mots spécifiée /usr/share/wordlists/rockyou.txt.
python3 ralmqtt.py -m bruteforce -a 192.168.50.1 -w /usr/share/wordlists/rockyou.txt

Figure 2 : Mode force brute sur le courtier
Mode DoS et
Cette commande exécute ralmqtt en mode DoS pour effectuer une attaque par déni de service lent contre le courtier MQTT à 192.168.246.147.
python3 ralmqtt.py -m dos -a 192.168.246.147

Figure 3 : Mode Dos sur le courtier
Vérification DoS
Vous trouverez également dans ce dépôt un script testdos.sh . Comme son nom l'indique, le but de ce script est de tester le mode DoS de l'outil. Téléchargez le script, modifiez les permissions d'exécution et exécutez-le.

Figure 4 et 5 : modification de l'autorisation d'exécution et exécution du script
Il publiera sur le sujet test/dos un message indiquant que le broker est toujours actif. Sur un autre terminal, lancez la commande suivante : mosquitto_sub -h broker_addr -t 'test/dos

Figure 6 : écoute des messages
Réflexions finales
Dans ce court article, nous vous présentons notre outil de pentesting MQTT, comment l'installer et les différents modules qu'il comprend. Restez à l'écoute pour d'autres articles pour en savoir plus sur la sécurité IoT et Red Alert Labs : votre partenaire de confiance en cybersécurité IoT.
Et enfin, et ce n'est pas le moins important...
