SEKurity GmbH Logo
adPEAS

adPEAS v2 Episode 4: Security Checks - All Modules at a Glance

Complete overview of adPEAS v2 security check modules: Domain, Accounts, Delegation, Rights, Creds, ADCS, Computer, GPO, and Application checks for Active Directory.

Alexander Sturz

Founder & Red Team Lead

8 min read
Share:

Introduction

The connection is up, authentication is done - now the real work begins. The previous episodes covered how adPEAS connects to Active Directory and which authentication methods are available. This post is all about the core: the security checks.

When you manually analyze an Active Directory, you can easily spend several hours on LDAP filters, ACL parsing, and GPO analysis. adPEAS automates that - but not as a black box. Every check has a clear purpose, and understanding what is being checked helps you better contextualize the results and know where it’s worth digging deeper.

adPEAS organizes the checks into ten modules. Each module covers a specific attack vector or configuration area. You can run all modules at once, or selectively pick individual ones - depending on what the scope of the assessment calls for.

One important detail: adPEAS classifies results by severity. Not every finding is equally critical. Disabled LDAP Signing is a different ballgame than a Kerberoastable service account. The severity levels (Finding, Hint, Note, Secure) help separate the wheat from the chaff and focus on the things that matter most.


Module Overview

adPEAS organizes the security checks into modules. Each module contains multiple individual checks:

+-----------------------------------------------------------------------------+
|                          adPEAS CHECK MODULES                               |
+-------------+---------------------------------------------------------------+
| Domain      | Password Policy, Trusts, LDAP Configuration, SMB Signing      |
+-------------+---------------------------------------------------------------+
| Accounts    | Tier-0 Groups, Inactive Admins, Protected Users, SID History  |
+-------------+---------------------------------------------------------------+
| Delegation  | Unconstrained, Constrained, RBCD                              |
+-------------+---------------------------------------------------------------+
| Rights      | Dangerous ACLs/OUs, Password Reset, Add Computer, LAPS        |
+-------------+---------------------------------------------------------------+
| Creds       | Kerberoasting, AS-REP Roasting, Credential Exposure, LAPS     |
+-------------+---------------------------------------------------------------+
| Computer    | Outdated OS, LAPS Configuration, Infrastructure, Owners       |
+-------------+---------------------------------------------------------------+
| GPO         | GPO Permissions, Local Groups, Scheduled Tasks, Scripts       |
+-------------+---------------------------------------------------------------+
| ADCS        | Certificate Templates (ESC1-5, ESC8-9, ESC13, ESC15)          |
+-------------+---------------------------------------------------------------+
| Application | Exchange, SCCM, SCOM Infrastructure                           |
+-------------+---------------------------------------------------------------+
| Bloodhound  | Data Collection for BloodHound CE                             |
+-------------+---------------------------------------------------------------+

Running Modules

# All modules
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth

# Individual modules
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Module Domain
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Module Domain,Accounts,ADCS

# OPSEC mode
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -OPSEC

Domain Module

The Domain module is the starting point of every analysis. Before diving into accounts and ACLs, you need to know: How is the domain fundamentally configured? Weak password policies, missing LDAP Signing, or disabled SID Filtering are findings that affect the entire scope of an assessment.

CheckWhat is checked
Domain InformationDCs, FSMO Roles, Kerberos Policy
Password PolicyMin. Length, Complexity, Lockout, History
Domain TrustsTrust Types, SID Filtering
LDAP ConfigurationLDAP Signing, Channel Binding, Anonymous Access
SMB SigningSigning on all systems

Accounts Module

Privileged accounts are the primary target of every attacker. This module checks not only who is in the Tier-0 groups, but also whether those accounts are properly configured. A Domain Admin with PasswordNeverExpires and no Protected Users membership - those are the findings that show up in every other assessment.

CheckWhat is checked
Privileged GroupsMembers of Domain Admins, Enterprise Admins, etc.
Inactive AdminsLast Logon > 90 days
Protected UsersMembership in Protected Users
Password Never ExpiresAdmin accounts with PasswordNeverExpires
Reversible EncryptionAdmin accounts with Reversible Encryption
Managed Service AccountsgMSA/sMSA Security
SID HistoryHidden privileges
Non-Default OwnersOwners of user objects
Password Not RequiredPASSWD_NOTREQD Flag

Delegation Module

Kerberos Delegation is one of the most commonly overlooked attack surfaces in AD. Unconstrained Delegation on a web server? Then a compromised web server is simultaneously a ticket harvester for every admin who connects.

CheckWhat is checked
UnconstrainedTrustedForDelegation Flag
ConstrainedmsDS-AllowedToDelegateTo
RBCDmsDS-AllowedToActOnBehalfOfOtherIdentity

Rights Module

ACLs are the silent risk in Active Directory. From the outside everything looks clean - but under the hood maybe an IT helpdesk has GenericAll on the Domain Admins group. This module uncovers exactly these kinds of hidden permission issues.

