Hacken van Google Chromecast

Voordat we beginnen heb ik een nieuwe slack groep gestart gewijd aan hacken. We verwelkomen iedereen van beginner tot gevorderde om mee te doen. Ik zal er elke dag zijn om vragen te beantwoorden, CTF’s te doen en over coole hacks te praten. Als je van hacken houdt en op zoek bent naar gelijkgestemden, sluit je dan hieronder aan:

NEW Hacking Group Slack Channel

Introductie

Het is 2 januari 2019 en zoals ik altijd doe, was ik mijn nieuwsfeed aan het controleren en zag ik een artikel over hoe een of andere kwaadwillende hacker chromcast aanviel waardoor hun tv gedwongen werd om ongewenste inhoud weer te geven (Nieuwsartikel).

Dit wekte mijn interesse en dus ging ik op zoek naar hoe de hacker dit voor elkaar had gekregen.

Technische details

Volgens het internet is de definitie van chromecast een streaming media adapter van Google die gebruikers in staat stelt om online content zoals video’s en muziek af te spelen op een digitale televisie.

Op het moment van schrijven van dit bericht is dit een hot topic dus ik dacht dat ik wel wat meer details kon vinden op social media sites (twitter). Na 5 minuten graven ontdekte ik de volgende twitter post die me in de juiste richting wees.

Natuurlijk kan ik dus een POST verzoek sturen naar VulnWebSite.com:8008/apps/Youtube met een JSON body die de gegevens {‘v’:’VIDEO_ID_HERE’} bevat. Dus eigenlijk is de kwetsbaarheid hier dat iedereen die een post request stuurt naar je chromcast apparaat, je TV een youtube video kan laten afspelen. Dit is allemaal niet geauthenticeerd.

Volgende Ik probeerde te zoeken naar de API documentatie, maar kon niet wat ik wilde. Ik kwam toen de onofficiële API documentatie tegen, gepost door iemand anders (API documentatie). Ik vond ook andere documentatie die hieronder staat.

  • chromecast python script
  • chromecast urls list

Nadat ik de documentatie had gelezen, had ik een veel beter idee van hoe het apparaat werkte en wist ik ongeveer hoe de hacker de aanval had gepleegd.

De aanval

Dus eerst moeten we een soort vingerafdruk maken om chromecast apparaten te identificeren die dit API eindpunt hebben blootgesteld. Dit kan eenvoudig worden gedaan door een GET-verzoek te sturen naar het /setup/eureka_info eindpunt dat hier is gedocumenteerd (device-info API documentatie). Dit zal een json object terugsturen dat de build versie, apparaat info, publieke sleutel, en meer bevat. Dit is hetzelfde api eindpunt dat shodan.io gebruikt om chromcast apparaten te fingerprinten.

Nu we chromcast apparaten kunnen identificeren, hoeven we alleen nog maar de youtube payload naar het “/apps/YouTube” eindpunt te sturen dat we eerder ontdekten. Daarna wordt de TV van de gebruiker gedwongen om de video af te spelen die jij wilt dat hij afspeelt. Je kunt ook andere dingen doen zoals een lijst maken van de omliggende access points en bluetooth apparaten of iets anders dat in de API documentatie staat. Dit kan natuurlijk allemaal ongeauthenticeerd.

Universal Plug and Play

Deze aanval is eenvoudig en bijna iedereen kan dit doen met deze kennis. Wat het nog erger maakt is dat chromecast gebruik maakt van Universal Plug and Play (UPnP). Als je niet weet wat UPnP doet, dan gaat het eigenlijk dwars door je firewall heen. Dit betekent dat het chromecast-apparaat gebruik maakt van UPnP om poort 8008 op uw router te openen en al het verkeer naar het chromecast-apparaat door te sturen. Als UPnP op uw router is ingeschakeld, wat bij de meeste routers standaard het geval is, zal uw chromecast-apparaat zichzelf openstellen voor het internet. Dit betekent dat iedereen in staat zal zijn om uw chromecast-apparaat en de TV waarop het is aangesloten te bedienen vanaf het internet, ongeautoriseerd.

Conclusie

Ik geloof sterk dat google echt een geweldig bedrijf is. Ze doen veel om ons elke dag te beschermen en ze beschermen ook andere bedrijven en apparaten dankzij project zero. Het maakt niet uit hoe goed je bent, er glippen gewoon dingen door de kieren. Het gebeurt de hele tijd. Google heeft al gezegd dat ze in de komende weken een update zullen uitbrengen. Het is waarschijnlijk het beste om UPnP volledig te blokkeren omdat er veel andere IOT apparaten zijn die kwetsbaar kunnen zijn. Denk er eens over na, als een Google-apparaat kwetsbaar is voor een niet-geverifieerde API exploit, hoeveel andere apparaten zijn dat dan?

Leave a Reply