Nachforschungen im Internet ergaben, dass der Sicherheitsstandard für diese Art von Geräten im Allgemeinen sehr niedrig ist und insbesondere unbekannte und kleinere Marken Software und Code von anderen Herstellern wiederverwenden. Einige Kameramodelle werden unter mehreren verschiedenen Marken und Modellnamen verkauft, haben aber fast die gleiche Hard- und Software und damit auch die gleichen Schwachstellen. Forscher auf der ganzen Welt haben bereits gute Arbeit bei der Identifizierung verschiedener kritischer Schwachstellen geleistet, darunter Backdoor-Accounts, Remotecode-Ausführung und Umgehung der Authentifizierung. Daher beschloss ich, nur ein paar Stunden zu investieren, um zu sehen, ob ich diese Kamera in meinem Heimnetzwerk verwenden wollte.
Nach dem Auspacken schloss ich die Kamera nicht an mein Heimnetzwerk an, sondern verwendete ein isoliertes und vollständig überwachtes Testnetzwerk, damit ich die Kamera analysieren und testen konnte, ohne das Risiko einzugehen, mein Heimnetzwerk zu gefährden. Die Ergebnisse der mehrstündigen Sicherheitsanalyse waren schockierend und führten zu meiner Entscheidung, die Kamera nicht zu installieren, nicht einmal in einem isolierten Netzwerk. Hier sind einige der Highlights der Analyse, die ich durchgeführt habe:
- Benötigt Internet Explorer mit einer Custom Version von ActiveX
- Unverschlüsselte Übertragung von sensiblen Daten
- Backdoor-Konto
- (Fern-)Passwort-Reset-Tool
- Cloud-Dienste
Internet Explorer mit einer Custom Version von ActiveX
Nachdem ich die Strom- und Netzwerkkabel eingesteckt hatte, wollte ich zunächst die Funktionalität und die Konfigurationsoptionen der Kamera überprüfen. In der ausführlichen Bedienungsanleitung wird empfohlen, mit dem Webbrowser auf die Verwaltungsseite der Kamera zuzugreifen, um sie einzurichten und die Videostreams zu betrachten, also gab ich die URL in meinen Webbrowser ein. Was ich zurückbekam, war ein nicht funktionierender Anmeldebildschirm mit einem Link zu einer ausführbaren Windows-Datei. Ich sah noch einmal im Handbuch nach und stellte fest, dass nur der Microsoft Internet Explorer unterstützt wurde und ActiveX-Unterstützung erforderlich war. Also startete ich eine virtuelle Maschine mit Windows und versuchte es mit den neuesten Versionen von Internet Explorer und ActiveX – ohne Erfolg. Nachdem ich etwa eine Stunde damit verschwendet hatte, alle Sicherheitseinstellungen zu deaktivieren und das benutzerdefinierte ActiveX-Plugin wie auf der Anmeldeseite vorgeschrieben zu installieren, konnte ich mich endlich anmelden und die ActiveX-basierte Anwendung zur Konfiguration der Kamera starten. Das waren wirklich schlechte Nachrichten für dieses Projekt. Die Tatsache, dass ich Microsoft Windows, den Internet Explorer und ein fragwürdiges ActiveX-Add-on installieren und dann die meisten Sicherheitsfunktionen deaktivieren musste, disqualifizierte die Kamera bereits für die weitere Verwendung.
Unverschlüsselte Übertragung von Passwörtern
Wenn ich die Kamera nicht benutzen kann, warum sollte ich dann nicht noch ein wenig mit ihr spielen? Ich überprüfte die offenen Ports und Dienste, die auf dem Gerät laufen, und zeichnete den ein- und ausgehenden Datenverkehr auf, um zu sehen, was tatsächlich hinter den Kulissen vor sich ging. Wireshark zeigte den Datenverkehr zwischen meinem Testcomputer und der Kamera auf TCP-Port 34567, während ich die Weboberfläche der Kamera benutzte, und ich stellte fest, dass der Inhalt unverschlüsselte Kontrollmeldungen einschließlich des Login-Benutzernamens und -Kennworts enthielt.
Jeder, der sich im selben Netzwerk befindet, könnte den Datenverkehr abhören, Benutzernamen und Kennwörter auslesen und denselben Kanal zur Steuerung und Neukonfiguration der Überwachungskamera verwenden. Das ist nicht ideal, vor allem wenn man bedenkt, dass Klartextprotokolle wie Telnet (1969 entwickelt) vor etwa 20 Jahren praktisch durch sichere Protokolle (z. B. SSH von 1995) ersetzt wurden.
Abgesehen vom Verkehr auf diesem Kontrollport ist auch der Webverkehr nicht verschlüsselt, und Benutzername und Kennwort werden nicht nur über Port 34567, sondern auch über HTTP für den Anmeldebildschirm und als Parameter in den RTSP-Anforderungen im Klartext übertragen.
Backdoor Konten
Nachdem ich mir den Datenverkehr angesehen hatte, startete ich nmap, um zu sehen, ob neben den Ports für die Webschnittstelle (HTTP), Streaming (RTSP) und den zuvor entdeckten Kontrollsocket noch andere Dienste auf dem Gerät verfügbar waren.
PORT STATE SERVICE
80/tcp open http
554/tcp open rtsp
9527/tcp open unknown
9530/tcp open unknown
34567/tcp open unknown
Es gibt zwei weitere Ports, die anscheinend für Nicht-Standarddienste verwendet werden, Port 9527 und 9530. Beide akzeptierten Verbindungen und schienen Klartext zu sprechen, also verband ich mich mit dem ersten und sah etwas, das wie eine Debug-Ausgabe der Kamerasoftware aussah. Wenn ich ein paar Mal die Eingabetaste drückte, wurde eine Anmeldeaufforderung angezeigt, die die zuvor konfigurierten Admin-Anmeldedaten akzeptierte. Nach dem Einloggen stellte ich fest, dass es sich nicht um Busybox oder ähnliches handelte, sondern um eine Art Debug-Schnittstelle, über die die Konfiguration und einige andere Aktionen ausgelöst werden konnten. Der Hilfebildschirm zeigte, welche Aktionen ausgelöst werden konnten, wobei die interessanteste „Shell“ war, da ich Root-Zugriff auf das Betriebssystem der Kamera haben wollte.
admin$ help
----------------------Console Commands----------------------------
232 Comm dump
485Pro 485 Protocol!
ability Net Ability Utility!
ad AD debug interface!
alarm Alarm status!
bitrate Dump BitRate infomation!
cfg Config Help Utility!
cloudupgrade CloudUpgrade console utility!
comm Comm Input String
consumAlarm consumer alarm device
encode Encode commands!
front front board utility!
fs Fs debug interface!
heap Dump heap status!
help Try help!
infoframe InfoFrame Console Utility!
log Log utility!
magic magic tools!
netitf NetInterFace Dump!
netm NetManager Dump!
packet Packet usage!
ptz ptz dump!
quit Quit!
reboot Reboot the system!
record Record console utility!
rtp RTP Dump!
shell Linux shell prompt!
shutdown Shutdown the system!
snap Snap Console Utility!
thread Dump application threads!
time Set SystemTime!
timer Dump application timers!
upgrade Upgrade utility!
user Account Information!
ver version info!
xmcloud XmCloud Dump!
To see details, please use 'cmd -h'
Der Shell-Befehl erlaubte die Ausführung jedes beliebigen Befehls (wer hätte das gedacht), vor allem aber führte er alle Befehle als root aus, was genau das war, wonach ich gesucht hatte. Ich benutzte telnet, um einen weiteren Port auf dem Gerät zu öffnen, der es mir ermöglichte, mich direkt mit der Shell des Betriebssystems als root zu verbinden.
/bin/busybox telnetd -l/bin/sh -p 9090
Ich habe mich angemeldet und die Konten und Passwort-Hashes extrahiert. Es gab keine wirklichen Überraschungen, außer dass das Root-Konto, das bei allen Kameras mit derselben Firmware gleich zu sein scheint, zum Einloggen verwendet werden konnte. Dennoch war kein entsprechender Dienst aktiv, der die Verwendung des Kontos erlaubt hätte. Ich nahm an, dass nach einigen Fällen, in denen diese Standard-Root-Konten zur Verbreitung von Malware und zur „Rekrutierung“ neuer Bots für riesige IoT-Botnetze verwendet wurden, die entsprechenden Dienste in der neuesten Firmware nun standardmäßig deaktiviert sind.
(Remote) Password Reset Tool
Die Tatsache, dass auf dem Gerät ein aktives Root-Konto vorhanden war, das für den normalen Betrieb der Kamera eigentlich nicht erforderlich ist, gab mir zu denken. Ich durchsuchte die Support-Seiten für das Kameramodell und fand eine interessante Software: „Password Reset Tool: Diese Software wird zum Zurücksetzen der Kamera verwendet“. Ich startete die Binärdatei und die einzige erforderliche Eingabe war die IP-Adresse, die ich eingab, aber nichts geschah. Ich analysierte die Binärdatei und stellte fest, dass das Einzige, was sie tat, darin bestand, eine Verbindung zur IP herzustellen, sich mit dem Standard-Root-Konto anzumelden und die Benutzerkonten auf die Standardwerte zu ändern.
Wirklich? Das heißt, ich kann jede Kamera zurücksetzen und übernehmen, indem ich nur ihre IP eingebe? Nun, in meinem Fall nicht, denn mit der auf meiner Kamera installierten Firmware war der entsprechende Dienst standardmäßig deaktiviert. Dennoch könnte dies ein Problem für alle Modelle sein, die eine ältere Firmware oder verschiedene Herstellerkonfigurationen verwenden.
Zwang zu Cloud Services
Als ich die Netzwerkkommunikation der Kamera untersuchte, sah ich bereits, dass sie versuchte, mit allen möglichen Update- und Cloud-Servern zu kommunizieren, und ich wollte sehen, ob ich diesen unerwünschten ausgehenden Datenverkehr reduzieren könnte. Wie Sie wahrscheinlich schon vermutet haben, stellte sich dies, wie bei den meisten IoT- und Cloud-verbundenen Geräten heutzutage, als eine unmögliche Aufgabe heraus. Ich habe im Grunde alle Funktionen wie automatische Updates, Cloud Connect und andere deaktiviert, aber das Gerät kommunizierte weiterhin mit verschiedenen Servern, darunter secu100.net und Servern, die bei AliSoft (Teil der Alibaba Group) registriert sind.
Der gesamte Datenverkehr war unverschlüsselt und die Kommunikation sah wirklich nicht sehr ausgereift aus (eher wie ein altes Befehls- und Kontrollprotokoll für Botnets). Selbst wenn ich den Betreibern der Cloud-Dienste vertrauen würde, könnten Angreifer leicht Daten einspeisen oder sensible Informationen aus der Kommunikation extrahieren.
Fazit
Ich bin mir sicher, dass die kleinen Probleme, die ich an einem Nachmittag bei einer sehr rudimentären Analyse entdeckt habe, nur einige der bestehenden Probleme sind und dass das Risiko bei der Verwendung dieser Kamera oder ähnlicher Modelle viel höher ist. Ich würde wirklich nicht empfehlen, diese Art von IP-Kameras überhaupt zu verwenden. Wenn Sie sie wirklich verwenden müssen, würde ich vorschlagen, dass Sie sie in einem separaten Netzwerk ohne Internetverbindung isolieren und keine sensiblen Bereiche überwachen.
2 Antworten
I’ve been exploring this area for about three weeks now and this is actually the very first blog that absolutely is sensible. Why is it so hard to locate quality information regarding security nowadays? Absolutely value the energy you invested getting your thoughts in to words so novices like me personally can take action. Will there be a part two to your article? Thank you again!
Glad you liked it! There will be more, not really part two of this article though. We might write more about security in other IoT areas (e.g. home alarm systems, electronic locks).