Neat so kann ich eine POST-Anfrage an VulnWebSite.com:8008/apps/Youtube mit einem JSON-Body senden, der die Daten {‚v‘:’VIDEO_ID_HERE‘} enthält. Die Schwachstelle besteht also darin, dass jeder, der eine Post-Anfrage an Ihr Chromcast-Gerät sendet, Ihren Fernseher dazu bringen kann, ein Youtube-Video abzuspielen. Das alles geschieht ohne Authentifizierung.
Als Nächstes habe ich versucht, die API-Dokumentation zu suchen, konnte aber nicht das finden, was ich wollte. Dann stieß ich auf die inoffizielle API-Dokumentation, die von jemand anderem veröffentlicht wurde (API-Dokumentation). Ich fand auch andere Dokumentation, die unten aufgeführt ist.
- chromecast python script
- chromecast urls list
Nach dem Lesen der Dokumentation hatte ich eine viel bessere Vorstellung davon, wie das Gerät funktionierte, und ich wusste ziemlich genau, wie der Hacker den Angriff durchgeführt hatte.
Der Angriff
Als erstes müssen wir also eine Art Fingerabdruck erstellen, um Chromecast-Geräte zu identifizieren, die diesen API-Endpunkt offengelegt haben. Das geht ganz einfach, indem man eine GET-Anfrage an den Endpunkt /setup/eureka_info sendet, der hier dokumentiert ist (device-info API documentation). Es wird ein json-Objekt zurückgegeben, das die Build-Version, Geräteinformationen, den öffentlichen Schlüssel und mehr enthält. Dies ist derselbe API-Endpunkt, den shodan.io verwendet, um Fingerabdrücke von Chromcast-Geräten zu erstellen.
Nun, da wir Chromcast-Geräte identifizieren können, müssen wir nur noch den Youtube-Payload an den „/apps/YouTube“-Endpunkt senden, den wir zuvor entdeckt haben. Danach wird der Fernseher des Benutzers gezwungen, das gewünschte Video abzuspielen. Sie können auch andere Dinge tun, wie z. B. die umliegenden Zugangspunkte und Bluetooth-Geräte auflisten oder alles, was in der API-Dokumentation aufgeführt ist. Dies alles kann natürlich auch ohne Authentifizierung geschehen.
Universal Plug and Play
Dieser Angriff ist einfach und fast jeder kann ihn mit diesem Wissen durchführen. Was die Sache noch schlimmer macht, ist, dass Chromecast Universal Plug and Play (UPnP) verwendet. Wenn Sie nicht wissen, was UPnP ist, dann ist es im Grunde genommen ein Durchbruch durch Ihre Firewall. Das bedeutet, dass das Chromecast-Gerät UPnP nutzt, um Port 8008 auf Ihrem Router zu öffnen und den gesamten Datenverkehr an das Chromecast-Gerät weiterzuleiten. Wenn Ihr Router UPnP aktiviert hat, was bei den meisten Routern standardmäßig der Fall ist, öffnet sich Ihr Chromecast-Gerät selbst für das Internet. Das bedeutet, dass jeder Ihr Chromecast-Gerät und den Fernseher, an den es angeschlossen ist, ohne Authentifizierung aus dem Internet steuern kann.
Abschluss
Ich glaube fest daran, dass Google wirklich ein großartiges Unternehmen ist. Sie tun viel, um uns jeden Tag zu schützen, und dank Project Zero schützen sie auch andere Unternehmen und Geräte. Egal, wie gut man ist, irgendetwas rutscht einfach durch die Maschen. Das passiert immer wieder. Google hat bereits angekündigt, dass es in den nächsten Wochen ein Update geben wird. Es ist wahrscheinlich am besten, UPnP komplett zu blockieren, da es viele andere IOT-Geräte gibt, die anfällig sein könnten. Überlegen Sie mal, wenn ein Google-Gerät für einen nicht authentifizierten API-Exploit anfällig ist, wie viele andere Geräte sind es dann auch?
Leave a Reply