Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Xiaomi-C200-Firmware-Analysis — De l'UART au Root : Pénétrer dans la Xiaomi C200 via U-Boot | Kitploit
Outils/GitHubGitHub/h3xdum/xiaomi-c200-firmware-analysis
Sécurité des Systèmes EmbarquésEscalade de PrivilègesSécurité IoTExploitationRétro-ingénierieRécupération de DonnéesHacking MatérielSécurité MatérielleAnalyse de Micrologiciel

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHubh3xdum/xiaomi-c200-firmware-analysis

Xiaomi-C200-Firmware-Analysis

De l'UART au Root : Pénétrer dans la Xiaomi C200 via U-Boot

Voir le dépôt
1112il y a 8 moisPas encore vérifié

Le périmètre

Dans ce dépôt, je montre comment j'ai obtenu un accès à l'interface UART même sans l'ensemble habituel
de broches exposées / pastilles de test, en utilisant U-Boot et des astuces pour obtenir root à un stade précoce et
finalement extraire le firmware

Reconnaissance initiale

pcb Quelques points clés sont clairs sur le PCB

  • Puce → Processeur Ingenic T31
  • Mémoire flash → type SOIC-8 SPI NOR
  • Pastilles de test UART potentielles

Tout d'abord, je me suis intéressé aux candidats évidents pour un accès UART direct,
il y a 4 pastilles de test alignées qui semblent être Tx, Rx, la masse et l'alimentation,
mais les tester avec un multimètre a donné de mauvaises mesures comme on le voit sur l'image.
J'ai essayé la plupart des autres pastilles de test et je n'ai toujours pas trouvé la bonne mesure, j'ai donc dû
changer de stratégie

Obtenir un point d'appui

Comme il ne reste aucun connecteur sur la carte ni aucune pastille de test utile,
j'ai décidé de passer par la source, de me connecter aux broches du processeur et d'obtenir
un shell UART de cette façon. J'ai récupéré la datasheet de ce processeur et identifié
les broches du protocole UART
T31

Maintenant, il suffit de trouver la masse sur la carte et de connecter

  • Tx → Rx
  • Rx → Tx
  • GND → GND

J'ai utilisé des sondes PCBite et un adaptateur USB 2 TTL pour ce montage
pcb_uart

U-Boot et root

Maintenant, nous pouvons utiliser picocom pour obtenir le shell UART que nous recherchons

root@kitploit:~
sudo picocom -b 115200 /dev/ttyUSB0

Si rien n'est fait, je n'obtiens que les journaux de démarrage et aucun shell à la fin du processus de démarrage,
j'ai donc dû interrompre U-Boot en appuyant immédiatement sur Entrée.
Lorsque j'ai obtenu un shell U-Boot, j'ai d'abord affiché les variables d'environnement
U-Boot_1

Les éléments importants pour nous sont

  • bootargs → indiquent que la commande init consiste à exécuter le binaire linuxrc et la disposition du firmware (partitions et leur objectif / taille / emplacements)
  • bootcmd → La commande pour charger la mémoire de la flash vers la RAM et démarrer le dispositif

Pour obtenir rapidement un accès root, je peux utiliser l'astuce consistant à modifier la commande init avec setenv
afin d'obtenir un shell au lieu d'exécuter le binaire linuxrc, puis je peux charger la mémoire
manuellement et démarrer le dispositif (en copiant essentiellement la commande bootcmd)
U-Boot_1

Maintenant, lorsque le démarrage se terminera, je serai placé dans un shell de démarrage avec pratiquement rien en cours d'exécution
sur le système, je vais donc exécuter le binaire linuxrc d'origine en arrière-plan et vérifier
s'il y a des ports ouverts sur ce système
root_netstat

Pas de chance ! La caméra ne communique avec son cloud que sur " 47.237.75.249 ", aucune interface web exposée
avec laquelle bricoler.
Comme la rétro-ingénierie du binaire de communication avec le cloud est hors du cadre de ma recherche,
c'est là que j'ai décidé de terminer ma recherche :)

Extraction du firmware

Un petit bonus pour ceux qui souhaitent jouer avec le firmware, voici
comment l'obtenir.
Même configuration que précédemment avec l'UART, mais cette fois en sondant et en chargeant uniquement la
mémoire de la flash vers la RAM sans démarrer dessus.
Ensuite, vous pouvez imprimer les données de la mémoire RAM et enregistrer la sortie
de votre terminal (avec minicom cette fois) pour la sauvegarder dans un fichier, la nettoyer un peu avec python et obtenir
le firmware, en vous aidant de binwalk et des indications de bootargs pour nommer chaque section.
Firmware

Télécharger l’outil