Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2021-4045 — Befehlseinschleusungs-Exploit für die TP-Link Tapo C200 Kamera (CVE-2021-4045), der Root-Shell-Zugriff über UART und Analyse der rückentwickelten uhttpd-Binärdatei bereitstellt. | Kitploit
Tools/GitHubGitHub/kaleth4/cve-2021-4045
Embedded-System-SicherheitIoT-SicherheitSchwachstellenanalyseExploitationReverse EngineeringHardware-HackingPenetrationstestsCommand and ControlFirmware-Analyse
GitHubkaleth4/cve-2021-4045

CVE-2021-4045

Befehlseinschleusungs-Exploit für die TP-Link Tapo C200 Kamera (CVE-2021-4045), der Root-Shell-Zugriff über UART und Analyse der rückentwickelten uhttpd-Binärdatei bereitstellt.

28vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen

🔍 CVE-2021-4045: Befehlsinjektions-Schwachstelle in TP-Link Tapo C200

image

CVE-2021-4045


📌 Zusammenfassung

CVE-2021-4045 ist eine Befehlsinjektions-Schwachstelle, die in der Kamera TP-Link Tapo C200 entdeckt wurde und es einem Angreifer ermöglicht, die vollständige Kontrolle über das Gerät mit root-Berechtigungen zu übernehmen. Diese Schwachstelle betrifft alle Firmware-Versionen vor 1.1.16 Build 211209 Rel. 37726N.

🔗 Offizielle Mitteilung von INCIBE: https://www.incibe.es/incibe-cert/alerta-temprana/vulnerabilidades/cve-2021-4045 (Durch den tatsächlichen Link ersetzen)

🔧 Empfohlene Lösung: Firmware auf Version 1.1.16 oder höher aktualisieren.



🛠 Erste Erkundung

Gerätekonfiguration und -funktionen

  • Günstige IP-Kamera (~30€) mit erweiterten Funktionen:
    • Aufnahme auf SD-Karte.
    • Horizontale Drehung um 360° und vertikale um 90°.
    • Echtzeit-Audiowiedergabe über die mobile App.

Portscan```bash

$ nmap -sV -p- 192.168.1.81

**Ergebnis**:```
PORT     STATE SERVICE
443/tcp  open  https
554/tcp  open  rtsp
2020/tcp open  xinupageserver
8800/tcp open  sunwebadmin
image Wie man sehen kann, hat das Gerät einige interessante offene Ports. Das erste, was ich testete, war Port 443. Obwohl nmap deutlich anzeigt, dass es https verwendet, habe ich beim ersten Scan dies übersehen und lange Zeit gedacht, Port 443 würde http verwenden. Deshalb habe ich nur http://192.168.1.81:443 statt https://192.168.1.81:443 ausprobiert und nur 400-Antworten erhalten. Wie ich in der Einleitung sagte, war dieser Prozess voller Fehler. Was die anderen Ports betrifft, waren mir die darauf laufenden Dienste völlig unbekannt und ich fand keine klaren Informationen dazu. Zu diesem Zeitpunkt hatte ich keine bekannten Optionen mehr, also war es an der Zeit, tiefer zu graben.

----[ Eine Shell bekommen ]-------------------------------

Bevor ich die Kamera kaufte, suchte ich im Internet nach früheren Recherchen zu dem Gerät und fand glücklicherweise dieses GitHub-Repository, in dem Leute gemeinsam Reverse Engineering betrieben. Eines der Issues erklärte, wie man über den UART-Port Zugriff auf die Konsole erhält – etwas, das mir damals völlig unbekannt war. Also lernte ich die Grundlagen und kaufte einen USB-auf-TTL-Konverter, um mich zu verbinden. image Mit Hilfe des erwähnten Issues konnte ich das Gerät mit einem Messer und einem Schraubendreher öffnen und schnell den UART lokalisieren. Nach ein paar Versuchen und viel Geduld gelang es mir schließlich, einige Kabel an die Pads zu löten.

image

Dann war es an der Zeit zu prüfen, ob die Lötstelle gut genug für die Datenübertragung war. Ich schloss die Kabel an den USB-Adapter an, wobei ich bedenken musste, dass Rx des UART an Tx des Adapters geht und umgekehrt, und verband den Adapter mit meinem Computer. Dank des erwähnten Issues wusste ich, dass die Baudrate für die serielle Verbindung 57600 betrug, also führte ich aus:

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

Dabei ist '/dev/tty.usbserial-0001' der USB-Port, an dem der Adapter angeschlossen ist und der das Gerät mit Strom versorgt. Sofort begann ich, Daten zu empfangen – großartig.

Allerdings hatte ich noch keinen Zugriff auf die Konsole. Was ich empfing, war lediglich die Boot-Sequenz des Geräts, die eigentlich der U-Boot-Bootloader war. Es sah ungefähr so aus:

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

[...]

Beim Drücken der Eingabetaste werden wir aufgefordert, einen Benutzernamen und ein Passwort einzugeben. Dank dieses GitHub-Issues kennen wir die Zugangsdaten, sodass wir uns erfolgreich mit dem Benutzer 'root' und dem Passwort 'slprealtek' anmelden und schließlich Zugriff auf die Konsole erhalten.

Nachdem ich überprüft hatte, dass die Verbindung funktioniert, musste ich die Lötstelle verstärken, da sie während des Zusammenbaus des Gehäuses zweimal gebrochen war. Ich trug Heißkleber auf, um alle Kabel zu sichern, und schloss das Gerät, wobei ich alle Motoren abklemmte. Nun war meine Testeinheit bereit.

image

----[ Das Gerät erkunden ]--------------------------

Jetzt, wo wir eine Shell haben, erkunden wir das Gerät:

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

Wie wir sehen, handelt es sich um eine OpenWRT-Maschine, die Linux 3.10.27 ausführt. Schauen wir uns nun die aktiven Prozesse und offenen Ports an:

Tool herunterladen