Ingénierie inverse d'une caméra IP (Partie 1): Extraire le firmware et ses secrets

Publié par TheJoe sur

Temps de lecture estimé: 2 minutes

Tout a commencé par un mystère (et très économique) caméra IP de surveillance Unotec. Sans documentation et sans accès à l'interface web, la seule façon de comprendre comment cela fonctionnait était “entrer à l'intérieur”. Dans cette première partie, nous verrons comment j'ai réussi à télécharger la configuration interne et à décoder le fichier de sauvegarde pour trouver les informations d'identification cachées.

Chasse aux abeilles: La commande Sauvegarde

Caméras basées sur un chipset SalutSilicon ils cachent souvent des portes dérobées sous la forme de scripts CGI. Après quelques tentatives visant à deviner les chemins standards utilisés par les constructeurs, J'ai touché la grande cible. En saisissant l'adresse dans le navigateur:

http://192.168.5.123/cgi-bin/hi3510/backup.cgi

Le navigateur a commencé à télécharger un fichier appelé config_backup.bin. Mais ne vous laissez pas berner par l'extension: dans le monde de l'IoT, fichiers souvent “.poubelle” ce ne sont que des archives standards renommées pour décourager les moins expérimentés.

Analyse de fichiers: C'est vraiment un binaire?

Pour comprendre à quoi j'avais affaire, J'ai interrogé le fichier via la commande file su Linux. Cette commande ne fait pas confiance à l'extension, il faut mettre dedans “Octets magiques” dans l'en-tête du fichier.

$ file config_backup.bin
config_backup.bin: gzip compressed data, from Unix, original size 3276800

Ici le mystère est révélé: le fichier est en fait une archive .tar.gz. Pour l'ouvrir, il suffisait de le renommer ou de l'extraire directement:

mv config_backup.bin config_backup.tar.gz
tar -zxvf config_backup.tar.gz

Qu'y a-t-il dans le “Boîte noire”?

Une fois déballé, J'ai trouvé une partie de la structure du système de fichiers de la caméra devant moi, la partition /mnt/ dédié aux configurations. Le dossier /mnt/mtd/ipc/conf/ Cela s'est avéré être une mine d'or de fichiers .ini:

  • config_user.ini: Il contenait les identifiants de connexion… très difficile à deviner (administrateur/administrateur).
  • config_md.ini: Paramètres de détection de mouvement (résultat désactivé).
  • wifi.conf: Les paramètres du réseau.
  • config_alarm.this: Déclencheurs d'alarmes FTP et e-mail.
Regardez ici:  Tutoriel: même la couleur de façon simple avec Gimp

Pourquoi le nouveau téléchargement échoue?

J'ai essayé de modifier les fichiers .ini (par exemple en activant le mouvement) et recréer l'archive pour la télécharger à nouveau sur la cam. Cependant, Je soupçonne que le firmware effectue une vérification d'intégrité (somme de contrôle) au démarrage. Si le fichier est falsifié, l'appareil photo le jette et revient aux paramètres d'usine.

Cette découverte m'a conduit à la phase suivante: si je ne peux pas changer les règles “de l'intérieur” flasher le fichier, J'utiliserai les commandes CGI pour lui donner des instructions “de l'extérieur”. Mais nous en parlerons dans la partie 2.

Restez à l'écoute pour découvrir comment j'ai utilisé ces informations pour intercepter le trafic des caméras!


TheJoe

Je garde ce blog comme un hobby par 2009. Je suis passionné de graphisme, la technologie, logiciel Open Source. Parmi mes articles ne sera pas difficile de trouver de la musique, et quelques réflexions personnelles, mais je préfère la ligne directe du blog principalement à la technologie. Pour plus d'informations me contacter.

0 commentaires

Laisser un commentaire

Espace réservé d'avatar

Votre adresse email ne sera pas publiée. les champs requis sont indiqués *

Ce site utilise Akismet pour réduire le spam. Découvrez comment vos données de commentaire est traité.