En gros, toute l'attaque repose sur l'exécution d'un payload spécifique, comprendre une série de scripts bien sentis pour lancer autant d'exécutables très connus qui iront farfouiller votre configuration à loisir, contenu sur le périphérique USB. Dès lors se posent deux questions.

  1. Comment est-ce que cette charge est exécutée lors d'une simple insertion ?
  2. Comment est-ce que cette charge accède à tout ce qu'elle a besoin de récupérer ?

D'abord l'exécution. La question est de taille, mais ne cherchez pas du côté de l'exploitation d'un driver mal écrit chargé avec un device bidouillé ou d'une fonctionnalité super secrête qu'on vient juste de la découvrir. Il s'agit d'un bête autorun... Sauf que tout le monde, ou presque[1], a déjà essayé de coller un autorun sur une clé USB et constaté le cuisant échec. Trop facile. Comme c'est très bien expliqué chez Microsoft, cette fonction est par défaut restreinte aux lecteurs de CDROM/DVDROM et aux disques fixes, mais pas aux lecteurs amovibles, classe à laquelle appartiennent les clés USB. Si on veut que ça marche, il faut soit aller bidouiller la base de registres pour l'activer sur le type "DRIVE_REMOVEABLE", ce qui n'est pas envisageable dans le cas présent, soit se débrouiller pour que le device USB soit vu comme un lecteur de CD et/ou DVD. Et c'est bien évidemment cette dernière solution qui est retenue, en utilisant un des périphériques tout prêts répondant aux spécifications U3. Ça veut dire quoi ? Tout simplement qu'il va présenter une partie de sa mémoire flash comme lecteur de CDROM USB, permettant ipso facto l'exécution d'un autorun. Ça tombe bien non ? Il ne reste qu'à modifier le contenu natif de cette partie spécifique de la clé USB choisie et le tour est joué. Enfantin non ? Encore un peu de social engineering et vous finirez bien par retrouver votre clé branchée sur un des ports USB de votre cible ; social engineering qui sera votre seule arme si jamais vous ne disposiez pas du modèle de clé adéquat. Good luck Jim.

Maintenant que notre programme tourne, il va falloir qu'il accède à pleins de choses. Élévation de privilège ? Que nenni. La condition d'exploitation de base est que l'utilisateur logué possède les droits d'administration. Cash, direct. Forcément, on sent bien que ça va être tout de suite plus facile. Ah oui, et puis j'oubliais une autre condition : le poste ne doit pas être verrouillé, sinon l'autorun ne part pas. Ça commencerait à faire beaucoup de "si". Donc si ces conditions sont bien remplies, on récupère tout ce qu'il y a à récupérer et on s'en va. Je vous laisse finir de lire l'article, avec le crackage des mots de passe par Rainbow Table et les mesures à prendre, en particulier la désactivation de l'autorun qui est toujours une bonne idée sur un poste sans cesse en vadrouille, donc particulièrement exposé aux attaques physiques.

Et là vous devez vous dire, le père Sid, il est dans sa période Jean-Pierre Coffe, il casse tout ce qu'il lit. Et bien là non en fait. J'aime bien leur truc justement parce que c'est simple et que ça marche. Simple parce qu'il suffit d'acheter un truc au magasin du coin et de le reflasher pour être prêt. Pas d'exploit alambiqué, juste un truc simplissime qui fonctionne tout le temps. Et l'attaque marche parce qu'on ne compte plus le nombre de gens qui bossent en administrateur sur leur laptop et qui ne le verrouillent pas systématiquement. Le verrouillage, c'est de l'hygiène de vie. Chez mon ancien employeur, ce type de mauvaise habitude se réglait à coups de mails collectifs envoyés depuis la machine de l'utilisateur étourdi. Thérapie par la honte. Très efficace. Par contre, pour le compte administrateur, c'est plus compliqué. Un laptop, ça bouge, et ça se connecte un peu partout. Besoin de refaire la configuration réseau ? Il faut être administrateur. Besoin de brancher une nouvelle imprimante ? Il faut être administrateur. On ne compte plus le nombre de cas pour lesquels ces droits seront nécessaires. Et comme Windows n'aide pas l'utilisateur à jongler avec ses droits, il se logue en admin et ne se pose plus de question. Parait que Vista doit apporter des solutions à ce type de problème.

De manière plus générale, les attaques physiques ne sont pas assez considérées. Et pourtant... De l'iPod qui vous veut du mal aux problèmes de drivers mal écrits[2], en passant par diverses fonctionnalités malheureuses, il est évident qu'il y a des choses à faire. Un scénario par exemple que je mentionnais l'an dernier : poussez une carte réseau PCMCIA courante dans l'emplacement adéquat d'un portable et connectez la. À votre avis, il se passe quoi ? Le driver monte tout seul, l'interface s'active puisque le link est là et les requêtes DHCP commencent à pointer le bout de leur nez. Remarquez, il suffit souvent de brancher le câble dans l'interface ethernet intégrée pour obtenir le même résultat, je vous l'accorde. Sauf que là, l'interface que vous obtenez à une configuration par défaut, ce qui peut se révéler intéressant pour un attaquant. Et vous pouvez également vous intéressez à l'autre sens : attaquer des périphériques qui se connectent chez vous. Ce qui est à priori encore plus facile, comme cela a été démontré à la rump du dernier SSTIC lors de la présentation de l'outil USBDumper. Comment jouer avec une clé USB négligeamment branchée sur votre poste. Quand on voit ce que contiennent ces stockages ambulant, on imagine très vite les conséquences de la manœuvre, de l'évidente récupération d'informations confidentielles à l'implantation de code pas toujours très gentil.

Tout ça pour dire que même si la performance technique de Hak.5 ne casse pas trois pattes à un canard, c'est le genre de démonstration toute simple qui fait systématiquement mouche devant un parterre de décideurs. Comme quoi, quand il s'agit de convaincre, il n'est pas franchement nécessaire de sortir l'artillerie lourde. Deux ou trois attaques click'o'drome bien préparées[3], une ou deux vidéos et ce genre de démo vous propulsent au rang de shaman de la sécurité. L'effet est quasiment garanti. Just keep it simple, stupid !

Notes

[1] Si vous n'avez jamais essayé, faites le, ça prend trente secondes.

[2] Mais pas encore très exploités je trouve...

[3] J'aime bien Metasploit pour ça.