[Tuto] Sniffer un réseau Zigbee

Sniffer réseau Zigbee I (expert)

Le présent tutoriel vise à décrire comment mettre en place un dispositif à très bas coût permettant d’espionner le réseau Zigbee. Utile quand on veut comprendre pourquoi des équipements n’arrivent pas à se connecter par exemple ou connaître ce qu’un équipement transmet quand dans Jeedom on ne retrouve pas les données attendues.
Il est réservé à un niveau d’expertise assez élevé non pas pour sa mise en place mais pour l’analyse des résultats qu’il fournit.
Il se base sur des logiciels libres (Wireshark et Ti Packet Sniffer) et sur un peu de matériel Texas Instrument que l’on peut se procurer pour quelques Euros (clef USB Ti CC2531, flash programmer avec câbles)
Le principe est assez simple à comprendre et guère plus compliqué à mettre en œuvre :

  • On écoute en les copiant sans être intrusif les trames sur le réseau Zigbee
  • On récupère ces trames pour les transmettre sur le bus USB du PC Win10
  • On décrypte et analyse ces dernières pour les afficher sur le PC Win10.

Installation et configuration du dongle TI CC2531

  1. Acheter sur le site de vente en ligne qui va bien un dongle CC2531. Pour ma part voici où je l’ai acheté (ARCELI Module d’évaluation USB CC2531, Compatible CC2531EMK, Clé USB Zigbee, EZSync104
    image

  2. Télécharger et installer le logiciel Ti Wireshark Packet Converter 1

Les étapes suivantes sont optionnelles si le dongle préconisé est celui mis en œuvre car il est déjà programmé avec le bon firmware

  1. Acheter sur le site de vente en ligne qui va bien un flasher de puce TI CC debugger avec son câble adaptateur pour le connecter sur le dongle CC2531
    image image

  2. Télécharger et Installer le logiciel Ti Packet Sniffer (il faudra vous enregistrer sur le site de TI pour pouvoir télécharger le logiciel). C’est en effet dans ce paquet que se trouve le firmware dont on aura besoin plus loin pour claquer sur la clef TI CC2531. Le firmware est ici :
    C:\Program Files (x86)\Texas Instruments\SmartRF Tools\Packet Sniffer\bin\general\firmware\ sniffer_fw_cc2531.hex

  3. Installer le logiciel SmartRF Flash programmer (pas la V2). Ce logiciel est libre mais il faudra vous enregistrer sur le site de TI pour le télécharger)

  4. Installer le driver pour le CC debugger sur le PC Win10

  5. Connecter le CC debugger au CC2531 au travers de la carte d’adaptation et des deux câbles
    image

  6. Connecter le CC2531 USB sniffer et le CC debugger chacun sur une prise USB du PC Win10.

  7. Si la LED du CC debugger est rouge appuyer une fois sur le bouton reset du CC debugger. La LED devrait maintenant passer au vert.

  8. Lancer le logiciel SmartRF Flash Programmer, configurer les options comme illustré ci-dessous (sélectionner le firmware qui a été téléchargé à l’étape 4) et appuyer sur Perform actions.

  9. Quand tout est programmé OK débrancher l’ensemble.

Fin des étapes optionnelles

  1. Brancher sur le PC le dongle CC2531 et lancer le logiciel TiWsPc (Ti Wireshark Packet Converter) et sélectionner le dongle CC2531
    image

  2. Puis sélectionner le canal Zigbee à espionner et enfin cliquer sur Start
    image

  3. Les fenêtres doivent maintenant afficher ceci (l’espionnage et récupération des trames ZigBee a commencé mais on ne sait toujours pas les afficher ni les décrypter) :
    image
    image

  4. Télécharger et installer le logiciel Ti Packet Sniffer 2. Nous allons récupérer dans ce logiciel uniquement les plug-ins nécessaires à Wireshark pour se « piper » (connecter) avec le logiciel de capture des trames qui tourne désormais.

  5. Récupérer les deux plug ins ti802154ge-x64-2x.dll et tirpi-x64-2x.dll depuis le dossier d’installation de Ti Packet Sniffer 2 :
    C:\Program Files (x86)\Texas Instruments\SmartRF Tools\SmartRF Packet Sniffer 2\wireshark\plugins\3.0.x

  6. Puis les copier ici :
    C:\Program Files\Wireshark\plugins\3.4

  7. Créer un raccourci de l’application Wireshark et ajouter ces options de lancement dans la case « Cible »
    -i\\.\pipe\tiwspc_data -k

  8. Lancer le logiciel Wireshark au travers de ce raccourcis.

  9. Ajouter la Trust Center Link Key (TCL Key) , clef qui va permettre à Wireshark de reconnaître correctement les trames Zigbee qu’il reçoit
    Pour cela aller dans le menu
    Editer/Préférences/Protocols/Zigbee
    Puis cliquer sur Edit…
    image

  10. Ajouter la Trust Center Link Key (TCL Key) par défaut clef qui va permettre à Wireshark de reconnaître correctement les trames Zigbee qu’il reçoit
    5A 69 67 42 65 65 41 6C 6C 69 61 6E 63 65 30 39
    image

  11. Une fois ceci fait relancer la capture. La fenêtre de Wireshark doit se peupler de tout ce que la CC2531 capture sur le réseau Zigbee.

  12. La clef Network Encryption Key (Transport key) qui est unique à chaque réseau Zigbee est fournie par la Gateway du réseau (le coordinateur). Sans cette clef les data des paquets espionnés resteront cryptés.
    Trois manières pour la récupérer

