Hackowanie Google Chromecast

Zanim zaczniemy, założyłem nową grupę na slacku poświęconą hackowaniu. Zapraszamy wszystkich od początkujących do zaawansowanych do dołączenia. Będę na niej codziennie odpowiadał na pytania, robił CTFy i rozmawiał o fajnych hackach. Jeśli lubisz hakować i szukasz podobnie myślących ludzi dołącz poniżej:

NEW Hacking Group Slack Channel

Introduction

Its January 2nd, 2019 and like I always do I was checking my news feed and noticed an article about how some malicious hacker attacking chromcast which resulted in their TV being forced to render unwanted content (News Article).

To wzbudziło moje zainteresowanie, więc postanowiłem odkryć, jak haker tego dokonał.

Dane techniczne

Według internetu definicja chromecasta to adapter mediów strumieniowych od Google, który pozwala użytkownikom na odtwarzanie treści online, takich jak filmy i muzyka na telewizorze cyfrowym.

W czasie pisania tego postu jest to gorący temat, więc pomyślałem, że mogę znaleźć więcej szczegółów na stronach mediów społecznościowych (twitter). Po 5min kopania odkryłem następujące twitter post, który wskazał mi właściwy kierunek.

Neat, więc mogę wysłać żądanie POST do VulnWebSite.com:8008/apps/Youtube z ciałem JSON zawierającym dane {’v’:’VIDEO_ID_HERE’}. Więc w zasadzie podatność polega na tym, że każdy kto wyśle post request do twojego urządzenia chromcast może sprawić, że twój telewizor będzie odtwarzał film z youtube. To wszystko jest nieuwierzytelnione.

Następnie próbowałem poszukać dokumentacji API, ale nie mogłem znaleźć tego, co chciałem. Następnie natknąłem się na nieoficjalną dokumentację API opublikowaną przez kogoś innego (dokumentacja API). Znalazłem również inną dokumentację wymienioną poniżej.

  • chromecast python script
  • chromecast urls list

Po przeczytaniu dokumentacji miałem dużo lepsze pojęcie o tym jak urządzenie działało i wiedziałem jak haker przeprowadził atak.

Atak

Więc najpierw musimy stworzyć jakiś odcisk palca, aby zidentyfikować urządzenia chromecast, które mają odsłonięty ten punkt końcowy API. Można to łatwo zrobić wysyłając żądanie GET do punktu końcowego /setup/eureka_info, który jest udokumentowany tutaj (dokumentacja API device-info). To zwróci obiekt json zawierający wersję kompilacji, informacje o urządzeniu, klucz publiczny i więcej. Jest to ten sam punkt końcowy api, którego shodan.io używa do tworzenia odcisków palców urządzeń chromcast.

Teraz, gdy możemy zidentyfikować urządzenia chromcast, wszystko co musimy zrobić, to wysłać ładunek youtube do punktu końcowego „/apps/YouTube”, który odkryliśmy wcześniej. Następnie telewizor użytkownika zostanie zmuszony do odtwarzania dowolnego filmu, który chcemy, aby był odtwarzany. Możesz również zrobić inne rzeczy, takie jak lista okolicznych punktów dostępowych i urządzeń bluetooth lub cokolwiek, co jest wymienione w dokumentacji API. To wszystko może być zrobione bez uwierzytelnienia oczywiście.

Universal Plug and Play

Ten atak jest prosty i prawie każdy może go ściągnąć uzbrojony w tą wiedzę. Co gorsza, chromecast korzysta z Universal Plug and Play (UPnP). Jeśli nie wiesz co UPnP robi to w zasadzie przebija się przez firewall. Oznacza to, że urządzenie chromecast wykorzystuje UPnP do otwarcia portu 8008 na routerze i przekazuje cały ruch do urządzenia chromecast. Jeśli router ma włączoną funkcję UPnP, a większość z nich ma ją domyślnie włączoną, urządzenie chromecast otworzy się na Internet. Oznacza to, że każdy będzie w stanie kontrolować urządzenie chromecast i telewizor, do którego jest podłączony z Internetu bez uwierzytelniania.

Wniosek

Bardzo wierzę, że google jest naprawdę świetną firmą. Robią wiele, aby chronić nas na co dzień i chronią również inne firmy i urządzenia dzięki projektowi zero. Nieważne jak dobry jesteś, coś po prostu prześlizgnie się przez szczeliny. To się zdarza cały czas. Google już wspomniał, że będą one pchanie aktualizacji w ciągu najbliższych tygodni. Jego prawdopodobnie najlepiej zablokować UPnP całkowicie jak istnieje wiele innych urządzeń IOT, które mogą być podatne. Pomyśl o tym, jeśli urządzenie google jest podatny na nieautentyczne API exploit jak wiele innych urządzeń są?

Leave a Reply