Obtenir un shell root par les ports UART sur une camera IP Floureon

Bonjour,
Aujourd’hui je vais vous expliquer comment j’ai obtenu un shell root sur une camera IP Floureon.
Voici le matériel utilisé :

Et les logiciels utilisés :

Commençons par ouvrir la camera IP et observons la carte électronique.

Nous pouvons remarquer trois séries de pins, deux de 3 pins et une de 4 pin qui peuvent être des ports UART:

Identification des différents pins UART

Nous allons tout d’abord utiliser le multimètre pour localiser le pin ground parmi les séries de pins : pour cela il faut utilise la fonction sonore avec le symbole LED.Toucher une surface métallique comme celle pour la carte micro sd puis toucher successivement chaque pin des séries, lorsque le multimètre émet un son le pin est ground.

Pour la série que j’ai utilisé pour me connecter en UART le pin GND est celui du milieu.

Maintenant nous allons brancher un analyseur logique aux deux autre pins de cette série l`un le channel 0 et l’autre sur le channel 1.

Dans le logiciel Logic de Saleae nous allons lancer la capture puis brancher la caméra pour la démarrer.
Voici ce que l’on obtiens sur le logiciel Logic après avoir configuré l’analyseur sur Async Serial avec un baudrate de 115200. Pour trouver le bon baudrate il suffit d’en tester plusieurs communz(4800,9600,38400,19200,57600,115200 par exemple) jusqu’à obtenir des choses lisibles au dessus du signal (ici « Boot image »).

Nous pouvons voir sur cette image que le pin Rx est celui du channel 1 et le channel 0 est donc Tx.

Connection en UART avec screen et le badge Attify

Nous allons maintenant connecter notre camera ip avec notre badge Attify. Il suffit de connecter le pins Rx à D1,Tx à D0 et GND à GND.

Puis il suffit de connecter le badge en USB sur notre pc et lancer la commande suivant :
sudo screen /dev/ttyUSB0 115200

Nous obtenons un shell avec l’utilisateur root !

Cependant, beaucoup d’informations sont affichées qui ne rendent pas le shell très facile à utiliser… Nous allons donc lancer la commande « telnetd » pour lancer un serveur telnet sur la camera, et « ip addr » pour identifier l’ip de la caméra.

Il suffit maintenant de lancer la commande telnet 192.168.1.29 et se connecter avec l’utilisateur root, aucun mot de passe n’est demandé : nous avons donc un shell root parfaitement utilisable !

 Exfiltration de données

Pour extraire le filesystem de la camera IP j’ai utilisé une carte micro-SD que j’ai monté, après l’avoir inséré dans la camera,à l’aide de la commande :
# mount /dev/mmcblk0p1 /mnt/SD
Puis j’ai utilisé la fonction tar pour compresser les fichiers a partir de la racine vers la carte SD à l’aide de la commande :
# tar cf /mnt/SD/firmware.tar /
Il ne reste plus qu’a le récupérer et l’analyser sur notre machine.

J’espère que cet article vous aura intéressés, merci d’avoir pris le temps de le lire entièrement !

Add a Comment

Votre adresse de messagerie ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.