A l’origine, on les appelait « téléviseurs connectés », et maintenant on les appelle comme « téléviseurs intelligents ». Toute télévision qui peut être connectée à Internet pour accéder à des services, utiliser des apps et se comporter en quelque sorte comme nos ordinateurs avec un navigateur web. Les téléviseurs intelligents se connectent à Internet via une connexion Ethernet filaire ou Wi-Fi dans un réseau domestique. Les téléviseurs intelligents ont besoin de puces informatiques pour jongler avec le traitement vidéo, plusieurs écrans et une connexion Internet. Elles utilisent également de la mémoire pour mettre en tampon les vidéos et la musique en continu, et ont besoin d’une puissance de traitement supplémentaire pour gérer les graphiques. Les téléviseurs peuvent être contrôlés par des commandes vocales et par des applications fonctionnant sur certains Smartphone.
Dan Reynolds, expert en solutions de sécurité de l’information et en formation de l’Institut international de cybersécurité explique que ces Smart TV ne sont pas si intelligentes que cela et que la sécurité des logiciels n’est pas vraiment parfaite. Les Smart TV ressemblent à l’Internet des objets (IoT) mais d’anciennes vulnérabilités que l’on considérait comme ayant complètement disparu sont à nouveau des vulnérabilités nouvelles dans l’Internet des objets (IoT). Parfois, vous pouvez facilement trouver une faille qui peut vous permettre de prendre une variété d’actions sur la télévision, y compris l’accès à des données potentiellement sensibles, des fichiers distants et l’image du lecteur et finalement obtenir un accès root à l’appareil.
Dans l’article, nous allons couvrir différents aspects de deux marques les plus célèbres de Smart TVs, Samsung et LG, avec l’aide du professeur de cours de hacking éthique de IIcybersecurity.
- Comprendre le système d’exploitation SAMSUNG SMART TV
- Comment faire une analyse sur le firmware de Samsung Smart TV
- Connexion au téléviseur Samsung
- Connexion de Wireshark avec Smasung Smart TV
- Smart TV Hotel Mode Hack
- Comprendre le système d’exploitation de la LG SMART TV
- Connexion à la Smart TV
- Transmission / Réception Protocol
- OK Accusé de réception
- Accusé de réception d’erreur
- Power (Commande : k a)
- LG TV USB IR-Hack avec Arduino
- Comment activer le lecteur USB via la série
- Micrologiciels personnalisés
- Faible authentification
- Vulnérabilité des API de la TV
- Vulnérabilités de l’attaque MIM
Comprendre le système d’exploitation SAMSUNG SMART TV
Tizen est un système d’exploitation basé sur le noyau Linux et la bibliothèque GNU C implémentant l’API Linux. Il cible une très large gamme d’appareils, notamment les téléphones intelligents, les tablettes, les dispositifs d’infotainment embarqués (IVI), les téléviseurs intelligents, les PC, les caméras intelligentes, l’informatique vestimentaire, les lecteurs Blu-ray, les imprimantes et les appareils ménagers intelligents. Son objectif est d’offrir une expérience utilisateur cohérente sur tous les appareils. Tizen aurait été implémenté dans les téléviseurs Samsung à partir de 2015.
Il existe des communautés en ligne qui travaillent sur la recherche de l’OS des téléviseurs intelligents Samsung comme Sammygo, mentionne Dan Reynolds, expert en solutions de sécurité de l’information et en formation.
Comment faire une analyse sur le firmware de Samsung Smart TV
Le connecteur ExLink consiste en un câble qui a d’un côté un jack 3,5mm, comme ceux de l’audio, et de l’autre côté un connecteur RS232 ( Serial ) DB9. Ce câble vous permettra de connecter votre ordinateur PC au téléviseur et de passer en mode série. Avec cela, vous pouvez utiliser un logiciel de communication série, comme Hyperterminal, Putty de Windows ou Linux.
Connexion au téléviseur Samsung
- Mettez le téléviseur en mode veille, appuyez sur puis puis et lorsque le téléviseur s’allume, il affiche un nouveau menu de service.
- Activez l’option Hôtel, et réglez l’interface RS-232 sur UART.
- Utilisez le bouton d’alimentation puis éteignez et rallumez le téléviseur.
Le téléviseur devrait maintenant être prêt à communiquer avec votre PC.
Connexion de Wireshark avec Smasung Smart TV
Il existe un dissecteur Wireshark pour le protocole Samsung SmartTV.
Ce dissecteur permet de filtrer les captures wireshark et de décoder les paquets de télécommande qui sont envoyés à la télévision par WiFi et les paquets qui sont envoyés de la télévision à l’unité de télécommande. Ce plugin wireshark, permet la création déclarative simple de vos propres dissecteurs pour les protocoles personnalisés.
Pour installer le dissecteur à votre installation wireshark, vous devez faire les actions suivantes:
Télécharger la version de WSGD qui correspond à votre version wireshark et l’architecture de la machine puis le mettre dans votre dossier plugins wireshark. Dézippez les fichiers du dissecteur (par exemple /usr/lib/wireshark/libwireshark0/plugins/).
Pour voir le dissecteur en action, vous pourriez faire ceci:
- Lancer wireshark avec le dissecteur installé. Téléchargez le fichier de capture d’exemple et ouvrez-le dans wireshark.
- Tapez samsung_remote dans le champ filtre et voyez le paquet Samsung Remote filtré.
- Cliquez sur l’un des paquets marqués avec le protocole SR et voyez les données du paquet décodé.
Vous pouvez tester la connexion avec certaines des commandes
TV On : \x08\x22\x00\x00\x00\x02\xd6\r
TV Off: \x08\x22\x00\x00\x00\x01\xd5
HDMI1: \x08\x22\x0a\x00\x05\x00\xc7
TV Tuner: \x08\x22\x0a\x00\x00\x00\xcc
Volume Up : \x08\x22\x01\x00\x01\x00\x00\xd4
Volume bas : \x08\x22\x01\x00\x02\x00\xd3
Mise en sourdine : \x08\22\x02\x00\x00\x00\xd4
Haut-parleur activé : \x08\x22\x0c\x06\x00\x00\xc4
Haut-parleur désactivé : \x08\x22\x0c\x06\x00\x01\xc3
HDMI 2 : \x22\x0a\x00\x05\x01\xc6
HDMI 3 : \x08\x22\x0a\x00\x05\x02\xc5
Smart TV Hotel Mode Hack
Certains modèles de téléviseurs Samsung ont une option, pour faire fonctionner la TV lorsqu’ils sont installés dans des hôtels. Cela permet à la télévision de fonctionner dans un environnement isolé qui protège certaines fonctions des modifications que les clients de l’hôtel veulent faire. Vous pouvez utiliser les étapes mentionnées ci-dessous pour pirater le mode TV de l’hôtel et le rooter.
Il y a beaucoup de projets indépendants liés à la télévision intelligente Samsung sur Github comme Samsung-Remote mentionne Dan Reynolds, expert en solution de sécurité de l’information et en formation.
Comprendre le système d’exploitation de la LG SMART TV
Lorsque vous achetez une LG Smart TV, vous obtenez une télévision LG avec le système d’exploitation WebOS. WebOS, également connu sous le nom de LG WebOS, Open WebOS, HP WebOS ou Palm WebOS, est un système d’exploitation multitâche basé sur le noyau Linux pour les appareils intelligents comme les téléviseurs et les montres intelligentes et était auparavant un système d’exploitation mobile. Initialement développé par Palm, qui a été racheté par Hewlett-Packard. HP a rendu la plateforme open source, et elle est devenue Open WebOS. Le système d’exploitation a ensuite été vendu à LG Electronics.
Comme le WebOS est open source, il y a quelques communautés open source en ligne comme (openwebosproject, openlgtv) qui travaillent sur le firmware. A partir de ces communautés, vous pouvez télécharger le firmware du système d’exploitation et faire vos propres recherches.
Connexion à la Smart TV
Première étape vers le piratage de tout système est de connaître le système. Pour comprendre l’architecture et surveiller le trafic que votre Smart TV envoie, vous devrez connecter votre ordinateur avec la Smart TV. Pour atteindre le niveau du firmware, vous devez vous connecter via l’interface RS-232C. Vous pouvez facilement vous connecter en utilisant le câble RS-232 de la télévision à l’USB de l’ordinateur.
En général, nous recommandons le système d’exploitation Linux. Il y a des rapports d’utilisateurs, faisant face à des problèmes avec certains adaptateurs USB2Série sous Windows 7, donc pour le moment nous recommandons Windows XP pour utiliser les adaptateurs USB2Série.
Démarrez le téléviseur et allez dans le menu ‘Options’ en utilisant la télécommande et considérez que Set ID est réglé sur 1. Vous aurez besoin d’un programme d’émulation de terminal tel que Hyperterminal ou Putty. Définissez la configuration suivante : 9600 ou 115200 bauds (sur les microprogrammes récents, la vitesse de transmission par défaut est de 115200 bauds), 8N1, XON/XOFF. Longueur des données : 8 bits, Parité : Aucune, Bit d’arrêt : 1 bit, Code de communication : Code ASCII. En émettant les commandes suivantes, vous pouvez vérifier la connexion. Il y a beaucoup de commandes différentes pour jouer avec le système.
Transmission / Réception Protocol
: Première commande pour contrôler le set.(j, k, m ou x) : Deuxième commande pour contrôler le set.
: Vous pouvez ajuster l’ID du set pour choisir le numéro d’ID du set désiré dans le menu Option. La plage de réglage est de 1~ 99. Lorsque vous sélectionnez Set ID 0, chaque set connecté est contrôlé. Set ID est indiqué comme décimal (1~ 99) sur le menu et comme Hexa décimal (0x0~ 0x63) sur le protocole de transmission/réception.
: Pour transmettre les données de commande. Transmettre les données FF pour lire le statut de la commande.
: Retour chariot code ASCII 0x0D
: Espace code ASCII (0x20) * Dans ce modèle, le poste n’enverra pas le statut pendant le mode veille.
OK Accusé de réception
Le poste transmet ACK (accusé de réception) basé sur ce format lors de la réception de données normales. A ce moment, si les données sont en mode lecture de données, il indique les données d’état actuelles. Si les données sont en mode d’écriture de données, il renvoie les données de l’ordinateur PC.
* Dans ce modèle, le set n’enverra pas le statut pendant le mode veille. * Format des données : Utiliser comme commande. : Utiliser le petit caractère, si l’ID du set est 10, il enverra le 0, a. : Utiliser le petit caractère, si les données sont 0 x ab, il enverra le a, b. : Utiliser le grand caractère.
Accusé de réception d’erreur
Le poste transmet ACK (accusé de réception) basé sur ce format lors de la réception de données anormales provenant de fonctions non viables ou d’erreurs de communication.
Data01 : Code illégal Data02 : Fonction non prise en charge Data03 : Attendre plus longtemps * Dans ce modèle, le poste n’enverra pas le statut pendant le mode veille. * Format des données : Utiliser comme commande. : Utiliser le petit caractère, si l’ID du set est 10, il enverra le 0, a. : Utiliser le petit caractère, si les données sont 0 x ab, il enverra le a, b. : Utiliser le grand caractère.
Power (Commande : k a)
Pour contrôler la mise sous/hors tension du set.
Transmission
Données 00 : Mise hors tension Données 01 : Mise sous tension
Accusé de réception
* De la même manière, si d’autres fonctions transmettent des données ‘FF’ basées sur ce format, le retour des données d’accusé de réception présente le statut de chaque fonction.
* Note : Dans ce modèle, le poste enverra l’accusé de réception après l’achèvement du traitement de mise sous tension.
Il pourrait y avoir un délai entre la commande et l’accusé de réception.
Or vous pouvez aussi utiliser des scripts disponibles sur Internet comme libLGTV_serial. Mike Stevans, professeur du cours de piratage éthique explique que libLGTV_serial est une bibliothèque Python pour contrôler les téléviseurs LG (ou les moniteurs avec des ports série) via leur port série (RS232).
LG TV USB IR-Hack avec Arduino
Vous pouvez facilement pirater votre téléviseur LG avec une carte adruino via le téléchargement de scripts.
Cette bibliothèque de télécommande infrarouge se compose de deux parties : IRsend transmet des paquets de télécommande IR, tandis que IRrecv reçoit et décode un message IR.
#include <IRremote.h>IRsend irsend;void setup(){ Serial.begin(9600);}void loop() { if (Serial.read() != -1) { for (int i = 0; i < 3; i++) { irsend.sendSony(0xa90, 12); // Sony TV power code delay(100); } }}
#include <IRremote.h>int RECV_PIN = 11;IRrecv irrecv(RECV_PIN);decode_results results;void setup(){ Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver}void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); irrecv.resume(); // Receive the next value }}
Vous pouvez en apprendre davantage sur les hacks adruino à partir des projets Github et des communautés open source.
Comment activer le lecteur USB via la série
- Connecter le PC via le port COM ou l’adaptateur USB2COM (USBtoRS232) dans le connecteur RS232 du téléviseur
- Exécuter le programme de terminal sur le PC (hyperterminal ou putty par exemple)
- Définir les paramètres suivants pour le port COM : vitesse 9600, contrôle de flux : aucun. Laissez tous les autres paramètres par défaut.
- Dans le terminal, entrez : « ab 0 ff » et appuyez sur « Enter ». Vous devriez obtenir la réponse suivante « 01 ok????x », où ? ??? est le numéro d’option de l’outil. Retenez-le ou écrivez-le sur le morceau de papier.
- Pour activer le lecteur multimédia USB, entrez : « ab 0 6″ et appuyez sur entrée.
- Éteindre/allumer le téléviseur. L’icône USB doit apparaître dans le menu principal du téléviseur.
Micrologiciels personnalisés
Vous pouvez télécharger les anciens micrologiciels sur les sites officiels de LG ou pour les forums Internet. Ces micrologiciels sont personnalisés en fonction des besoins de l’utilisateur.
Mike Stevens, professeur de cours de piratage au Mexique explique qu’avec des commandes série, des scripts et avec des vulnérabilités, n’importe qui peut pirater une smart TV. Certaines des vulnérabilités connues pour lesquelles différents exploits sont disponibles sur le marché noir sont :
Faible authentification
Le protocole est très simple en termes d’authentification et le paquet d’authentification ne nécessite qu’une adresse IP, une adresse MAC et un nom d’hôte pour l’authentification. Vous pouvez facilement casser le protocole. De plus, l’authentification côté client n’est pas très forte. De plus, le protocole ne gère pas l’authentification par valeur d’adresse MAC NULL et donc tout appareil avec une valeur d’adresse MAC NULL peut se connecter à la TV.
Vulnérabilité des API de la TV
Un pirate peut pirater et installer des logiciels malveillants par le biais des API de la TV comme File.Unzip ou Skype. Celles-ci peuvent être utilisées pour copier des fichiers sur n’importe quel système de fichiers inscriptible sur la cible et installer une porte dérobée.
Vulnérabilités de l’attaque MIM
En utilisant les vulnérabilités de l’attaque MIM, un pirate peut renifler les données car TV ne vérifie pas les certificats des serveurs. Ainsi avec de faux certificats un pirate peut facilement faire une attaque Man in Middle.
Selon les experts en solutions de sécurité de l’information et en formation, la création de logiciels malveillants pour les Smart TV n’est pas si différente de la création de logiciels malveillants pour les PC ou les systèmes Linux. L’OS de base est Linux et présente des vulnérabilités. Ainsi, en utilisant les commandes série et les vulnérabilités, un pirate peut facilement pirater une Smart TV. De plus, comme il n’y a pas d’antivirus ou de solutions anti-malware disponibles pour les Smart TV, il devient donc plus facile pour un hacker de pirater les Smart TV.