Reverse engineering - Analyse Trame

Bonjour,

On m’a offert un ventilateur DUUX : https://duux.com/fr/produit/whisper-flex-smart-noir/.

Il se pilote avec une télécommande, une application ou un bouton. J’ai essayé d’analyser les trames voir si je peux reproduire par exemple l’allumage et l’extinction. J’ai installé sur mon Android PCAPDroid et choper des trames.

Avec Wireshark, j’ai l’impression d’avoir trouvé les trames. J’ai du port 8883 (MQTT) avec des adresses vers tuyas.com. Il y a déjà des sujets sur la plateforme tuya dans cette communauté mais les ventilateurs ne sont pas pris en compte.

Les trames semblent encapsulés dans du TLS donc sécurisé et non visible clairement. Comment faites-vous développeurs pour créer des plugins ? Choper les requêtes, les tokens etc ?

J’ai envoyé un email au constructeurs pour savoir s’il existe une doc mais sans réponse pour l’instant.

Cordialement.

Tu peux te servir de Burp Suite en installant un certificat dans ton téléphone pour simuler une attaque de type MITM (Man in the middle). Pas toujours simple à mettre en oeuvre si l’appli n’accepte pas les certifs autosignés.
Tu peux aussi installer l’appli dans une VM Android x86 sur ton PC. Et écouter le traffic avec Wireshark et Burp de la même manière

Alors si tu veux analyser le traffic qui est encrypté, je te conseille MITMproxy que tu trouvera ici.

En fait c’est un serveur proxy qui va te permettre d’analyser les requetes. Tu règles ton téléphone pour utiliser MITM comme serveur proxy. Tu installe les certificats et hop tu regardes ce qui passe.

PS : Si l’appli est vraiment sécurisé ca ne marchera pas.

PS 1 : Généralement pour developper un plugin on se base sur une API constructeur.

je réponds quand même à la question initiale, car les solutions données sont des moyens détournés de trouver les infos encapsulées dans les trames. Normalement un développeur s’appuie sur l’API mise à disposition par le constructeur, seul moyen sûr de permettre un échange entre un objet connecté et son réseau.

Merci pour vos infos. L’API reste donc le meilleur et plus propre moyen. Je vais attendre une réponse du support… si l’API existe.

Par curiosité, je vais tester les solutions proposées. C’est mon coté bidouilleur!!!

Bonjour!

Est-ce que par hazar du as eu des nouvelles s’il y a une API dispo?
J’ai egalement recu un petit chauffage DUUX, il est a l’air cool, il est compatible Google Home et alexa, mais j’ai pas l’impression qu’il soit compatible avec les boxes domotiques.

Bon j’ai contacte Duux aussi, pour l’instant il n’y a rien, mais ils ont deja eu quelques requetes, donc ce n’est pas exclu qu’ils en rajoute dans le futur. Mais pour l’instant rien n’est prevu

Non pas de nouvelle pour l’instant. On croise les doigts pour une API.

Intéressant @KipK . Ton chauffage fonctionne donc en IP via Wifi ? Et l’adresse du DNS fournie au chauffage est celui de ton PiHole.

Je remonte un vieux thread, mais je confirme que ça fonctionne de la même manière avec un ventilateur Duux Whisper Flex (et ça doit probablement marcher avec le Flex Ultimate)

Meme principe:

  • j’ai monté un MQTT en docker qui écoute sur le port 443 avec un certificat self-signed
  • j’ai surchargé la résolution DNS sur mon routeur de « collector3.cloudgarden.nl » pour pointer vers l’IP de mon broker

Au démarrage, le ventilateur poste son statut sur les 3 mêmes topics qu’au dessus.
Les status (et commandes disponibles sont donc):

  • power (0/1) : allume/éteint le ventilateur
  • mode (0/1) : mode de ventilation (0 normal, 1 « nature », 2 « nuit »)
  • speed (1 à 26) : vitesse du ventilateur
  • swing (0/1) : balayage horizontal inactif/actif
  • tilt (0/1) : balayage vertical inactif/actif
  • timer (1 à 12) : temps avant arrêt automatique

Pour le Flex ultimate, j’imagine que swing/tilt peuvent prendre d’autres valeurs pour sélectionner la plage de balayage.

K.

2 « J'aime »