Ingénierie inverse d'une caméra IP (Partie 1): Extraire le firmware et ses secrets
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.
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!




0 commentaires