Common questions about adPEAS v2.
adPEAS (Active Directory Privilege Escalation Awesome Scripts) is a PowerShell tool for identifying security misconfigurations in Active Directory environments. It is designed for authorized penetration testing and security auditing.
| Feature | adPEAS v2 | PowerView | ADModule |
|---|---|---|---|
| External Dependencies | None | None | RSAT Required |
| Standalone File | Yes | Yes | No |
| Kerberos Auth Methods | All (OPtH, PtK, PKINIT, etc.) | Limited | Limited |
| Security Checks | 41+ | Enumeration only | None |
| OPSEC Mode | Yes | No | No |
| Output Formatting | Colored + Reports | Raw | Raw |
No. adPEAS and BloodHound serve different purposes:
- adPEAS: Real-time security assessment with actionable findings
- BloodHound: Attack path visualization and graph analysis
They complement each other well. Use adPEAS for quick vulnerability assessment and BloodHound for comprehensive attack path analysis.
Windows PowerShell 5.1 or higher. PowerShell Core (6+) is not fully supported due to .NET Framework dependencies.
No. adPEAS uses only built-in .NET Framework classes (System.DirectoryServices.Protocols). No external modules are required.
Yes. Use credentials or other authentication methods:
Connect-adPEAS -Domain "contoso.com" -Username "john.doe" -Password "pass"You may need to configure DNS or specify the DC directly:
Connect-adPEAS -Domain "contoso.com" -Server "10.0.0.10" -DnsServer "10.0.0.1" -Username "john.doe" -Password "pass"adPEAS does not have built-in SOCKS support, but works perfectly through local port forwards (chisel, ligolo-ng, SSH, socat). Use -Server "127.0.0.1" with -ForceSimpleBind for the most reliable setup:
Connect-adPEAS -Domain "contoso.com" -Server "127.0.0.1" -Username "john.doe" -Password "P@ssw0rd" -ForceSimpleBindFor slow tunnel connections, increase the LDAP timeout with -TimeoutSeconds:
Connect-adPEAS -Domain "contoso.com" -Server "127.0.0.1" -Username "john.doe" -Password "P@ssw0rd" -ForceSimpleBind -TimeoutSeconds 120See Troubleshooting: Pivoting and Tunneling for detailed setup guides.
| Scenario | Recommended Method |
|---|---|
| Domain-joined machine | -UseWindowsAuth |
| Known credentials | -Credential or -Username -Password |
| Compromised hash | -NTHash or -AES256Key |
| Stolen certificate (Kerberos available) | -Certificate (PKINIT) |
| Stolen certificate (port 88 blocked) | -Certificate -ForcePassTheCert (Schannel) |
| Ticket from other tool | -Kirbi or -Ccache |
Kerberos authentication:
- Does not expose password to the DC (unlike SimpleBind)
- Works with hashes and keys (no plaintext needed)
- Is the native Windows authentication protocol
If Kerberos fails (port 88 blocked, etc.), adPEAS automatically falls back to NTLM Impersonation (which supports LDAP signing). If NTLM Impersonation also fails, it falls back to SimpleBind. Note: This tiered fallback only applies to password-based authentication. Hash/key-based methods (NT Hash, AES keys) require Kerberos and have no fallback.
Connect-adPEAS -Domain "contoso.com" -Username "john.doe" -Password "pass" -ForceSimpleBindUse -ForceNTLM for NTLM Impersonation (similar to runas /netonly):
Connect-adPEAS -Domain "contoso.com" -Username "john.doe" -Password "pass" -ForceNTLMThis keeps your existing Kerberos tickets intact and uses NTLM for network authentication.
Yes. Use the -NTHash parameter:
# Example with NT-Hash
Connect-adPEAS -Domain "contoso.com" -Username "john.doe" -NTHash "32ED87BDB5FDC5E9CBA88547376818D4"Yes. Use the -Certificate parameter:
Connect-adPEAS -Domain "contoso.com" -Certificate "user.pfx" -CertificatePassword "pass"Yes. Use -ForcePassTheCert to authenticate via Schannel (TLS client certificate) instead of PKINIT:
Connect-adPEAS -Domain "contoso.com" -Certificate "user.pfx" -ForcePassTheCertThis only needs port 636 (LDAPS). The certificate must be CA-issued (Shadow Credentials certificates don't work with Schannel). See Authentication Methods: Pass-the-Cert for details.
OPSEC mode skips checks that generate active traffic or request tickets:
- Kerberoasting - Requests TGS tickets for service accounts
- AS-REP Roasting - Requests AS-REP without pre-authentication
- BloodHound Collection - Generates many LDAP queries across the domain
All other enumeration continues normally. OPSEC mode is recommended when stealth is critical.
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -OPSECYes. Use the -Module parameter:
# Single module
Invoke-adPEAS -Module ADCS
# Multiple modules
Invoke-adPEAS -Module Domain,Accounts,CredsOr run individual check functions:
Connect-adPEAS -Domain "contoso.com" -UseWindowsAuth
Get-KerberoastableAccounts
Get-ADCSVulnerabilitiesThe ADCS module checks for:
- ESC1: Enrollee-supplied SAN + client authentication
- ESC2: Any purpose EKU
- ESC3: Enrollment agent template abuse
- ESC4: Vulnerable template ACLs
- ESC8: Web enrollment detection (HTTP/HTTPS + NTLM/EPA configuration)
- ESC9: No security extension + client auth
- ESC13: Issuance policy linked to AD group
- ESC15: Schema v1 + enrollee-supplied subject (CVE-2024-49019)
Not implemented: ESC6 (requires registry access via RPC, not LDAP), ESC7 (requires DCOM/RPC to CA, not LDAP)
Get-ADCSVulnerabilities# Default: Both formats (creates .txt and .html)
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Outputfile .\report
# Text report only
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Outputfile .\report -Format Text
# HTML report only
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Outputfile .\report -Format HTMLThe file extension (.txt or .html) is added automatically based on the format.
Legacy cmd.exe doesn't support ANSI escape codes. Use:
- Windows Terminal (recommended)
- ConEmu
- PowerShell ISE (limited support)
Or output to file instead.
| Symbol | Meaning |
|---|---|
[?] |
Section header, information |
[!] |
Critical finding, vulnerability |
[+] |
Interesting finding for investigation |
[*] |
General note, information |
[#] |
Secure configuration |
Yes, but sequentially:
# Domain 1
Connect-adPEAS -Domain "contoso.com" -UseWindowsAuth
Invoke-adPEAS -Outputfile .\contoso -Format All
Disconnect-adPEAS
# Domain 2
Connect-adPEAS -Domain "fabrikam.com" -UseWindowsAuth
Invoke-adPEAS -Outputfile .\fabrikam -Format All
Disconnect-adPEAS| Version | Use Case |
|---|---|
adPEAS.ps1 |
Development, debugging, learning |
adPEAS_min.ps1 |
Regular use |
adPEAS_ultra.ps1 |
Size-constrained environments |
adPEAS_obf.ps1 |
Smallest size, obfuscated transfer |
- Download the new release
- Replace the .ps1 file
- Re-import
Remove-Module adPEAS -ErrorAction SilentlyContinue
Import-Module .\adPEAS.ps1adPEAS is a security tool. Like all security tools, it is legal to use when:
- You own the target systems, or
- You have written authorization from the owner
Unauthorized use against systems you don't own or have permission to test is illegal.
For professional engagements, yes. Always get written authorization (scope document, rules of engagement) before testing.