AD ACL Scanner
12 January, 2023
- Progress bar is disabled by default in CLI and is optional turned on by using "-ShowProgressBar"
- Misspelling of the word "Inherited" in CLI output
- Filter on permissions like "GenericAll" or multiple values like "WriteProperty | ExtendedRight"
- From the CLI you can select Target and select RiskyTemplates to scan published certificate templates with "supply in request".
- The default output from CLI is structured and translated
- The default csv file output option is structured and translated and cannot be used for comparing.
- New output option for comparing that is called CSVTEMPLATE from CLI and "CSV Template" in GUI.
- Old CLI output format is produced by using the -RAW switch
Do you appreciate my work and want to buy me a beer? You can donate via PayPal: https://www.paypal.me/canix1 or send Bitcoins to bc1qte7vlwhvrju7msv9hzfytwy7jd9vlmnjfpm0366d62yx4ke89czsavk0hr
- A tool completly written in PowerShell.
- A tool with GUI used to create reports of access control lists (DACLs) and system access control lists (SACLs) in Active Directory .
Related blog posts
- Forensics - Active Directory ACL Investigation
- Take Control Over AD Permissions And The AD ACL Scanner Tool
Features and fixes https://github.com/canix1/ADACLScanner/wiki/History
Run effective rights report from the command line.
parameter from command line to get modified date of security descriptor in report.
Save to excel file without excel installed. Both from UI and command line. Requires ImportExcel PowerShell Module. You can install ImportExcel directly from the Powershell Gallery.
Custom search filter for scanning objects.
Support input from pipeline. You can call ADACLScan.ps1 by sending a distinguishedName via pipeline.
Added formated synopsis to the script.
- Scan linked Group Policy Objects
- View HTML reports of DACLs/SACLs and save it to disk.
- Export DACLs/SACLs on Active Directory objects in a CSV format.
- Export DACLs/SACLs on Active Directory objects in a Excel sheet.
- Connect and browse you default domain, schema , configuration or a naming context defined by distinguishedname.
- Browse naming context by clicking you way around, either by OU�s or all types of objects.
- Report only explicitly assigned DACLs/SACLs.
- Report on OUs , OUs and Container Objects or all object types.
- Filter DACLs/SACLs for a specific access type.. Where does �Deny� permission exists?
- Filter DACLs/SACLs for a specific identity. Where does "Domain\Client Admins" have explicit access? Or use wildcards like "jdoe".
- Filter DACLs/SACLs for permission on specific object. Where are permissions set on computer objects?
- Skip default permissions (defaultSecurityDescriptor) in report. Makes it easier to find custom permissions.
- Report owner of object.
- Compare previous results with the current configuration and see the differences by color scheme (Green=matching permissions, Yellow= new permissions, Red= missing permissions).
- Report when permissions were modified
- Can use AD replication metadata when comparing.
- Can convert a previously created CSV file to a HTML report.
- Effective rights, select a security principal and match it agains the permissions in AD.
- Color coded permissions based on criticality when using effective rights scan.
- List you domains and select one from the list.
- Get the size of the security descriptor (bytes).
- Rerporting on disabled inheritance .
- Get all inherited permissions in report.
- HTLM reports contain headers.
- Summary of criticality for all report types.
- Refresh Nodes by right-click container object.
- Exclude of objects from report by matching string to distinguishedName
- You can take a CSV file from one domain and use it for another. With replacing the old DN with the current domains you can resuse reports between domains. You can also replace the (Short domain name)Netbios name security principals.
- Reporting on modified default security descriptors in Schema.
- Verifying the format of the CSV files used in convert and compare functions.
- When compairing with CSV file Nodes missing in AD will be reported as "Node does not exist in AD"
- The progress bar can be disabled to gain speed in creating reports.
- If the fist node in the CSV file used for compairing can't be connected the scan will stop.
- Display group members in groups in the HTLM report.
- Present the value of the true SDDL in NTsecurityDescriptor, bypassing Object-Specific ACE merge done when a new instance of the ObjectSecurity class is initialized.
- Powershell 3.0 or above
- PowerShell using a single-threaded apartment
- Some functions requires Microsoft .NET Framework version 4.0