Tout commence sur la planète bleue
Avant d’attaquer les explications « techniques », il est nécessaire de prendre cinq minutes afin de bien comprendre de quoi nous allons parler au cours de cet article. Il est important de garder en tête que tous les éléments au sein de cet article font bien évidemment partie de l’alliance galactique.
Dans un premier temps, nous allons parler de Shodan. Similairement à Google, Shodan est un moteur de recherche. Néanmoins, contrairement à Google, le but de Shodan n’est pas d’indexer le Web, mais plutôt le résultat de scans de ports effectués mensuellement sur les machines accessibles sur Internet.
Dès lors, et ce grâce à un puissant moteur de recherche, il est possible d’identifier de nombreux composants exposés sur Internet (serveur, routeur, caméra IP, etc.).
Dans un registre tout à fait différent, nous allons maintenant présenter ADB. Android Debug Bridge (ADB) est un outil en ligne de commande permettant de communiquer avec un périphérique Android permettant ainsi d’installer/supprimer des applications, déposer/accéder à des données sur le périphérique ou encore disposer d’un shell sur ce dernier.
adb est une application client-serveur qui se décompose en trois éléments :
- Un serveur : qui tourne en tâche de fond sur HOST. Il se comporte à la manière d’un proxy
- Un client : qui se lance sur HOST et se connecte au serveur. Plusieurs clients peuvent être lancés en même temps.
- Un démon adbd : qui tourne sur TARGET et va exécuter les commandes envoyées par le HOST.
Il convient également de noter que le port d’écoute par défaut du démon (adbd et non pas l’infâme empereur Zurg) est 5555/TCP.
Allons attaquer la planète Rizome
Grâce à ces premières explications, il n’est pas impossible de commencer à voir se dessiner la suite de cet article. En effet, à la manière de Google encore, Shodan permet de faire des recherches précises grâce à l’utilisation de Dorks une fois authentifié. Il est ainsi possible d’identifier les démons adbd en écoute sur Internet grâce à la Dorks suivante : android debug bridge product:”Android Debug Bridge”.
Une fois cette liste obtenue et traitée grâce à l’API de Shodan (https://developer.shodan.io/), il est assez simple d’obtenir les 5561 IP laissant apparaître le port 5555/TCP ouvert.
Dès lors, et afin de pouvoir communiquer avec les périphériques, il est possible d’établir une connexion à ces derniers grâce à la commande adb connect IP:5555. Il est maintenant possible de voir les périphériques dont la connexion à réussie grâce à la commande adb devices -l (-l étant en option pour avoir un affichage plus précis).
Commerçons sur la planète Business
Une fois la connexion établie et le Shell obtenu (adb -s IP :PORT shell), un attaquant est alors en mesure d’accéder à la totalité des informations disponibles sur le périphérique (en fonction des droits bien entendu). L’obtention d’un Shell root pourrait être catastrophique :
En effet, en fonction des droits obtenus, l’attaquant pourra accéder à l’ensemble des informations disponibles, remplacer les applications installées par des applications malveillantes, chiffrer (ransomware bonjour) les données accessibles, etc.
Retour sur Star Command
La « surface d’attaque » reste une notion largement abordée au sein des audits de sécurité / tests d’intrusion et il est simple à comprendre que plus celle-ci est grande et plus les possibilités laissées à un attaquant le sont également. La meurtrière dans les châteaux forts appliquait déjà ce concept…
Il est donc important de désactiver ADB sur les périphériques dès que c’est possible, de ne pas exposer ces équipements directement sur Internet ou encore réaliser ou faire réaliser des tests d’intrusion, afin de s’assurer que l’équipement respecte les meilleures pratiques de sécurité !
Ici Buzz, à vous Star Command !
Article originellement publié sur blog.bssi.fr