DACLs
Theory
DACL abuse potential paths can be identified by BloodHound from UNIX-like (using the Python ingestor bloodhound.py) and Windows (using the SharpHound ingestor) systems.
Other tools like, Get-DomainObjectAcl
and Add-DomainObjectAcl
from Powersploit's Powerview, Get-Acl
and Set-Acl
official Powershell cmdlets, or Impacket's dacledit.py script (Python) can be used in order to manually inspect an object's DACL. ⚠️ At the time of writing, the Pull Request (#1291) offering that dacledit is still being reviewed and in active development. It has the following command-line arguments.
This page is about enumeration, for DACL-based attacks, please refer to this page.
Practice
PowerView
We can dump all Domain Object's ACL and convert it to a json file using Get-DomainObjectAcl
from Powersploit's Powerview.
Transfer the file to the attacking machine, then use the following command to convert the output file to UNIX format.
One of the following commands can be used to format and read the output file.
You may convert SIDs with the following WMIC command
Dsacls.exe
It is possible to use a native windows binary (in addition to powershell cmdlet Get-Acl
) to enumerate Active Directory object security persmissions. The binary of interest is dsacls.exe
.
SharpHound
DACL abuse potential paths can be identified by BloodHound from UNIX-like (using the Python ingestor bloodhound.py) and Windows (using the SharpHound ingestor) systems.
From UNIX-like system, a non-official (but very effective nonetheless) Python version can be used.
BloodHound.py is a Python ingestor for BloodHound. Using the ACL CollectionMethod, we just collect abusable permissions on objects in Active Directory
Resources
Last updated