Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
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
CVE-2021-4045 — Exploit d'injection de commandes pour la caméra TP-Link Tapo C200 (CVE-2021-4045) offrant un accès root shell via UART et une analyse du binaire uhttpd rétro-conçu. | Kitploit
Outils/GitHubGitHub/kaleth4/cve-2021-4045
Sécurité des Systèmes EmbarquésSécurité IoTAnalyse des VulnérabilitésExploitationRétro-ingénierieHacking MatérielTests d'IntrusionCommandement et ContrôleAnalyse de Micrologiciel
GitHubkaleth4/cve-2021-4045

CVE-2021-4045

Exploit d'injection de commandes pour la caméra TP-Link Tapo C200 (CVE-2021-4045) offrant un accès root shell via UART et une analyse du binaire uhttpd rétro-conçu.

22il y a 3 moisPas encore vérifié

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
Voir le dépôt

🔍 CVE-2021-4045: Vulnérabilité d'injection de commandes dans TP-Link Tapo C200

image

CVE-2021-4045


📌 Résumé

CVE-2021-4045 est une vulnérabilité d'injection de commandes découverte dans la caméra TP-Link Tapo C200, qui permet à un attaquant de prendre le contrôle total de l'appareil avec les privilèges de root. Cette vulnérabilité affecte toutes les versions du firmware antérieures à la 1.1.16 Build 211209 Rel. 37726N.

🔗 Avis officiel de l'INCIBE : https://www.incibe.es/incibe-cert/alerta-temprana/vulnerabilidades/cve-2021-4045 (Remplacer par le lien réel)

🔧 Solution recommandée : Mettre à jour le firmware vers la version 1.1.16 ou supérieure.



🛠 Reconnaissance initiale

Configuration et caractéristiques de l'appareil

  • Caméra IP économique (~30€) avec fonctions avancées :
    • Enregistrement sur carte SD.
    • Rotation horizontale de 360° et verticale de 90°.
    • Lecture audio en temps réel depuis l'application mobile.

Scan de ports```bash

$ nmap -sV -p- 192.168.1.81

**Résultat** :```
PORT     STATE SERVICE
443/tcp  open  https
554/tcp  open  rtsp
2020/tcp open  xinupageserver
8800/tcp open  sunwebadmin
image Comme vous pouvez le voir, l’appareil a quelques ports ouverts intéressants. La première chose que j’ai essayée était le port 443. Bien que nmap indique clairement qu’il utilise https, lorsque j’ai effectué le scan initial, je l’ai négligé et j’ai passé pas mal de temps à penser que le port 443 utilisait http. À cause de cela, je n’ai essayé que http://192.168.1.81:443 au lieu de https://192.168.1.81:443, donc je n’ai obtenu que des réponses 400. Comme je l’ai dit dans l’introduction, ce processus a été rempli d’erreurs. Quant aux autres ports, les services qui s’exécutaient sur ceux-ci m’étaient totalement inconnus et je n’ai trouvé aucune information claire à leur sujet. À ce moment-là, je n’avais plus d’options connues, il était donc temps de creuser plus en profondeur.

----[ Obtenir un shell ]-------------------------------

Avant d’acheter la caméra, j’ai cherché sur internet des recherches antérieures sur l’appareil et, par chance, j’ai trouvé ce dépôt GitHub où des gens collaboraient pour faire du rétro-ingénierie. L’un des problèmes expliquait comment obtenir un accès à la console via le port UART , quelque chose que je ne connaissais absolument pas à l’époque. J’ai donc appris les bases et j’ai acheté un convertisseur USB-TTL pour me connecter. image Avec l’aide du problème mentionné, j’ai pu ouvrir l’appareil avec un couteau et un tournevis et localiser rapidement l’UART. Après quelques tentatives et beaucoup de patience, j’ai finalement réussi à souder quelques fils aux plots.

image

Ensuite, il était temps de vérifier si la soudure était assez bonne pour la transmission de données. J’ai branché les fils à l’adaptateur USB, en tenant compte que Rx de l’UART va sur Tx de l’adaptateur et vice-versa, et j’ai connecté l’adaptateur à mon ordinateur. Encore une fois, grâce au problème mentionné, je savais que le débit en bauds pour la connexion série était de 57600, donc j’ai exécuté :

$ sudo screen /dev/tty.usbserial-0001 57600

Où '/dev/tty.usbserial-0001' est le port USB auquel l’adaptateur est connecté et qui alimente l’appareil. J’ai immédiatement commencé à recevoir des données, super.

Cependant, je n’avais pas encore accès à la console. Ce que je recevais était simplement la séquence de démarrage de l’appareil, qui était en fait le chargeur de démarrage U-Boot. Cela ressemblait à ceci :

U-Boot 2014.01-v1.2 (Jul 16 2021 - 18:41:10)

Board: IPCAM RTS3903 CPU: 500M :rx5281 prid=0xdc02 force spi nor mode DRAM: 64 MiB @ 1066 MHz Skipping flash_init Flash: 0 Bytes flash status is 0, 0, 0 SF: Detected XM25QH64A with page size 256 Bytes, erase size 64 KiB, total 8 MiB Using default environment

Autobooting in 1 seconds copying flash to 0x81500000 flash status is 0, 0, 0 SF: Detected XM25QH64A with page size 256 Bytes, erase size 64 KiB, total 8 MiB SF: 8388608 bytes @ 0x0 Read: OK

[...]

En appuyant sur Entrée, on nous demande un nom d’utilisateur et un mot de passe. Grâce à ce problème GitHub, nous connaissons les identifiants, donc nous pouvons nous connecter correctement avec l’utilisateur 'root' et le mot de passe 'slprealtek' et, enfin, obtenir un accès à la console.

Une fois que j’ai vérifié que la connexion fonctionnait, j’avais besoin de renforcer la soudure, car elle s’était cassée deux fois pendant le processus de remontage du boîtier. J’ai appliqué de la silicone thermofusible pour sécuriser tous les fils et j’ai refermé l’appareil, en débranchant tous les moteurs. Maintenant, mon unité de test était prête.

image

----[ Exploration de l’appareil ]--------------------------

Maintenant que nous avons un boîtier, explorons l’appareil :

root@SLP:~# uname -a Linux SLP 3.10.27 #1 PREEMPT Wed Nov 11 20:42:05 CST 2020 rlx GNU/Linux

root@SLP:~# cat /etc/openwrt_version 12.09-rc1

Comme nous pouvons le voir, il s’agit d’une machine OpenWRT qui exécute Linux 3.10.27. Vérifions maintenant les processus actifs et les ports ouverts :

Télécharger l’outil