Hakkerointi Google Chromecastiin

Ennen kuin aloitamme, olen aloittanut uuden slack-ryhmän, joka on omistettu hakkeroinnille. Toivotamme kaikki aloittelijoista edistyneisiin tervetulleiksi mukaan. Tulen joka päivä vastaamaan kysymyksiin, tekemään CTF:iä ja puhumaan hienoista hakkeroinneista. Jos nautit hakkeroinnista ja etsit samanhenkisiä ihmisiä, liity alla olevaan:

UUSI hakkerointiryhmä Slack-kanava

Esittely

Tammikuun 2. päivä 2019 ja kuten aina teen, tarkistin uutissyötteeni ja huomasin artikkelin siitä, miten joku pahantahtoinen hakkeri hyökkäsi Chromcastiin, mikä johti siihen, että heidän TV:nsä pakotettiin renderöimään ei-toivottua sisältöä (Uutisartikkeli).

Tämä herätti kiinnostukseni, joten lähdin selvittämään, miten hakkeri sai tämän aikaan.

Tekniset yksityiskohdat

Internetin mukaan chromecastin määritelmä on Googlen suoratoistomediasovitin, jonka avulla käyttäjät voivat toistaa verkkosisältöä, kuten videoita ja musiikkia, digitaalisella televisiolla.

Tätä viestiä kirjoittaessani tämä on ajankohtainen aihe, joten ajattelin löytää lisää yksityiskohtia sosiaalisesta mediasta(twitter). 5min kaivamisen jälkeen löysin seuraavan twitter-postauksen, joka osoitti minut oikeaan suuntaan.

Neat, joten voin lähettää POST-pyynnön osoitteeseen VulnWebSite.com:8008/apps/Youtube JSON-rungon kanssa, joka sisältää datan {’v’:’VIDEO_ID_HERE’}. Periaatteessa haavoittuvuus on siis se, että kuka tahansa, joka lähettää post-pyynnön chromcast-laitteellesi, voi saada televisiosi toistamaan youtube-videon. Tämä kaikki on autentikoimatonta.

Seuraavaksi yritin etsiä API-dokumentaatiota, mutta en voinut mitä halusin. Sitten törmäsin jonkun toisen lähettämään epäviralliseen API-dokumentaatioon (API documentation). Löysin myös muuta alla lueteltua dokumentaatiota.

  • chromecast python script
  • chromecast urls list

Luettuani dokumentaation minulla oli paljon parempi käsitys siitä, miten laite toimi, ja tiesin melko hyvin, miten hakkeri oli tehnyt hyökkäyksen.

Hyökkäys

Aluksi meidän on siis luotava jonkinlainen sormenjälki, jolla tunnistamme chromecast-laitteet, joilla on tämä API-päätepiste näkyvissä. Tämä voidaan tehdä helposti lähettämällä GET-pyyntö /setup/eureka_info-päätepisteeseen, joka on dokumentoitu täällä(device-info API documentation). Tämä palauttaa json-olion, joka sisältää build-version, laitetiedot, julkisen avaimen ja paljon muuta. Tämä on sama api-päätepiste, jota shodan.io käyttää chromcast-laitteiden sormenjälkien ottamiseen.

Nyt kun voimme tunnistaa chromcast-laitteet, meidän on vain lähetettävä youtube-hyötykuorma aiemmin löytämäämme ”/apps/YouTube”-päätepisteeseen. Tämän jälkeen käyttäjän television on pakko toistaa mitä tahansa videota, jonka haluat sen toistavan. Voit tehdä myös muita asioita, kuten luetella ympäröivät tukiasemat ja bluetooth-laitteet tai mitä tahansa API-dokumentaatiossa lueteltua. Tämä kaikki voidaan tietysti tehdä myös autentikoimattomasti.

Universal Plug and Play

Tämä hyökkäys on yksinkertainen ja melkein kuka tahansa voi tehdä sen tämän tietämyksellä varustettuna. Asiaa pahentaa se, että chromecast käyttää Universal Plug and Playta (UPnP). Jos et tiedä mitä UPnP tekee, se periaatteessa lyö koko palomuurin läpi. Tämä tarkoittaa, että chromecast-laite käyttää UPnP:tä avatakseen reitittimesi portin 8008 ja välittää kaiken liikenteen chromecast-laitteeseen. Jos reitittimessäsi on UPnP käytössä, kuten useimmissa oletusarvoisesti on, chromecast-laitteesi avaa itsensä internetiin. Tämä tarkoittaa, että kuka tahansa voi ohjata chromecast-laitettasi ja televisiota, johon se on kytketty, internetistä ilman tunnistautumista.

Johtopäätökset

Olen vahvasti sitä mieltä, että google on todella hieno yritys. He tekevät paljon suojellakseen meitä joka päivä ja he suojaavat myös muita yrityksiä ja laitteita Project Zeron ansiosta. Ei ole väliä kuinka hyvä olet, jotakin vain lipsahtaa läpi. Sitä tapahtuu koko ajan. Google on jo maininnut, että se julkaisee päivityksen lähiviikkoina. On luultavasti parasta estää UPnP kokonaan, koska monet muut IOT-laitteet voivat olla haavoittuvia. Ajattele sitä, jos Googlen laite on haavoittuvainen auktorisoimattomalle API-hyökkäykselle, kuinka moni muu laite on?

Leave a Reply