AllowedToAct

Summary

FSProtect ACL Alias

AllowedToAct

Affected Object Types

Computers

Exploitation Certainty

Certain

AD Attribute

msDS-AllowedToActOnBehalfOfOtherIdentity

AD Attribute Guid

3f78c3e5-f79a-46bd-a0b8-9d18116ddc79

Description

The AllowedToAct edge in Active Directory indicates that a computer account has the msDS-AllowedToActOnBehalfOfOtherIdentity attribute. This setting is used for Kerberos Resource-Based Constrained Delegation (RBCD), allowing services to impersonate users securely and access resources on their behalf.

If misconfigured, the AllowedToAct permission can create serious security risks. An attacker who controls an account granted this permission can abuse RBCD to impersonate arbitrary users when accessing services on the targeted machine. This can lead to unauthorized access, privilege escalation, and full system compromise — including acting as domain administrators to access sensitive resources.

Identification

PowerShell

Active Directory Module

Using the ActiveDirectory PowerShell module, you can enumerate AllowedToAct entries.

1. Find-AllowedToAct function

2. Scan all domain computers objects

3. Scan a specified computer object

4. Using SearchBase to limit the Scope

.NET Directory Services

By leveraging PowerShell’s built-in .NET DirectoryServices namespace, you can enumerate AllowedToAct entries without relying on external modules or dependencies.

1. Find-AllowedToActSimple function

2. Scan all domain computers

3. Scan a specific computer

This edge cannot be identified using the Active Directory Users and Computers (ADUC) GUI.

Exploitation

Windows

To get a TGT using Rubeus

To get a service ticket impersonating the administrator:

To calculate the NTLM hash and AES keys

Example:

Get TGT for current user
Get TGS using s4u

Access c$ share on target

Check admin access on c$

Linux

You can also perform Resource-Based Constrained Delegation (RBCD) from Linux. The Impacket tools must be installed before running these commands.

To get a service ticket

Execute on the target machine

Example:

To get a service ticket

Get TGS using getST

Execute on the target machine

Execute on target machine using psexec

Mitigation

Remove dangerous access control entries from computer objects. The following PowerShell command clears the attribute from a computer object:

Example:

Detection

Adding new access control entries on computer objects changes the ntSecurityDescriptor attribute. These changes can be detected using Event IDs 5136 and 4662 to identify modifications to computer objects.

Event ID
Description
Fields/Attributes
References

5136

A directory service object was modified.

ntSecurityDescriptor

https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136

4662

An operation was performed on an object.

AccessList, AccessMask

https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4662

4768

A Kerberos authentication ticket (TGT) was requested.

TargetUserName

https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4768

4769

A Kerberos service ticket was requested.

TargetUserName, ServiceName

https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4769

References

Last updated

Was this helpful?