Hacking Google Chromecast

Avant de commencer, j’ai lancé un nouveau groupe slack dédié au hacking. Nous invitons tout le monde, du débutant au confirmé, à nous rejoindre. Je serai sur tous les jours répondre aux questions, faire CTFs, et parler de hacks cool. Si vous aimez le piratage et que vous recherchez des personnes partageant les mêmes idées, rejoignez ci-dessous :

NOUVEAU groupe de piratage Slack Channel

Introduction

C’est le 2 janvier 2019 et comme je le fais toujours, je vérifiais mon fil d’actualité et j’ai remarqué un article sur la façon dont certains pirates malveillants attaquent chromcast, ce qui a entraîné leur télévision à être forcée de rendre du contenu indésirable (article d’actualité).

Cela a éveillé mon intérêt alors j’ai entrepris de découvrir comment le hacker a accompli cela.

Détails techniques

Selon l’internet la définition du chromecast est un adaptateur multimédia de streaming de Google qui permet aux utilisateurs de lire du contenu en ligne comme des vidéos et de la musique sur une télévision numérique.

Au moment d’écrire ce post c’est un sujet brûlant donc je me suis dit que je pourrais trouver plus de détails sur les sites de médias sociaux(twitter). Après 5min de fouille, j’ai découvert le post twitter suivant qui m’a orienté dans la bonne direction.

Neat donc je peux envoyer une requête POST à VulnWebSite.com:8008/apps/Youtube avec un corps JSON contenant les données {‘v’:’VIDEO_ID_HERE’}. Ainsi, la vulnérabilité ici est que toute personne qui envoie une requête post à votre appareil chromcast peut faire en sorte que votre TV joue une vidéo Youtube. Tout cela est non authentifié.

Puis j’ai tenté de chercher la documentation de l’API mais je n’ai pas pu ce que je voulais. Je suis alors tombé sur la documentation API non officielle postée par quelqu’un d’autre (documentation API). J’ai également trouvé d’autres documentations listées ci-dessous.

  • chromecast python script
  • chromecast urls list

Après avoir lu la documentation, j’avais une bien meilleure idée du fonctionnement de l’appareil et je savais à peu près comment le hacker avait réussi son attaque.

L’attaque

Donc, nous devons d’abord créer une sorte d’empreinte digitale pour identifier les périphériques chromecast qui ont ce point de terminaison API exposé. Cela peut facilement être fait en envoyant une requête GET au point de terminaison /setup/eureka_info qui est documenté ici(device-info API documentation). Cela renverra un objet json contenant la version de construction, des informations sur le périphérique, la clé publique, et plus encore. C’est le même point de fin d’api que shodan.io utilise pour prendre l’empreinte des appareils chromcast.

Maintenant que nous pouvons identifier les appareils chromcast, tout ce que nous avons à faire est d’envoyer le payload youtube au point de fin « /apps/Youtube » que nous avons découvert plus tôt. Après cela, la télévision de l’utilisateur sera forcée de lire la vidéo que vous voulez qu’elle lise. Vous pouvez également faire d’autres choses comme lister les points d’accès environnants, les périphériques Bluetooth ou tout ce qui est listé dans la documentation de l’API. Tout cela peut être fait sans authentification bien sûr.

Universal Plug and Play

Cette attaque est simple et presque n’importe qui peut la réaliser armé de cette connaissance. Ce qui aggrave les choses, c’est que chromecast fait usage de Universal Plug and Play (UPnP). Si vous ne savez pas ce que fait UPnP, cela signifie qu’il traverse votre pare-feu de part en part. Cela signifie que le chromecast utilise l’UPnP pour ouvrir le port 8008 sur votre routeur et faire suivre tout le trafic vers le chromecast. Si UPnP est activé sur votre routeur, ce qui est le cas de la plupart d’entre eux par défaut, votre appareil chromecast s’ouvrira à Internet. Cela signifie que n’importe qui sera en mesure de contrôler votre dispositif chromecast et la télévision à laquelle il est connecté à partir d’Internet sans être authentifié.

Conclusion

Je crois fermement que google est vraiment une grande entreprise. Ils font beaucoup pour nous protéger chaque jour et ils protègent également d’autres entreprises et appareils grâce au projet zéro. Peu importe à quel point vous êtes bon, quelque chose passe à travers les mailles du filet. Cela arrive tout le temps. Google a déjà mentionné qu’une mise à jour serait effectuée dans les semaines à venir. Il est probablement préférable de bloquer UPnP complètement car il y a beaucoup d’autres dispositifs IOT qui pourraient être vulnérables. Pensez-y, si un appareil Google est vulnérable à un exploit API non authentifié, combien d’autres appareils le sont ?

Leave a Reply