Les ravages du Teensy

To the non-french speaker, note that you can translate the articles using the Google Trad widget situated at the bottom of all pages.


En décembre 2017 j’ai acheté un Teensy. Jusqu’à présent je n’ai jamais eu le temps de jouer avec mais… La tentation m’a rattrapé et je vais donc vous montrer ce qu’il est possible de faire avec cette petite puce :

1

Le Teensy 3.2 est une micro puce de 5 centimètres de longueur pour environ 2 centimètres de largeur. Elle coûte une trentaine d’euros et vous pouvez vous la procurer sur plusieurs sites (coucou Amazon).

Son intérêt principal ? Eh bien elle simule un clavier. « C’est tout ? » Ahahah ! Vous n’êtes pas prêts 😎 ! C’est vrai qu’à priori simuler un clavier semble inutile. Sauf qu’avec le clavier on peut taper la combinaison Alt + F2 qui ouvre le lanceur d’applications sur la majorité des Linux :

2

On peut taper les lettres « x », « t », « e », « r », « m » puis la touche entrée afin d’ouvrir un shell :

3

Et puis au point où on en est, on pourrait aussi lancer une connexion distante via netcat ou encore télécharger un malware et l’exécuter (toujours en simulant un clavier) :

4.png

Ah et ce que j’ai oublié de vous dire, c’est que toutes ces actions sont effectuées en quelques dixièmes de secondes. Il suffit donc de passer devant le PC de votre ami, de brancher le teensy et de le ressortir pour avoir le contrôle totale de sa machine. Oui, on pourrait faire ça mais c’est pas cool pour le pote… Par contre en phase de pentest/intrusion physique ça peut être dévastateur !

Allez allez, moins de blabla je vous montre comment ça marche !

I/ Prérequis

Pour que votre Teensy fonctionne, il faut avant tout télécharger quelques outils. First things first, il va falloir télécharger l’IDE Arduino. C’est sur ça que vous écrirez votre code. Pour cela, choisissez simplement la version en fonction de votre OS ici. Vous allez récupérer une archive .tar. Pour ma part je vais la déplacer dans mon répertoire home et lancer l’installation via le script d’installation fourni.

Si tout s’est bien déroulé vous devriez pouvoir lancer l’IDE en utilisant cette commande :

sudo ./arduino

5.png

Ensuite il va falloir installer l’add-on teensyduino que vous trouverez ici. Encore une fois choisissez la version correspondant à votre système puis lancer l’installation. Relancez le programme arduino et allez dans l’ongle « Outils » puis cliquer sur « Type de cartes ». Si vous avez dans les choix « Teensy 3.2 » c’est que tout est bon ! Il ne reste plus qu’à configurer l’IDE avant de se lancer dans la programmation de la puce.

Premièrement il faut choisir la langue française pour le clavier. Pour cela aller dans « Outils » puis « Keyboard Layout » et sélectionner « français ». Toujours dans l’onglet « Outils », il faudra sélectionner l’option « Keyboard + Mouse + Joystick » dans le sous-onglet « USB type ».

Voilà ! On va pouvoir commencer à jouer 😄 !

II/ Programmer son Teensy

Attention ! Prenez l’habitude quand vous jouez avec un Teensy de toujours avoir le focus de votre souris sur un fichier texte vide. En effet à partir du moment où vous allez brancher votre Teensy, des instructions vont être envoyées. Si ce n’est pas votre Teensy et que quelqu’un y a laissé du code malveillant alors il pourrait arriver des trucs pas très cool à votre machine… Si le focus est sur un fichier texte alors les commandes injectées par le Teensy s’écriront directement sur le fichier texte et ne seront donc pas exécutées.

Quand on regarde l’IDE on remarque qu’il est divisé en deux parties :

6.png

La fonction setup dans laquelle on écrira du code qui ne s’exécutera qu’une seule fois et la fonction loop dans laquelle on écrira du code qui, à l’inverse, s’exécutera en boucle.

Pour commencer nous allons tout simplement coder un programme qui écrit « Hello World » en boucle. Voici le programme que nous allons utiliser :

7

Avant de l’exécuter via notre Teensy, il va falloir le compiler puis le téléverser sur notre puce. Pour cela il suffira de cliquer sur le check puis sur la flèche située au dessus :

8

Débranchez le Teensy de votre port USB, mettez le focus sur un fichier texte vide et rebranchez le, vous verrez que du texte va se taper tout seul :

9.png

Bueno, maintenant qu’on est sûr que le Teensy fonctionne bien, on va pouvoir passer aux choses sérieuses. Pour cet article je vais vous montrer comment coder un reverse shell pour Teensy.

Voici le code :

10.png

Concrètement ici, nous appuyons sur les touches Alt + F2, on entre le mot xterm puis on tape sur la touche entré. A partir de là on va utiliser l’utilitaire netcat pour se connecter à distance sur le localhost (nous même). Il suffit de remplacer localhost par une votre IP puis de faire une redirection de ports pour avoir un reverse shell depuis n’importe où sur Internet :

11.png

Nous avons bien notre reverse shell. Bon j’avoue il est un peu pas beau mais avec un peu de Python on peut le rendre bien plus esthétique. Essayez ça par exemple 😎 :

python -c 'import pty; pty.spawn("/bin/bash")'

12.png

C’est mieux non ?!

La question qui se pose maintenant c’est : « Est ce qu’on peut faire mieux ? » Spoiler : OUI ! On peut ajouter de la persistance pour que notre reverse shell se lance toutes les heures ! Par exemple, sur Linux on dispose de crontab dont j’avais déjà parlé dans cet article.

On peut aussi download une backdoor présente sur un serveur distant et l’exécuter afin d’avoir un accès total sur la machine. Bref les possibilités sont immenses et pour un test d’intrusion physique ça peut être très intéressant à utiliser ! D’ailleurs au moment où l’article sortira, je serai probablement en train de travailler sur des scripts un peu plus balèze. Je vous tiens au courant 😉 !


Comme d’habitude je vous rappelle que ce que je vous montre ne doit pas être utilisé à des fins malveillantes. On est pas des vilains blackhat nous !

Un commentaire

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s