Hardware und Firmware im Fokus:
Sicherheitsanalyse einer Heimüberwachungskamera (2/3)
Im ersten Teil sind wir darauf eingegangen, wie die Firmware aus dem Gerät ausgelesen werden kann. In diesem Beitrag soll es nun darum gehen, die Firmware näher zu betrachten, um potenzielle Schwachstellen zu identifizieren, die Zugriff auf das laufende System ermöglichen.
Root-Zugriff
Aus unserer bisherigen Analyse wissen wir, dass im System U-Boot als Bootloader verwendet wird.
Bei Embedded-Systemen erfolgt die Systeminitialisierung in der Regel nicht über klassische Mechanismen wie systemd oder SysVinit. Stattdessen kommt häufig eine zentrale Skriptdatei, wie /etc/init.sh zum Einsatz.
Diese Datei übernimmt die komplette Initialisierung des Systems: Sie startet Systemdienste, richtet das Netzwerk ein, lädt Konfigurationsdateien und ruft bei Bedarf weitere Skripte oder Daemons auf.
In der /etc/init.sh-Datei befinden sich mehrere sogenannte ‚Hooking‘-Abfragen, die offenbar zu Test- oder Debugging-Zwecken während der Entwicklungsphase implementiert wurden. In diesen Abfragen wird jeweils geprüft, ob bestimmte Dateien auf der SD-Karte vorhanden sind. Ist dies der Fall, werden u.a. Dateien mit Root-Rechten ausgeführt, Dienste wie Telnet oder RTSP gestartet, oder verschiedene Logdateien auf der Speicherkarte abgelegt.
Zum Beispiel prüft die folgende „Funktion“, ob die Datei HOOK.sh unter einem bestimmten Pfad auf der Speicherkarte existiert. Ist die Datei vorhanden, wird sie als root ausgeführt:
Um den vollständigen Pfad zu ermitteln, muss lediglich die Variable SYS_NAME
identifiziert werden. Diese steht in der Datei /product/name
und hat in unserem Fall den Wert S_CW2503C_H
. Dabei handelt es sich um den Modellnamen des Geräts, der sowohl auf der Verpackung als auch auf dem Label auf der Unterseite der Kamera zu finden ist.
Da alle ‘Hooking‘-Skripte bereits in einem sehr frühen Stadium des Bootvorgangs ausgeführt werden – also noch bevor die eigentliche Serveranwendung gestartet wird – reicht es nicht aus, die Payload in der HOOK.sh auszuführen.
Dies führt lediglich dazu, dass das Gerät nicht vollständig initialisiert wird, wodurch das Gerät keine WiFi-Verbindung herstellen kann und die Kommunikation mit dem Gerät unmöglich macht.
Eine einfache und effektive Lösung besteht darin, den Telnet-Dienst über das Skript zu starten und das Skript anschließend mit exit 1
zu beenden. Dadurch wird dem System eine erfolgreiche Ausführung signalisiert, sodass der Bootvorgang regulär fortgesetzt wird.
Nach dem Einlegen der modifizierten Speicherkarte in die Kamera, dem Startvorgang und einigen Sekunden Wartezeit, kann über Telnet auf das Gerät zugegriffen werden. Wie im untenstehenden Screenshot zu erkennen ist, erhält man dabei vollständigen Root-Zugriff auf das System.
Hinweis: Dieses Vorgehen dient lediglich als Beispiel, wie der Bootvorgang gezielt beeinflusst werden kann. Weitere Skriptdateien können auf ähnliche Weise verwendet werden – etwa zur Aktivierung der Ablage von ausführlichen Logdateien auf der Speicherkarte oder zur Durchführung von Firmware-Updates.
Mit maximalem Zugriff lassen sich nun auch sensible Daten auslesen. So sind die WLAN-Zugangsdaten in den Dateien /tmp/wpa.connect.conf
und auch in /tmp/WiFi.SSID
und /tmp/WiFi.PASS
zu finden.
Verschiedene UserIDs und die bei der Registrierung in der App verwendete eMail-Adresse (Nickname
) können aus der Datei /etc/conf.d/sdkconf/config/config/groupcfg.db
ausgelesen werden:
Durch diese Sicherheitslücke könnten Angreifer zudem auf zentrale Funktionen der Kamera zugreifen – etwa auf den Live-Stream der Kamera, das Mikrofon oder die Gegensprechfunktion. Auch die gespeicherten WLAN-Zugangsdaten lassen sich auslesen. Damit wird aus einer einfachen Kamera schnell ein Einfallstor in das gesamte Heimnetzwerk.
Im ersten Teil konnten einige Speicherpartitionen mit binwalk nicht eindeutig identifiziert werden. Daher werfen wir in Teil 3 einen genaueren Blick auf die UART-Schnittstelle und zeigen, wie uns das Bootlog dabei unterstützt, die Speicherstruktur zu identifizieren.
Autor
Jan Rude ist seit zehn Jahren als Penetrationstester tätig. Bereits während seines Studiums der Technischen Informatik hatte er Kontakt mit Hardware und IT-Sicherheit – Themen, die ihn seither begleiten.
Seit 2018 ist er bei mgm tätig und verantwortet dort unter anderem die Durchführung von Infrastruktur und IoT-Pentests.
Sie haben Fragen, oder wollen sich unverbindlich beraten lassen?
Nehmen Sie Kontakt per E-Mail auf, rufen Sie uns an oder nutzen Sie unser Kontaktformular.
Weitere Informationen
Ihr Ansprechpartner
Thomas Schönrich
Nehmen Sie Kontakt per E-Mail auf, rufen Sie uns an oder nutzen Sie unser Kontaktformular.

DOWNLOAD