Access Control Model
The Access Control Model is a security framework used to regulate access to objects and resources in Active Directory or other systems. Ite determines who can access what based on specific permissions and security rules.
Key Components
1. Access Tokens
Access tokens define the security context of a process and include
Identity of the user
Privileges (permissions assigned to the user)
2. Security Desciptors
Security descriptors control access through
SID (Security Identifier) : Identifies the owner of an object
DACL (Discretionary Access Control List) : Defines who is allowed or denied access
SACL (System access control List) : Used for auditing access attempts
Access Control List (ACL)
A list of Access Control Entries(ACE), where each ACE corresponds to an individual permission or audit access
Determines who has permission and what actions can be performed on an object.
Two Types of ACLs:
DACL (Disscretionary ACL)
Defines the permissions that trustees (users or group) have on an object
SACL (System ACL)
Logs success and failure audit messages when an object is accessed
ACLs are vital to the security architecture of Active Directory.
Table of Permissions
Permission Type
Object
Permissions
Generic All
Group
- Add/Remove Members - Add Ownership - Reset Password of Members - Grant Full control
User
- Reset Password (ForceChangePassword) - Shadow Credentials (AddKeyCredentialLink) - Targeted Kerberoasting (WriteSPN) - Grant Full Control
Computer
- Read LAPS password (ReadLAPSPassword) - Shadow Credentials(AddKeyCredentialLink) - Kerberos RBCD (AllowedToAct) - Grant Full Control
Domain Object
- DCSync (DS-Replication-Get-Changes-All) - Descendant Object Takeover - Read LAPS password (ReadLAPSPassword) - Write gPlink (Compromise Policies) - Grant Full Control
Organizational Unit
- Generic/Targeted Descendant Object Takeover - Write gPlink (Compromise Policies) - Grant Full Control
AdminSD Holder
- Reset Password - Write Members - Grant Full Control
Group Policy
- Evil GPOs (immediate Scheduled Task) - Modify Group Policy - Add Local Admin - Grant Full Control
CertTemplate
- ESC4 Attack (Modify Template) - Grant Full Control
EnterpriseCA
- Publish malicious templates - ADCS escalation - Grant Full Control
RootCA
- Trust Rogue Certificate (modify cACertificate) - Grant Full Control
NTAuthStore
- Modify trust for NT Authentication - Grant Full Control
IssuancePolicy
- ADCS ESC13 (Modify msDS-OIDToGroupLink) - Grant Full Control
Security Descriptor
-WMI - Powershell Remoting - Remote Registry - Grant Ownership
GenerticWrite
Group
- Add/Remove Members
User
- Shadow Credentials (AddKeyCredentialLink) - Targeted Kerberoasting (WriteSPN) - reset password - Logon Scripts
Computer
- Shadow Credentials (AddKeyCredentialLink) - Kerberos RBCD (AllowedToAct) - SPN Jacking
AdminSD Holder
- Reset Password - Write Memberds
Domain Object
- Write gPlink (Compromise Policies)
Organizational Unit
- Write gPlink (Compromise Policies)
Group Policy
- Evil GPOs (immediate Scheduled Task) - Modify Group Policy - Add Local Admin
CertTemplate
- ESC4 Attack (Modify Template)
EnterpriseCA
- Publish Malicious Templates (Modify Certificate Templates)
RootCA
- Trust Rogue Certificate (modify cACertificate)
NTAuthStore
- Modify trust for NT Authentication
IssuancePolicy
- ADCS ESC13 (Modify msDS-OIDToGroupLink)
Security Descriptor
-WMI - PowerShell Remoting - Remote Registry
WriteDacl
Group
- Grant Any Privilege(WriteMembers)
User
- Grant Any Privilege(GenericAll)
Computer
- Grant Any Privilege(GenericAll)
Domain Object
- DCSync (DS-Replication-Get-Changes-All) - Grant Any Privilege(GenericAll)
Organizational unit
- Grant Any Privilege(GenericAll)
Group Policy
- Grant Any Privilege(GenericAll)
CertTemplate
- Grant Any Privilege(GenericAll)
EnterpriseCA
- Grant Any Privilege(GenericAll)
RootCA
- Grant Any Privilege(GenericAll)
NTAuthStore
- Grant Any Privilege(GenericAll)
IssuancePolicy
- Grant Any Privilege(GenericAll)
Security Descriptor
- Grant Rights(GenericAll)
AllExtendedRights
Group
- Add/Remove Members
User
-Reset Password(ForceChangePassword)
Computer
- Read LAPS Password (ReadLAPSPassword)
WriteOwner
Group
-change Object Owner
user
-change Object Owner
Computer
-change Object Owner
Domain Object
-change Object Owner
Organizational unit
-change Object Owner
Group Policy
-change Object Owner
Security Descriptor
-change Object Owner
Explainations of Key Permissions
1. GenericAll (Full Control)
Grants Complete control over the target object, allowing modifications of any attribute, membership changes, and ownership transfers
Abuse Potential
Users : Reset Passwords, create shadow Credentials, perform Kerberoasting.
Group : Add/Remove members.
Computers : Read LAPS password, conduct Resource-Based Constrained Delegation(RBCD)
Domains/OU : Apply inherited control, modify group policies.
Certificate Infrastructure : Exploit Active Directory Certificate Services (ADCS)attacks.
2. GenericWrite
Allows modificationof non-protected attributes on the target object.
Abuse Potential
Users : create shadow Credentials, Kerberoasting via
servicePrincipalNames
.Group : Add/Remove members.
Computers : Enable RBCD attacks.
GPOs (Group Policy Objects) : Modify policies to execute malicious tasks.
CertTemplates/EnterpriseCA/RootCA : Modify certificate attributes to escalates privileges.
3. WriteDACL
Grants the ability to modify the Discretionary Access Control List (DACL) of an object
Abuse Potential
Users/Group/Computers : Grant yourself full control (
GenericAll
)Domain : Enable DCSync attacks to extract NTLM hashes.
OUs : Take over child objects.
GPOs : Modify policies to control targeted users and computers
4. AllExtendedRights
Provides special privileges to perform actions beyond basic read/write operations.
Abuse Potential:
users : Reset Passwords (
ForceChangePassword
)Computers : Read LAPS passwords (
ReadLAPSPassword
)Domains : Perform DCSync attacks (during NTLM hashes)
CertTemplates : Enroll Certificates (potential ADCS attacks)
5. WriteOwner
Allows changing the ownership of an object, granting unrestricted control over its security descriptor
Abuse Potential
Once ownership is taken, the attacker can modify the DACL to grant full control (
GenericAll
)Used in combination with
WriteDACL
to elevate privileges silently.
Last updated