Hacking Google Chromecast

Înainte de a începe, am deschis un nou grup slack dedicat hacking-ului. Îi invităm pe toți, de la începători la avansați, să se alăture. Voi fi în fiecare zi să răspund la întrebări, să fac CTF-uri și să vorbesc despre hacks cool. Dacă vă place să faceți hacking și căutați oameni cu aceeași minte, alăturați-vă mai jos:

NEW Hacking Group Slack Channel

Introducere

Este 2 ianuarie 2019 și, așa cum fac întotdeauna, îmi verificam fluxul de știri și am observat un articol despre cum un hacker rău intenționat a atacat chromcast, ceea ce a dus la faptul că televizorul lor a fost forțat să redea conținut nedorit (Articol de știri).

Acest lucru mi-a stârnit interesul, așa că am pornit să descopăr cum a reușit hackerul să realizeze acest lucru.

Detalii tehnice

Potrivit internetului, definiția chromecast este un adaptor media de streaming de la Google care permite utilizatorilor să redea conținut online, cum ar fi videoclipuri și muzică, pe un televizor digital.

La momentul scrierii acestei postări, acesta este un subiect fierbinte, așa că m-am gândit că aș putea găsi mai multe detalii pe site-urile de social media(twitter). După 5min de săpături am descoperit următoarea postare pe twitter care m-a îndrumat în direcția corectă.

Neat astfel încât să pot trimite o cerere POST către VulnWebSite.com:8008/apps/Youtube cu un corp JSON care să conțină datele {‘v’:’VIDEO_ID_HERE’}. Deci, practic, vulnerabilitatea de aici este că oricine trimite o cerere post către dispozitivul tău chromcast poate face ca televizorul tău să redea un videoclip youtube. Toate acestea sunt neautentificate.

Apoi am încercat să caut documentația API, dar nu am putut ceea ce am vrut. Apoi am dat peste documentația API neoficială postată de altcineva (API documentation). De asemenea, am găsit și alte documentații enumerate mai jos.

  • chromecast python script
  • chromecast urls list

După ce am citit documentația am avut o idee mult mai bună despre cum funcționa dispozitivul și am știut destul de bine cum a reușit hackerul să realizeze atacul.

Atacul

Atunci, mai întâi trebuie să creăm un fel de amprentă pentru a identifica dispozitivele chromecast care au acest endpoint API expus. Acest lucru se poate face cu ușurință trimițând o cerere GET către endpoint-ul /setup/eureka_info care este documentat aici(device-info API documentation). Aceasta va returna un obiect json care va conține versiunea de construcție, informații despre dispozitiv, cheia publică și multe altele. Acesta este același endpoint api pe care shodan.io îl folosește pentru a lua amprenta dispozitivelor chromcast.

Acum că putem identifica dispozitivele chromcast, tot ce trebuie să facem este să trimitem payload-ul youtube la endpoint-ul „/apps/YouTube” pe care l-am descoperit mai devreme. După aceea, televizorul utilizatorilor va fi forțat să redea orice videoclip doriți să redea. De asemenea, puteți face și alte lucruri, cum ar fi enumerarea punctelor de acces din jur și a dispozitivelor bluetooth sau orice altceva menționat în documentația API. Toate acestea pot fi făcute neautentificate, desigur.

Universal Plug and Play

Acest atac este simplu și aproape oricine poate realiza acest lucru înarmat cu aceste cunoștințe. Ceea ce înrăutățește lucrurile este faptul că chromecast utilizează Universal Plug and Play (UPnP). Dacă nu știți ce face UPnP, practic, acesta face o gaură în firewall-ul dumneavoastră. Aceasta înseamnă că dispozitivul chromecast se folosește de UPnP pentru a deschide portul 8008 pe routerul dvs. și redirecționează tot traficul către dispozitivul chromecast. Dacă routerul dvs. are UPnP activat, ceea ce majoritatea au în mod implicit, dispozitivul chromecast se va deschide singur către internet. Acest lucru înseamnă că oricine va putea să vă controleze dispozitivul chromecast și televizorul la care este conectat de pe internet în mod neautentificat.

Concluzie

Cred cu tărie că Google este cu adevărat o companie grozavă. Ei fac multe pentru a ne proteja în fiecare zi și, de asemenea, protejează alte companii și dispozitive datorită proiectului zero. Indiferent cât de bun ești, unele lucruri îți scapă printre degete. Se întâmplă tot timpul. Google a menționat deja că va lansa o actualizare în următoarele săptămâni. Probabil că este mai bine să blocați complet UPnP, deoarece există multe alte dispozitive IOT care ar putea fi vulnerabile. Gândiți-vă că, dacă un dispozitiv Google este vulnerabil la un exploit API neautentificat, câte alte dispozitive sunt vulnerabile?

.

Leave a Reply