
Benutzerdefiniertes PowerShell-Modul zum Einrichten einer Active Directory-Laborumgebung für Penetrationstests.
Zweck dieses Moduls ist die Automatisierung der Bereitstellung einer Active Directory-Umgebung für das Üben interner Penetrationstests.
Dank an Joe Helle und seinen PowerShell for Pentesters Kurs bezüglich der Erstellung der Angriffsvektoren.
PSModulePath verschieben# PSModulePath anzeigen
$env:PSModulePath.split(";")
# Modul in den Pfad verschieben
Move-Item .\ADLab\ "C:\Windows\system32\WindowsPowerShell\v1.0\Modules\"
# Globales Modul importieren
Import-Module ADLab
# Lokales Modul importieren
Import-Module .\ADLab.psm1
Diese Funktion bereitet die aktuelle VM/den aktuellen Computer darauf vor, als Domänencontroller für die neue Gesamtstruktur zu dienen. Sie legt eine statische IP-Adresse fest, setzt den DNS-Server auf localhost und benennt den Computer um.
# Bereitet die aktuelle VM mit allen Standardwerten vor und zeigt ausführliche Ausgabe an
Invoke-DCPrep -Verbose
# Legt benutzerdefinierten Hostnamen fest und verwendet Google DNS für den Internetzugriff
Invoke-DCPrep -Hostname "DC" -NewIPv4DNSServer "8.8.8.8"
# Verwendet benutzerdefinierte IP und Standardgateway und zeigt ausführliche Ausgabe an
Invoke-DCPrep -Verbose -NewIPv4Address "192.168.1.99" -NewIPv4Gateway "192.168.1.1"
Die Funktion installiert das AD DS-Feature und richtet eine neue Active Directory-Gesamtstruktur ein, ohne dass Benutzereingaben erforderlich sind. Startet den Computer nach Abschluss neu.
# Installiert eine neue Gesamtstruktur mit dem FQDN "bufu-sec.local" und dem Standard-DSRM-Passwort "Password!"
Invoke-ForestDeploy -Domain bufu-sec.local
# Installiert eine neue Gesamtstruktur mit dem FQDN "bufu-sec.local", setzt das DSRM-Passwort auf "P@ssword!" und gibt Debug-Meldungen aus
Invoke-ForestDeploy -Domain "bufu-sec.local" -DSRMPassword "P@ssword!" -Verbose
Die Funktion beginnt mit der Installation des DNS-Features. Anschließend fügt sie die primäre Zone hinzu und konfiguriert den Server-Weiterleiter.
# Installiert und konfiguriert DNS auf dem aktuellen Host und zeigt ausführliche Ausgabe an.
Invoke-DNSDeploy -Verbose -NetworkID 192.168.47.0/24 -ZoneFile "47.168.192.in-addr.arpa.dns" -ServerForwarder 1.1.1.1
Die Funktion beginnt mit der Installation des DHCP-Features auf dem aktuellen Computer. Anschließend fügt sie die erforderlichen Sicherheitsgruppen hinzu und autorisiert den neuen DHCP-Server beim Domänencontroller. Abschließend konfiguriert sie den neuen DHCP-Bereich mit den übergebenen Werten.
# Installiert und konfiguriert DHCP auf dem lokalen DC.
Invoke-DHCPDeploy -Verbose -ScopeName "Default" -ScopeID 192.168.47.0 -StartIP 192.168.47.100 -EndIP 192.168.47.200 -SubnetMask 255.255.255.0 -DNSServer 192.168.47.10 -Router 192.168.47.10
# Installiert und konfiguriert DHCP auf dem angegebenen DC.
Invoke-DHCPDeploy -Verbose -ScopeName "Default" -ScopeID 192.168.47.0 -StartIP 192.168.47.100 -EndIP 192.168.47.200 -SubnetMask 255.255.255.0 -DNSServer 192.168.47.10 -Router 192.168.47.10 -DCFQDN DC01.bufu-sec.local
Die Funktion beginnt mit der Erstellung der Gruppen und Organisationseinheiten (OUs), die in der globalen Gruppen-Variablen definiert sind. Anschließend generiert sie standardmäßig 10 Benutzerobjekte pro OU.
# Gesamtstruktur mit Objekten füllen und ausführliche Ausgabe anzeigen
Invoke-ADLabConfig -Verbose
# 50 Benutzer pro OU erstellen und ausführliche Ausgabe anzeigen
Invoke-ADLabConfig -Verbose -UserCount 50
Die Funktion wählt eine bestimmte Anzahl zufälliger Benutzer aus der Domäne aus und setzt das Flag "DoesNotRequirePreAuth" für jeden einzelnen. Standardkonten wie Administrator und krbtgt werden ausgeschlossen. Standardmäßig werden 5 % der Benutzer ASREP-Roast-fähig gemacht.
# 5 % der Benutzer ASREP-Roast-fähig machen und ausführliche Ausgabe anzeigen
Set-ASREPRoasting -Verbose
# 10 zufällige Benutzer in der Domäne ASREP-Roast-fähig machen
Set-ASREPRoasting -VulnerableUsersCount 10
# Benutzer bufu ASREP-Roast-fähig machen und ausführliche Ausgabe anzeigen
Set-ASREPRoasting -Users bufu -Verbose
# Die angegebene Liste von Benutzern ASREP-Roast-fähig machen und ausführliche Ausgabe anzeigen
Set-ASREPRoasting -Users ("bufu", "pepe") -Verbose
Die Funktion wählt eine bestimmte Anzahl zufälliger Benutzer aus der Domäne aus und fügt jedem einen SPN hinzu. Standardkonten wie Administrator und krbtgt werden ausgeschlossen. Standardmäßig werden 5 % der Benutzer kerberoast-fähig gemacht.
# 5 % der Benutzer ASREP-Roast-fähig machen und ausführliche Ausgabe anzeigen
Set-Kerberoasting -Verbose
# 10 zufällige Benutzer in der Domäne ASREP-Roast-fähig machen
Set-Kerberoasting -VulnerableUsersCount 10
# Benutzer bufu ASREP-Roast-fähig machen und ausführliche Ausgabe anzeigen
Set-Kerberoasting -Users bufu -Verbose
# Die angegebene Liste von Benutzern ASREP-Roast-fähig machen und ausführliche Ausgabe anzeigen
Set-Kerberoasting -Users ("bufu", "pepe") -Verbose
Die Funktion beginnt damit, der Gruppe Chads GenericAll-Rechte auf die Gruppe Domain Admins zu gewähren. Anschließend gewährt sie der Gruppe Degens GenericAll-Rechte auf die Gruppe Chads. Schließlich gewährt sie GenericAll-Rechte auf einige Benutzer der Gruppe Degens an einige Benutzer der Gruppe Normies.
# Angreifbare ACLs erstellen und ausführliche Ausgabe anzeigen
Set-BadACLs -Verbose
Die Funktion konfiguriert zunächst eine GPO, um WinRM über TCP-Port 5985 für in die Domäne eingebundene Systeme zu erlauben. Anschließend aktiviert sie PS Remoting über die GPO.
# PS Remoting aktivieren und ausführliche Ausgabe anzeigen
Set-PSRemoting -Verbose