a) Par défaut si vous n’avez pas changé la clef du réseau celle-ci est :
01:03:05:07:09:0B:0D:0F:00:02:04:06:08:0A:0C:0D

b) Cette clef est aussi transmise quand un équipement demande un appairage ou un ré appairage sur le réseau (je ne vous montre pas ici les vraies captures de mon réseau bien évidemment)

  • Ouvrir le message pour lequel l’information est Device Annoucement et expanser la partie du message Zigbee Network Layer Data → Zigbee Security
    image
  • Copier la valeur et l’ajouter à Wireshark de la même manière que la clef TCL plus haut.

c) En copiant la clef depuis la configuration du coordinateur, par exemple ici pour une ConBee2 menu Network

Désormais Wireshark est capable de déchiffrer les messages de données (essayer avec un allumage de lampe par exemple):
image

Sniffer réseau Zigbee II (expert)

Cette partie du tutoriel vise à décrire une seconde méthode à très bas coût permettant d’espionner le réseau Zigbee.

Il est réservé à un niveau d’expertise élevé non pas pour sa mise en place mais pour l’analyse des résultats qu’il fournit.

Il se base sur des logiciels libres (Ti Smart RF Packet Sniffer) et sur un peu de matériel Texas Instrument que l’on peut se procurer pour quelques Euros (clef USB Ti CC2531)

Le principe est assez simple à comprendre et guère plus compliqué à mettre en œuvre :

  • On écoute en les copiant sans être intrusif les trames sur le réseau Zigbee

  • On récupère ces trames pour les transmettre sur le bus USB du PC Win10

  • On analyse ces dernières pour les afficher sur le PC Win10.

