
PowerShell-Tool zur Automatisierung der Active Directory-Enumeration.
Umfassende Active-Directory-Sicherheitsbewertung — keine Abhängigkeiten, einzelne Datei, sofort einsatzbereit.
adPEAS ist ein PowerShell-basiertes Sicherheitsbewertungstool, das Fehlkonfigurationen, Schwachstellen und Privilegieneskalationspfade in Active-Directory-Umgebungen identifiziert. Es wurde für Penetrationstester, Sicherheitsauditoren und Red Teams entwickelt, die ein zuverlässiges, eigenständiges Tool benötigen, das auf jedem Windows-System funktioniert — kein RSAT, kein ActiveDirectory-Modul, keine Drittanbieter-Abhängigkeiten.
adPEAS v2 ist eine vollständige Neuimplementierung von adPEAS v1. Es ersetzt den veralteten DirectoryEntry/DirectorySearcher-Ansatz durch eine einheitliche System.DirectoryServices.Protocols.LdapConnection-Architektur und fügt native Kerberos-Authentifizierung, erweiterte Berichterstattung und offensive Operationen hinzu — alles in reinem PowerShell.
Neu bei adPEAS? Sieh dir den Quick-Start-Leitfaden an oder lies die Blog-Serie auf blog.sekurity.de für einen tiefen Einblick in Architektur, Authentifizierung und Interna.
| Kategorie | Highlights |
|---|---|
| Authentifizierung | Anmeldeinformationen, PKINIT, Pass-the-Cert, NT-Hash, AES-Schlüssel, Windows-Authentifizierung, Kerberos-first mit automatischem Fallback |
| Sicherheitsprüfungen | Domänenkonfiguration, Kerberoast, ASREPRoast, ACLs, DCSync, Delegierung, AD-CS-Eskalationspfade, GPO-Missbrauch, LAPS, BitLocker-Wiederherstellungsschlüssel, veraltete Systeme |
| Berichterstattung | Konsole (farbcodiert), Klartext, interaktives HTML, JSON-Export |
| Offensive Ops | Kerberoasting, AS-REP Roasting, Golden/Silver/Diamond Tickets, RBCD, Shadow Credentials, Pass-the-Ticket |
| BloodHound | Integrierter BloodHound-CE-Collector (ZIP-Export) |
| OPSEC-Modus | Aktive Tests überspringen (Kerberoast, ASREPRoast, BloodHound) |
| Bereitstellung | Einzelne .ps1-Datei, kein RSAT, keine externen Module, funktioniert offline und in air-gapped Umgebungen |
Kein ActiveDirectory-Modul, RSAT oder externe PowerShell-Module erforderlich.
| Datei | Größe | Anwendungsfall |
|---|---|---|
adPEAS.ps1 | ~4,5 MB | Entwicklung, Debugging, Code-Review |
adPEAS_min.ps1 | ~3-4 MB | Reguläre Nutzung mit geringerem Platzbedarf |
adPEAS_ultra.ps1 | ~3 MB | Minimale Größe, keine Kommentare |
adPEAS_obf.ps1 | <1 MB | Kleinste Größe, obfuskiert für die Übertragung |
Alle vier Versionen sind funktional identisch. Wähle die passende für dein Bereitstellungsszenario.
# Clone the repository
git clone https://github.com/61106960/adPEAS.git
cd adPEAS
Der Branch main enthält immer einen aktuellen Build aller vier Varianten, der mit jedem Fix und jeder Funktion neu erstellt wird, sodass die oben genannten Roh-URLs den neuesten Code bereitstellen. Diese Builds tragen eine Entwicklungsversionszeichenfolge (2.5.1+20260917-1759). Jedes mit einem Tag versehene GitHub Release hat die vier stabilen Builds als herunterladbare Assets angehängt, mit einer sauberen Versionszeichenfolge (2.5.1) — verwenden Sie diese, wenn Sie eine bekannte, zitierfähige Version benötigen. Um selbst aus dem Quellcode zu erstellen:
git clone https://github.com/61106960/adPEAS.git
cd adPEAS
.\Build-Release.ps1
Dies erzeugt alle vier Varianten (adPEAS.ps1, adPEAS_min.ps1, adPEAS_ultra.ps1, adPEAS_obf.ps1) im Repository-Stammverzeichnis. Erfordert Windows PowerShell 5.1 und keine zusätzlichen Abhängigkeiten.
# Option 1: Import as module (recommended)
Import-Module .\adPEAS.ps1
# Option 2: Dot-sourcing
. .\adPEAS.ps1
# Option 3: Read and execute in memory
Get-Content -Raw .\adPEAS.ps1 | Invoke-Expression
# Option 4: Load directly from GitHub into memory (no file on disk).
# Both variants work; on an older/hardened host that still defaults to TLS 1.0,
# prepend once: [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# 4a: WebClient - shortest. DownloadString detects and strips the file's UTF-8 BOM
# itself, so nothing extra is needed. WebClient is a legacy API but works everywhere.
Invoke-Expression (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/61106960/adPEAS/main/adPEAS_obf.ps1')
# 4b: Invoke-WebRequest - the modern cmdlet. Its .Content keeps the BOM as a leading
# U+FEFF that Invoke-Expression cannot parse, so TrimStart removes it first.
Invoke-Expression ((Invoke-WebRequest -Uri "https://raw.githubusercontent.com/61106960/adPEAS/main/adPEAS_obf.ps1" -UseBasicParsing).Content.TrimStart([char]0xFEFF))
# Domain-joined machine (current user)
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth
# With credentials
Invoke-adPEAS -Domain "contoso.com" -Username "john.doe" -Password "P@ssw0rd!"
# OPSEC mode (skip Kerberoast, ASREPRoast, BloodHound)
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -OPSEC
# Connect once
Connect-adPEAS -Domain "contoso.com" -UseWindowsAuth
# Run full scan
Invoke-adPEAS
# Or run individual checks
Get-KerberoastableAccounts
Get-ADCSVulnerabilities
Get-DangerousACLs
# Disconnect when done
Disconnect-adPEAS
# Credentials
Connect-adPEAS -Domain "contoso.com" -Credential (Get-Credential)
# Overpass-the-Hash (NT-Hash)
Connect-adPEAS -Domain "contoso.com" -Username "admin" -NTHash "32ED87BDB5FDC5E9CBA88547376818D4"
# Pass-the-Key (AES256)
Connect-adPEAS -Domain "contoso.com" -Username "admin" -AES256Key "4a3b2c1d5e6f..."
# PKINIT (Certificate)
Connect-adPEAS -Domain "contoso.com" -Certificate "user.pfx"
# Pass-the-Cert / Schannel (LDAPS, no Kerberos)
Connect-adPEAS -Domain "contoso.com" -Certificate "user.pfx" -PassTheCert
# LDAPS
Connect-adPEAS -Domain "contoso.com" -UseWindowsAuth -UseLDAPS
# All formats (default) — creates .txt, .html, and .json
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Outputfile .\report