(modifié le 18 novembre 2016 à 4:19)





Prenez un Raspberry Pi Zero à 5 euros et ajoutez-y un soupçon de logiciels libres bien paramétrés et vous obtenez une boite à backdoor autonome USB.

Ce boitier capable de faire du MITM s'appelle PoisonTap, crée par Samy Kamkar. Samy est connu pour avoir identifié des faiblesses dans le NFC, RFID mais aussi un ver MySpace portant son prénom.

PoisonTap se fait passer pour une carte ethernet USB. Cette émulation d'un périphérique réseau passe par la falsification du vendor ID. Comme le réseau filaire est toujours prioritaire au WiFi la machine reliée au PoisonTap va demander une adresse IP, qui lui sera délivrée par le serveur DHCP du boitier.

PoisonTap intercepte ensuite le trafic HTTP, donc non sécurisé, laissant de nombreuses informations à l'attaquant. Un simple navigateur est nécessaire pour que l'exploit fonctionne. PoisonTap installe une porte dérobée qui permet à l'attaquant de se connecter à distance sur la machine de la victime, via un serveur distant.

En fait il suffit de patienter une minute et PoisonTap peut ensuite être retiré tout en laissant l'exploit fonctionnel. Samy précise que PoisonTap permet d'outrepasser les mécanismes de sécurité comme same-origin policy (SOP), X-Frame-Options HTTP response headers, HttpOnly cookies, DNS pinning, et cross-origin resource sharing (CORS).

Quelques solutions existent pour se protéger de ce type d'attaque : inhiber les ports USB (logiciel ou matériel), ne surfer que sur des sites en HTTPS ayant HSTS activé, passer son ordi portable en veille prolongée chiffrée au lieu de la veille classique car un mot de passe sera demandé au réveil pour accéder à l'espace mémoire de la machine. Quand il est activé sur un site, HSTS indique au navigateur que la totalité du site est en HTTPS et le navigateur refusera alors tout contenu non chiffré. Enfin vider son cache navigateur car c'est là que s'installe la porte dérobée...

Fonctionne avec Windows et Mac, y compris quand un mot de passe est présent. PoisonTap tourne avec un serveur NodeJS.

Le code source est dispo sur github et les explications sur le blog de Samy.

Ne vous amusez pas avec ce code sur autre chose que vos propres machines car vous vous exposez à de sérieux ennuis judiciaires.