Peut-être connaissez-vous (et pratiquez-vous) la punition exemplaire qui consiste à profiter qu’un collègue ait oublié de verrouiller sa session en quittant son poste pour usurper son identité et envoyer un mail de sa part à toute la boite en promettant joyeusement d’apporter des croissants le lendemain.
Quiconque s’est déjà retrouvé à la place du punisseur (ou croissanteur) a connu ce fameux stress à la James Bond, lorsqu’il s’agit d’envoyer un mail à un nombre (plus ou moins) important de personnes dans un temps très limité (et parfois même lorsqu’un autre collègue détourne l’attention du croissanté resté dans le même bureau).
C’est ce dernier point qui a fait passer l’art du croissantage de l’artisanat à l’industrialisation grâce à un dispositif de type WHID (Wireless Human Interface Device) Injector.
Le fonctionnement :
En gros ça reprend le fonctionnement d’une Rubber Ducky : ça simule un clavier pour envoyer à la machine cible des séquences de touches (préparées dans des scripts) ; sauf que ! Les scripts peuvent être envoyés à la volée, à volonté, via WIFI.
Le Matos
- Un Arduino // Pour la partie HID
- Un ESP8266 // pour monter l’AP
- Un connecteur USB type A // pour brancher le truc quoi.
J’ai pas touché à un fer à souder depuis des plombes, du coup je suis passé par un hard tout fait designé par Luca Bongiorni, dispo chez nos amis chinois de chez April Brother : https://blog.aprbrother.com/product/cactus-whid
Le Soft
Le matos est envoyé « a poil », il faut donc prévoir de flasher le firmware de l’ESP8266 + compiler et installer l’une des couches soft compatible (Liste peut être non exhaustive) :
- WHID Injector (https://github.com/whid-injector/WHID)
- USaBUSe (https://github.com/sensepost/USaBUSe)
- Wifi Ducky (https://github.com/spacehuhn/wifi_ducky)
- ESPloitV2 (https://github.com/exploitagency/ESPloitV2)
C’est pas la meilleure version (c’est vraiment basique quoi), mais j’ai fait tourner WHID Injector avec … WHID Injector pour des raisons de merde_le_temps_passe_vite. Moyennant quelques modifs pour passer le layout du clavier en FR, c’est straight forward.
Concrètement, vous vous connectez en Wifi sur le bordel (la portée est pas dégueu en plus, ce chip est impressionnant) puis http sur l’IP de l’ESP8266 (configurée dans les sources), vous arrivez sur une très belle interface du turfu5.0 qui vous permet :
- De formater le FS
- D’uploader des payloads
- De choisir parmi les payloads
- D’envoyer …. la sauce
Le Script
La syntaxe (si on peut vraiment parler de syntaxe xD) :
Press:X /* avec X = la valeur décimale du caractère ASCII de la touche / valeur du key modifier dispo dans les ref arduino */ Press:X+Y /* même combat, avec deux touches en même temps, eg : Press:131+114 = WIN + ref */ Print:blabla /* Ben ça print blabla */ PrintLine:blabla /* Ca print blabla et ça carriage return */ Delay /* Attente active de 2000 ms par défaut, modifiable dans les sources, mais j'ai eu pas mal de couilles en essayant de baisser, c'est du WIP */
Les croissants (naturellement, c’est améliorable, mais ça a déjà fait ses preuves une fois) :
# REM Outlook -> send email -> Close outlook Press:131+114 PrintLine:outlook Press:128+110 Print:adressemail Press:64 Print:domaine.com Press:179 Press:179 Print:Croissants pour tout le monde yay ! Press:179 PrintLine:Recette pour une douzaine de croissants: Press:176 PrintLine:-20g de levure fraiche (c'est primordial!) PrintLine:-100g de beurre doux PrintLine:-500g de farine PrintLine:-10g de sel PrintLine:-50g de sucre PrintLine:-15g de poudre de lait entier PrintLine:-240g d'eau tiede Press:176 PrintLine:Quitte a cuisiner toute la nuit, je vous apporte tout ca des demain de bonne heure et de bonne humeur ! Press:176 Print:Bisous bisous Press:128+176 Press:176 Press:130+197
Alors, bien sûr ce genre de « gadget » permet d’aller bien plus loin que d’envoyer des croissants (cf les payloads sur les git), mais rappelons que notre objectif premier est de manger des croissants.
MiamMiam
./Kriss