Active Directory Access Control List (ACL) exploitation represents one of the most sophisticated attack vectors in modern enterprise environments. While traditional penetration testing requires extensive manual effort and deep expertise to identify and exploit ACL misconfigurations, AI-powered tools are revolutionizing this landscape.
Active Directory Access Control List (ACL) exploitation is one of the most sophisticated attack vectors in modern enterprise environments. While traditional penetration testing requires extensive manual effort and deep expertise, AI-powered tools are revolutionizing this landscape.
This comprehensive technical analysis demonstrates how Pentest Copilot, an advanced AI agent specifically designed for penetration testing, successfully automates end-to-end ACL exploitation chains in the Game of Active Directory (GOAD) laboratory.
Our research reveals Pentest Copilot's capability to autonomously execute complex, multi-stage ACL attack paths that traditionally require significant expertise and manual intervention. Through a series of detailed proofs-of-concept, we showcase the automated exploitation of critical ACL permissions, including ForceChangePassword, GenericWrite, WriteDacl, AddSelf, AddMember, WriteOwner, GenericAll, and advanced techniques like GPO abuse.
The Game of Active Directory (GOAD) laboratory is a sophisticated, multi-domain Active Directory environment designed to simulate realistic enterprise network configurations. The lab architecture incorporates multiple domains with complex trust relationships, including a root domain, a child domain, and an external forest. The environment is built with a realistic network topology and a comprehensive set of Active Directory objects, including hundreds of user accounts, nested security groups, and computer accounts that mirror enterprise hierarchies.
The GOAD environment incorporates deliberately vulnerable ACL configurations that mirror real-world security weaknesses. By default, Active Directory uses the AdminSDHolder mechanism to reset ACLs on protected groups, but this feature has been intentionally disabled in the GOAD environment to allow for persistent exploitation on critical security groups like Domain Admins and Enterprise Admins. The lab features intricate attack paths, such as the sevenkingdoms.local
killchain, which demonstrates the cascading nature of ACL exploitation.
Tywin → Jaime (ForceChangePassword)
→ Joffrey (GenericWrite)
→ Tyron (WriteDacl)
→ Small Council (AddSelf)
→ Dragon Stone (AddMember)
→ Kingsguard (WriteOwner)
→ Stannis (GenericAll on User)
→ Kingslanding DC (GenericAll on Computer)
Active Directory objects are protected by Security Descriptors that contain key components: the Discretionary Access Control List (DACL), which defines specific permissions; the System Access Control List (SACL), which handles auditing policies; and the Object Owner, which has implicit rights to modify the object's DACL.
We analyzed the exploitation of several critical ACL permissions:
unicodePwd
attribute.FullControl
, which enables all possible operations on a target object, including attribute modification, DACL manipulation, and ownership changes.Pentest Copilot's automated workflow is driven by a sophisticated AI engine:
Pentest Copilot's exploitation capabilities are highly automated, with each step of the attack chain precisely orchestrated by the AI agent. The following sections detail the end-to-end exploitation of specific ACL permissions.
ForceChangePassword
The exploitation begins with the identification of a Vulnerability entity where the tywin.lannister
user possesses the ForceChangePassword
permission on the jaime.lannister
account. With a pre-existing Secret entity for tywin.lannister
, the platform initiates the exploitation process by selecting the EXP_ACL
submodule. The AI agent, present on the target host, is instructed to use the identified vulnerability. The agent autonomously executes the password change, and upon success, the Vulnerability entity is updated to verified
, indicating the attack was successful. Simultaneously, a new Secret entity is created, containing the newly changed password for the jaime.lannister
account, providing the platform with fresh credentials for further movement.
GenericWrite
Leveraging the documentation for the GOAD environment, Pentest Copilot targets a Vulnerability entity where jaime.lannister
holds the GenericWrite
permission on the joffrey
user. The goal is to perform a Shadow Credentials attack, a highly stealthy technique. The platform, using the EXP_ACL
submodule, initiates the attack. The agent automatically generates an attacker-controlled certificate and injects it into the msDS-KeyCredentialLink
attribute of the joffrey
user. The successful exploitation is confirmed as the Vulnerability entity is updated to verified
and a new Secret entity is created. This new entity contains the NT hash for the joffrey
user, giving the platform a powerful, non-password credential for the next stage of the attack.
WriteDacl
In this stage, the platform identifies a Vulnerability entity where a principal has WriteDacl
permission on a target. The AI agent’s objective is to modify the target's Access Control List to give the principal Full Control
. Upon initiating the EXP_ACL
module, the agent uses tools like impacket's dacledit.py
to change the DACL. After successfully changing the permissions, the platform leverages its new privileges to perform a Shadow Credentials attack, as seen previously. The successful exploitation is marked by the Vulnerability entity's verified
key changing to true
and the creation of a new Secret entity containing the target user's NT hash.
AddSelf
The platform now targets a Vulnerability entity where the tyron.lannister
user has the AddSelf
permission on the Small Council
group. With the NT hash for tyron.lannister
already in a Secret entity, the AI agent initiates the exploitation. The agent automatically modifies the group's membership list to add the tyron
user. Once the modification is complete, the Vulnerability entity's verified
key is set to true
, and the tyron
user's profile is updated to show they are now a member of the Small Council
group.
AddMember
Building on the previous step, the platform identifies that the Small Council
group now has AddMember
permission on the Dragonstone
group. Since tyron.lannister
is a member of Small Council
, the agent leverages this to add another principal to the Dragonstone
group. After selecting the appropriate Vulnerability entity and initiating the EXP_ACL
submodule, the platform autonomously modifies the Dragonstone
group's membership. The successful operation is confirmed by the Vulnerability entity's verified
status and the Dragonstone
group’s member list being updated to include the new principal.
WriteOwner
Next, the platform targets a Vulnerability entity where the Dragonstone
group has WriteOwner
permission on another object. Using the NT hash for the tyron.lannister
user (who is a member of the Dragonstone
group), the agent initiates the exploitation. The AI agent automatically takes ownership of the target object, then leverages its new owner rights to modify the object's DACL to grant itself Full Control
. The successful completion of this complex, two-stage process is reflected in the Vulnerability entity's verified
key and the updated object permissions.
GenericAll
on a UserThis step targets a Vulnerability entity where a principal has GenericAll
permissions on a user account. The platform’s goal is to fully compromise the target user by changing their password. The AI agent, with the principal's credentials in a Secret entity, automatically executes the password change using its broad privileges. This action, a direct outcome of the GenericAll
permission, is verified by a verified
status update on the Vulnerability entity and the creation of a new Secret entity containing the target user's new password.
GenericAll
on a ComputerThe platform now pivots to a computer account, targeting a Vulnerability entity where a principal has GenericAll
permission on the KINGSLANDING
computer. The goal is to obtain the NT hash of this critical machine. Using the principal’s existing credentials, the agent initiates the exploitation of the vulnerability. The platform autonomously executes a series of commands made possible by its GenericAll
privilege, ultimately succeeding in extracting the computer's NT hash. This is immediately reflected in a new Secret entity containing the KINGSLANDING
computer's NT hash and a verified
status on the Vulnerability entity.
The final stage demonstrates an advanced persistence technique. The platform identifies a Vulnerability entity where a principal has WriteOwner
permission on a Group Policy Object (GPO). Using the EXP_ACL
submodule, the AI agent exploits this vulnerability to gain control of the GPO. The agent then automatically modifies the GPO to create a scheduled task that executes a payload with SYSTEM
privileges on all affected machines. This payload creates a new, highly privileged user account called pentestcopilot
. The successful exploitation is confirmed by the verified
key on the Vulnerability entity and the automatic creation of a new Secret entity containing the password for the newly created pentestcopilot
user.
The capabilities of Pentest Copilot closely mirror sophisticated APT techniques, as it relies on Living Off the Land tactics by exclusively using legitimate Active Directory features for exploitation. The platform's ability to orchestrate multi-stage attacks and pivot through compromised credentials demonstrates a level of sophistication that goes beyond traditional, manual attacks.
Organizations must implement a proactive defense strategy to counter these automated attacks:
The automation of complex Active Directory ACL exploitation through platforms like Pentest Copilot represents a fundamental shift in the cybersecurity landscape. The traditional reliance on the obscurity and complexity of ACL exploitation techniques no longer provides adequate protection against determined adversaries equipped with AI-powered tools.
The future of Active Directory security requires proactive defense strategies that can match the sophistication of AI-powered attacks. Security architects must focus on comprehensive ACL hardening, advanced behavioral monitoring, and proactive threat hunting to defend against these increasingly automated and sophisticated attack vectors.
https://copilot.bugbase.ai/
)https://github.com/Orange-Cyberdefense/GOAD
https://mayfly277.github.io/posts/GOADv2-pwning-part11/
https://copilot.bugbase.ai/
1. What is ACL exploitation in Active Directory and why is it critical for cybersecurity?
ACL (Access Control List) exploitation involves abusing misconfigured permissions in Active Directory to gain unauthorized access and escalate privileges. When permissions like ForceChangePassword, GenericWrite, or WriteDacl are misconfigured, attackers can chain them together to compromise entire domains. This is critical because it leverages legitimate AD features, making detection difficult, and can lead from a low-privileged user to Domain Admin access.
2. How does Pentest Copilot automate ACL exploitation?
Pentest Copilot uses an AI-powered engine with three key components: an Entity Recognition System to categorize AD objects and permissions; a Vulnerability Assessment Engine to find misconfigurations; and a Dynamic Execution Framework to build and execute optimal attack paths in real-time.
3. What is the GOAD laboratory?
GOAD (Game of Active Directory) is a deliberately vulnerable multi-domain AD lab environment designed for penetration testing research. It features a realistic forest architecture (sevenkingdoms.local
, north.sevenkingdoms.local
, essos.local
) with intentional ACL misconfigurations that mirror real-world vulnerabilities. This environment is ideal for testing advanced attack techniques.
4. What are shadow credentials attacks?
Shadow credentials attacks exploit the msDS-KeyCredentialLink
attribute in Active Directory to enable certificate-based authentication for a targeted account. Attackers use permissions like GenericWrite to inject an attacker-controlled certificate into the target's account. This allows them to perform Kerberos authentication and obtain a Ticket-Granting Ticket (TGT), often with minimal audit traces.
5. How should organizations defend against automated ACL exploitation?
Organizations need comprehensive defenses: ACL Security Hardening to eliminate excessive rights; Advanced Behavioral Monitoring to detect unusual LDAP queries and permission changes; and Zero Trust with privileged access management (PAM) to limit the impact of exploitation. Since these attacks are automated, continuous threat hunting is also essential.