Hacking Google Chromecast

Bevor wir anfangen, habe ich eine neue Slack-Gruppe gestartet, die sich dem Hacking widmet. Wir heißen jeden willkommen, vom Anfänger bis zum Fortgeschrittenen, um beizutreten. Ich werde jeden Tag Fragen beantworten, CTFs machen und über coole Hacks sprechen. Wenn du Spaß am Hacken hast und auf der Suche nach Gleichgesinnten bist, dann melde dich unten an:

NEUE Hacking Group Slack Channel

Einführung

Es ist der 2. Januar 2019 und wie immer überprüfte ich meinen News-Feed und bemerkte einen Artikel darüber, wie ein bösartiger Hacker Chromcast angriff, was dazu führte, dass ihr Fernseher gezwungen wurde, unerwünschte Inhalte wiederzugeben (News Article).

Das weckte mein Interesse, also machte ich mich auf den Weg, um herauszufinden, wie der Hacker das geschafft hat.

Technische Details

Nach der Definition im Internet ist Chromecast ein Streaming-Media-Adapter von Google, der es Nutzern ermöglicht, Online-Inhalte wie Videos und Musik auf einem digitalen Fernseher abzuspielen.

Zum Zeitpunkt des Schreibens dieses Beitrags ist dies ein heißes Thema, also dachte ich mir, ich könnte einige weitere Details auf Social-Media-Seiten (Twitter) finden. Nach 5 Minuten Suche entdeckte ich den folgenden Twitter-Beitrag, der mich in die richtige Richtung wies.

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