CheckWhat is checked
Dangerous ACLsGenericAll, WriteDACL, WriteOwner, DCSync
Dangerous OU PermissionsACLs on OUs (GenericAll, WriteDACL, etc.)
Password Reset RightsForceChangePassword Extended Right
Add Computer RightsMachineAccountQuota, Create-Child Computer
LAPS PermissionsWho can read ms-Mcs-AdmPwd/msLAPS-Password

Creds Module

Finding credentials in AD is often easier than you’d think. GPP passwords in SYSVOL, cleartext passwords in description fields, Kerberoastable service accounts with weak passwords - this module systematically searches for everything an attacker could use for initial access or privilege escalation.

CheckWhat is checked
KerberoastingAccounts with SPNs
AS-REP RoastingAccounts without Pre-Auth
Credential ExposureSYSVOL Scripts, GPP cpassword, Cleartext
Unix PasswordsUnixUserPassword/UserPassword Attributes
LAPS Credential AccessReadable ms-Mcs-AdmPwd / msLAPS-Password
Passwords in DescriptionDescription/Info Attribute Scan

ADCS Module

Since the SpecterOps research on “Certified Pre-Owned” (2021), ADCS vulnerabilities have been one of the most reliable paths to privilege escalation. A misconfigured certificate template can make the difference between “Domain User” and “Domain Admin” - with a single certificate request.

ESCProblemImpact
ESC1User can specify SAN themselvesDomain Admin with a single certificate
ESC2Any Purpose EKUCertificate usable for Client Auth
ESC3Enrollment AgentRequest certificates on behalf of others
ESC4Template ACLModify template to ESC1
ESC5PKI Container ACLManipulate entire PKI infrastructure
ESC8HTTP Web EnrollmentNTLM Relay to Cert Request (Detection only)
ESC9No Security Extension + Client AuthCertificate Mapping Bypass
ESC13Issuance Policy mapped to AD GroupCertificate inherits group membership
ESC15Schema v1 + Enrollee-supplied SubjectCVE-2024-49019

ESC5 Details: Checks for dangerous permissions (GenericAll, WriteDacl, WriteOwner) on PKI container objects:

  • CN=Public Key Services (Root PKI Container)
  • CN=Certificate Templates (Template creation/modification)
  • CN=Enrollment Services (Enrollment control)
  • CN=NTAuthCertificates (Trusted CAs for Kerberos)
  • CN=OID (Issuance Policies, ESC13-related)

If unprivileged users have these rights, they can create new vulnerable templates, make existing templates insecure, grant themselves enrollment rights, or manipulate the NTAuth store.


Computer Module

Computer objects reveal a lot about the state of an environment. Outdated operating systems, missing LAPS coverage, non-default owners on server objects - all indicators of potential weaknesses in the infrastructure.

CheckWhat is checked
Outdated OSWindows Version
LAPS ConfigurationLAPS Deployment and GPO Configuration
Infrastructure ServersDCs, Exchange, SQL, SCCM
Non-Default OwnersOwners of computer objects

GPO Module

Group Policies are a double-edged sword: they are the backbone of security configuration, but also an attack vector. If you can edit a GPO that applies to Domain Controllers, you effectively have Domain Admin rights - just through a detour.

CheckWhat is checked
GPO PermissionsWho can edit GPOs, GPO links
Local Group MembershipRestricted Groups/Preferences
Scheduled TasksGPO-defined Scheduled Tasks
Script PathsLogon/Logoff/Startup/Shutdown Scripts

Application Module

Enterprise applications like Exchange, SCCM, and SCOM are often highly privileged systems with a direct path to Domain Admin. SCCM in particular is frequently overlooked - a compromised Management Point can execute software on every client in scope.

CheckWhat is checked
ExchangeServers, Groups, Permissions
SCCM/MECMSites, Management Points, Hierarchy, Clients, PXE/WDS, Service Accounts
SCOMManagement Server, RunAs Accounts

Individual Check Functions

After Connect-adPEAS, checks can also be called individually:

# Establish session
Connect-adPEAS -Domain "contoso.com" -UseWindowsAuth

# Individual checks
Get-KerberoastableAccounts      # Kerberoastable Service Accounts
Get-ASREPRoastableAccounts      # AS-REP Roastable Accounts
Get-UnconstrainedDelegation     # Unconstrained Delegation
Get-ConstrainedDelegation       # Constrained Delegation
Get-DomainTrusts                # Domain Trusts
Get-PrivilegedGroupMembers      # Members of privileged groups
Get-DangerousACLs               # Dangerous ACLs on domain root
Get-ADCSVulnerabilities         # ADCS ESC vulnerabilities

# End session
Disconnect-adPEAS

Understanding Findings

adPEAS uses color-coded symbols in the console output:

SymbolColorMeaning
[!]RedFinding - Security issue
[+]YellowHint - Interesting, worth investigating
[*]GreenNote - Informational
[#]Red on YellowSecure - Good configuration

Quick Reference: What to Check?

Standard Scan:

Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth

Focused:

Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Module ADCS,Domain,Creds

← Episode 3: Authentication | Episode 5: Output & Reports — coming soon

About the Author

Alexander Sturz

Founder & Red Team Lead

Active Directory Ninja and offensive security expert specializing in enterprise infrastructure compromise and post-exploitation techniques.

Related Articles