Backdooring X11 with class
Je souhaite vous faire découvrir un talk de Matias Katz, hacker argentin, qui nous a présenté comment backdoorer X11. J’ai apprécié le concept d’utiliser nativement une fonction système liée à Linux. Aussi, sa facilité déconcertante à la réaliser m’a convaincu. La porte dérobée X11 permet d’accéder à un ordinateur verrouillé par l’intermédiaire de Dbus (un middlware). Il est vrai qu’une grande quantité de distributions Linux utilise ce mécanisme-ci. Mon article restitue le concept global de l’attaque.
Avant-propos : le contexte
Matias s’est présenté et à rapidement su détendre l’atmosphère.
Voici le slide de présentation :
Il a expliqué que X11 n’est pas un protocole mais un logiciel et a demandé à l’auditorat quels sont ceux qui avait un disque dur chiffré. Beaucoup ont levé la main dans le public. Il a poursuivit ses explications et nous a ré-expliqué les bases : notre ordinateur chiffré ne risque rien jusqu’au moment où il est déchiffré. C’est à ce moment là qu’il devient vulnérable. Dans son approche il donne un exemple : quand nous nous absentons quelques minutes il nous arrive de verrouiller l’ordinateur au lieu de l’éteindre. Seulement dans les faits c’est dans ce genre de moment que nous sommes le plus vulnérables car la phase de déchiffrage est déjà initialisée. L’idée étant qu’il ne nous reste plus qu’à trouver le mot de passe. La méthode d’injection n’est pas expliquée dans le talk.
Le fonctionnement global
L’utilisation des fonctions natives de l’OS (DBUS et l’UUID) recherchent la présence de nouveaux périphériques, 0.1s. DBUS est présent sur la partie haute du système (privilège root) et il s’associe directement avec le kernel. Pour information, il est disponible sur plusieurs Manager X ce qui accroit la portée de cette attaque. La méthode du déverrouillage est bien hardware ce qui permet de laisser peu de trace du passage car :
- Elle est non vérifiée par les antivirus.
- C’est une méthode d’exécution silencieuse qui n’éveille pas de soupçon.
- Elle est disponible sur tous les ordinateurs.
Il nous a démontré deux méthodes hardwares avec deux scripts :
- Avec une clé USB : elle devait rester en permanence connectée sinon la session se verrouillait.
- Avec une sortie Jack Audio : l’effet était ici de faire l’inverse en déverrouillant la session avec le casque jack. On retiendra surtout la combinaison spécifique créée en pattern : périphérique branché pendant une seconde, débranché 3 secondes, branché pendant une seconde. L’effet est assez étonnant, cela fonctionne parfaitement.
Vous aurez l’occasion de découvrir la démonstration dans la vidéo que la Hack In Paris publiera sur sa chaîne Youtube.
Comment éviter de se prendre la porte ?
Il est conseillé de supprimer Dbus mais cela est une contrainte car il faudrait se tourner vers un XDM différent, ou sinon, vous avez la possibilité de désactiver votre screen lock ce qui n’est pas pratique du tout ! Finalement, nous sommes beaucoup de Linuxiens à être exposé, à moins qu’au moindre petit déplacement vous éteignez votre machine (à condition qu’elle soit chiffrée). Être victime de cette méthode de backdoor ne se cantonne pas à l’usage de Linux car il existe winDBus sous Windows.
Le mot de la fin
La méthode d’injection n’étant pas expliquée et le fait qu’il faut au préalable être root sur la machine nous laisse de la marge. Vous comprendrez donc que n’est pas demain la veille que votre collègue viendra vous mettre sous écoute.