« SE5 IdO sécurité des objets 2024/2025 b6 » : différence entre les versions
Ligne 44 : | Ligne 44 : | ||
== Attaque sur le Catalent TempTale == | == Attaque sur le Catalent TempTale == | ||
Le Catalent TempTale est un objet connecté utilisé dans la livraison de médicaments. Il suit l'évolution de la température dans les colis pendant le trajet. Cet outil permet de garantir que les produits n'ont pas été exposés à des températures inappropriées et demeurent sûrs pour la consommation. Elle possède un système de fichiers et contient un rapport des mesures enregistrées pendant la livraison. | |||
Je vais essayer de voir ses failles au niveau logiciel puis au niveau matériel. | |||
Partie 1: | Partie 1 : attaque logicielle | ||
En le branchant simplement par voie USB, la commande suivante permet de monter l'objet sur un ordianteur : | |||
sudo mount /dev/sdb /tmp | |||
Dans /tmp, j'ai accès au rapport de température en PDF, je peux supprimer des fichier et en créer, il s'agit d'une faille possible. Cependant, je ne peux pas modifier le contenu original car il est protégé. De plus, il suffit de retirer l'interface USB pour ne plus pouvoir y accéder. | |||
Version du 7 janvier 2025 à 19:57
Le but de ce module est de tester la sécurité d'objets connectés ainsi que d'essayer de craquer l'un d'entre eux en exploitant les failles du matériel.
Partie 1 : Infrastructure WiFi
Création d'un serveur d'authentification sur capbreton
Afin de mettre en place une infrastructure WiFi, il faut un serveur d'authentification pour les éventuels utilisateurs qui tenteront de se connecter au point d'accès WiFi.
Après m'être connecté au serveur capbreton par ssh, j'ai configuré une nouvelle machine virtuelle Xen qui servira de serveur.
Pour lancer cette dernière, j'utilise la commande xen console SE5-ling
Pour la configuration réseau, j'ai
il faut que je crée une machine virtuelle
Pour finir je lance xen console SE5-ling pour me connecter à la VM
Configuration réseau
Dans le fichier /etc/network/interfaces, je configure avec l'adresse 172.26.145.106 :
Séance 2 :
Séance 3 :
L'objectif est de comprendre et d'analyser l'objet connecté Catalent TempTale, qui suit l'évolution de la température dans les colis de médicaments. Cet outil permet de garantir que les produits n'ont pas été exposés à des températures inappropriées et demeurent sûrs pour la consommation. On va d'abord essayer de voir ses failles au niveau logiciel puis au niveau matériel.
Logiciel :
commande mount /dev/sdb /tmp
dans /tmp, on a le rapport de température en PDF, je peux supprimer des fichier et en créer, il s'agit d'une faille possible
Matériel :
Mémoire W25X40CL
Microcontrôleur SAM4S2B
Partie 2 : Sécurité d'objets connectés
Attaque sur le Catalent TempTale
Le Catalent TempTale est un objet connecté utilisé dans la livraison de médicaments. Il suit l'évolution de la température dans les colis pendant le trajet. Cet outil permet de garantir que les produits n'ont pas été exposés à des températures inappropriées et demeurent sûrs pour la consommation. Elle possède un système de fichiers et contient un rapport des mesures enregistrées pendant la livraison.
Je vais essayer de voir ses failles au niveau logiciel puis au niveau matériel.
Partie 1 : attaque logicielle
En le branchant simplement par voie USB, la commande suivante permet de monter l'objet sur un ordianteur :
sudo mount /dev/sdb /tmp
Dans /tmp, j'ai accès au rapport de température en PDF, je peux supprimer des fichier et en créer, il s'agit d'une faille possible. Cependant, je ne peux pas modifier le contenu original car il est protégé. De plus, il suffit de retirer l'interface USB pour ne plus pouvoir y accéder.
Partie 2:
Matériel :
Dans cette seconde partie, je vais tenter d'extraire le firmware directement en utilisant un Raspberry Pi 4. Cette méthode utilise dont unguide peut-être trouvé au lien suivant : https://hacklido.com/blog/379-firmware-extraction-from-spi-flash
J'ai d'abord ouvert l'appareil pour pouvoir ensuite dé souder la mémoire flash,
D'après la référence sur le composant, il s'agit d'une flash W25X40CL, dont la datasheet peut-être obtenue ici : https://www.winbond.com/resource-files/w25x40cl_f%2020140325.pdf
J'ai pu récupéré la configuration des pins afin de connaître le branchement pour l'extraction du firmware.
Il s'agit de la mémoire XXX faite par XXX.
Ci-dessous les pins
Photo datasheet
téléverser dans la mémoire flash mes propres données : sudo flashrom -p linux_spi:dev=/dev/spidev0.0 -w modified_backup
Attaque sur un interrupteur connecté
Je vais maintenant tenter d'attaquer un objet connecté de mon choix. J'ai choisi l'interrupteur mural Wi-Fi intelligent, il permet de commander à distance un interrupteur (connecté à une lampe par exemple) depuis un téléphone à partir du moment qu'on est connecté au Wifi.
Pour le faire fonctionner j'ai fait le cablage suivant :
Ensuite, j'ai modifier le boîtier afin que la prise soit sécurisée électriquement.
Il est commandé par l'application Nedis Smart Life et depuis l'application je peux allumer et éteindre l'interrupteur.
Dans un premier temps, je vais tenter de repérer les paquets envoyés sur le réseau à l'aide de Wireshark. Ensuite, je vais forger mon propre paquet qui permet d'allumer/éteindre l'interrupteur.
Malgré le mode Promiscuous et monitor, je ne suis pas arrivé à capturer les paquets envoyés par mon téléphone à l'interrupteur connecté.
Avec l'outil nmap, j'ai déterminé l'adresse IP de l'interrupteur connecté: 192.168.109.140
Utilisation de Ettercap : Après avoir connecté mon ordinateur, j'ai utilisé Ettercap afin de faire une attaque Man In The Middle. Pour se faire Ettercap utilise l'ARP poisoning.
ouvrir ettercap : sudo ettercap -G
utiliser la commande nmap -O
J'ai réussi à capturer les paquets TCP que je ne pouvais pas voir en mode monitor.
Je vais tenter de relancer la séquence pour voir si je suis capable de commander l'interrupteur sans passer par l'application mais en injectant mon propre paquet sur le réseau.
192.168.1.0 pour scanner tous les appareils sur le sous réseaux. Cela va donner des informations sur le type d'OS, ... En faisant cela j'ai pu déterminer le type d'appareil de chaque adresse IP et identifier mes cibles (téléphone et interrupteur connecté)
sur ettercap faire scanner les hôtes avec le bouton avec l'icône de loupe.
sélectionner les cibles d'intérêt (192.168.1.133 et 192.168.1.140) et faire "add to target 1" puis "add to target 2"
ancer l'attaque ARP poisonning (MITM) sur les deux cibles
Ouvrir wireshark : avec sudo wireshark
on peut voir ici que j'arrive à capturer les paquets TCP
J'ai essayé de décoder les paquets que je reçois, il faut pouvoir prédire l'ISN
J'ai identifié les paquets avec la charge utile/la commande,
Les données sont chiffrées *
Je remarque que dans les paquets PUSH, le payload reste constant lorsqu'il s'agit d'allumer ou d'éteindre, j'en est déduit que le message transmis est le suivant :
allumer l'interrupteur :
00 00 55 aa 00 00 05 63 00 00
00 0d 00 00 00 37 33 2e 33 00 00 00 00 00 00 00
20 00 00 a0 59 4c 9c 38 f8 59 8d ee 14 f8 22 b6
c8 5e e2 7a 1a 51 f4 4a 4f aa d1 89 86 ee bf 20
d3 b2 5d 59 10 94 70 34 00 00 00 aa 55
éteindre l'interrupteur :
00 00 55 aa 00 00 00 00 00 00
00 09 00 00 00 08 65 93 0c 22 00 00 aa 55