Installation et configuration du dongle TI CC2531

  1. Acheter sur le site de vente en ligne qui va bien un dongle CC2531. Pour ma part voici où je l’ai acheté ([ARCELI Module d’évaluation USB CC2531, Compatible CC2531EMK, Clé USB Zigbee, EZSync104](https://www.amazon.fr/gp/product/B07MBZMJB4/ref=ppx_yo_dt_b_asin_title_o00_s00?i

  2. Télécharger et installer le logiciel Texas Instruments SmartRF Packet Sniffer RF4CE 1.0

  3. Brancher le dongle TiCC2531 sur le PC et lancer le logiciel SmartRF Packet Sniffer RF4CE 1.0

  4. Démarrer la capture et mettre l’auto scrolling en marche (optionnel)
    image

Cette méthode plus simple à mettre en place que la précédente a comme inconvénient majeur que les clefs de cryptage ne sont pas accessibles et donc les data des paquets restent … cryptés.

L’analyse humaine en est donc quasi impossible.

Par contre le logiciel a un gros avantage, c’est celui de présenter sur une timeline les échanges de tous les équipements sur le réseau. On peut donc assez rapidement accéder à ce que chaque équipement émet mais sans pouvoir en décrypter le contenu.

Sniffer réseau Zigbee III (moyen)

Le présent tutoriel vise à décrire comment mettre en place un dispositif complet mais cher permettant d’espionner le réseau Zigbee.

Il est réservé à un niveau d’expertise standard mais fortuné.

Il se base sur le logiciel payant de Ubilogix et sur un peu de matériel Texas Instrument que l’on peut se procurer pour quelques Euros (clef USB Ti CC2531)

Le principe est assez simple à comprendre puisque :

  • On écoute en les copiant sans être intrusif les trames sur le réseau Zigbee

  • On récupère ces trames pour les transmettre sur le bus USB du PC Win10

  • On analyse ces dernières pour les afficher sur le PC Win10.

  1. Acheter sur le site de vente en ligne qui va bien un dongle CC2531. Pour ma part voici où je l’ai acheté (ARCELI Module d’évaluation USB CC2531, Compatible CC2531EMK, Clé USB Zigbee, EZSync104
    image
  2. Télécharger et installer le logiciel UBIQUA (il existe une licence gratuite valable 7 jours limitée à 1000 paquets capturés et une licence payante mensuellement illimitée en capture)
  3. Brancher le dongle TiCC2531 sur le PC et lancer le logiciel
  4. Le reste est ici Ubiqua Protocol Analyzer | Ubilogix

Ouf voilà c’est la fin pour celles et ceux qui ne se seront pas endormis entre temps

.

23 « J'aime »

Merci beaucoup pour ce super tuto… Je vais pouvoir ressortir mon dongle :wink:

Excellent.

akenad :slight_smile:

1 « J'aime »

J’ai ajouté deux autres parties :slight_smile:

Je ne vous cacherais pas que j’ai beaucoup utilisé la troisième. Mais le soft est désormais payant au mois (une espèce de location) qui le rend prohibitif pour la quasi totalité des particuliers. Hélas.

2 « J'aime »

Il existe une version gratuite utilisable 7j de Ubiqua. Il suffit de s’enregistrer sur leur site.
Par contre il faut connaître ses clefs de cryptage réseau pour les saisir manuellement. Comment fais tu pour les récupérer automatiquement dans ce logiciel ?

1 « J'aime »

Dans Ubiqua il faut appairer un nouvel équipement et enregistrer la trace de cet appairage. Le logiciel recherche ensuite automatiquement dans l’enregistrement la clef réseau.
Mais au préalable il faut avoir saisi la clef transport dans Ubiqua. Cette clef a de grandes chances d’être celle par défaut. Sinon il faut aller voir dans les préférences de ton coordinateur ce que tu as mis et y récupérer cette dernière clef.

2 « J'aime »

Wah super tuto encore un truc sympa a tester merci !

A voir et a revoir c’est de la balle je bookmark :+1: :heart: :beers:

1 « J'aime »

Je ne peux mettre qu’un petit cœur. Mais je partage le compliment d’ @olive

Parfait !
J’en avais besoin il y a 2 semaine en arrière :wink:
Je le mets de côté
Merci

Excellent tuto, @Yves19 :clap:

A tout hasard, est-ce que t’as essayé avec un module MyHome Play pour voir si ça permettait de capturer quelque chose d’intéressant ? Je suis curieux de voir à quoi peut bien ressembler le fameux profil « maison » Zigbee Pro de Legrand :grin:

Super tuto @Yves19

Comme @olive je bookmark pas d’utilité immédiate à on ne sais jamais :wink:

2 « J'aime »

C’est clair !

@Yves19 nous fait toujours des tutos d’une qualité et d’un détail incroyable !

On voit qu’il sait de quoi il parle et vulgarise pour que nous puissions en profiter !

Bravo à lui, même si il va encore me dire qu’il n’aime pas les louanges :wink:

2 « J'aime »

Ma modestie (la fausse) en rougit.

3 « J'aime »

Il faut que je m’y remette car je n’ai plus le matériel que j’utilisais par le passé (analyseur de protocole).
Déjà récupérer les clefs TCL et réseau et ça devrait le faire.
Je m’y collerai ce week end si mon boulot (et les enfants) me laisse respirer. Par contre si mes souvenirs anciens sont tjrs bons il me semble que Legrand dans son Home Play faisait aussi un encodage maison de ses data packets en sus de ce que le protocole Zigbee offre.

2 « J'aime »

Je suis pas certain qu’on y arrive

Le protocole MyHome Play OWN est sécurisé

Celui de Legrand Netatmo, peut etre

Legrand Netatmo c’est déjà fait :wink:

Legrand My Home Play c’est ce qui semble me souvenir ils ont appliqué du codage sur les data packets en sus de ce que propose le protocole Zigbee

Je ne suis pas YVES 19 …Désolé…

Ne sois pas désolé tu y gagnes certainement à ne pas être moi :slight_smile:

Bonsoir @Yves19
@kevinchalet a posté une possibilité de fonction concernant Myhome Play

Si tu peux nous dire ce que tu en penses ?