AD Testing Checklist (Linux)
Below are the things you should check on every Active Directory assessment from a Linux machine
Shortlist
Short bullet point to jog your memory. If this is not enough, click on the check to get full notes.
Extra Attacks
Coercion Attacks
Stale Half-Duplex ARP
WPAD
WebDAV
LNK file drop
ADIDNS Wildcard Attack (Dangerous and not well understood)
Confirm AD Access (Linux)
Define Shell Variables
Sync Clock to Domain Controller
Check access (NTLM)
Check access (Kerberos)
Search for abusable ACLs (Bloodhound CE)
To search for abuseable ACLs, Bloodhound is the tool of choice. For further informational about how to analyze the information once you collect it, see Analyzing Data with Bloodhound.
Install Bloodhound.py
Collect Data (NTLM)
Collect Data (Kerberos)
The above has given me some issues during testing and sometimes reverted to NTLM instead of Kerberos. If you have issues, try using the NTLM version which will often attempt to use Kerberos regardless.
Collect Data (w/ Channel Binding)
The current Bloodhound.py does not support connection to LDAPS that has channel binding. In my experience, it will throw a vague issue related to a failed connection or invalid address (ldap3.core.exceptions.LDAPSocketOpenError: invalid server address). There is a pull request out there that fixes this issue but it has not been merged so far (it has been waiting about half a year). Therefore, you will have to manually install a forked version from deadjakk that supports channel binding. You will also need a forked version of LDAP3 to run the forked version of bloodhound.py.
Search for passwords in user descriptions
Install JQ
Search for quick hits
List sorted user descriptions (Full Review)
Search for Kerberoastable accounts
Search for all SPNs in the domain that are vulnerable to Kerberoasting. For exploit information, see Kerberoasting.
Check for affected accounts (NTLM)
Check for affected accounts (Kerberos)
Search for As-Rep Roastable accounts
Search for all user accounts that do not require pre-authentication. For exploit information, see As-Rep Roasting.
Check for affected accounts (NTLM)
Check for affected accounts (Kerberos)
Perform Timeroasting attack
Timeroast via RID Bruit Force
Check for default Machine Account Quota
Get Machine Account Quota (NTLM)
Get Machine Account Quota (Kerberos)
Get Machine Account Quota (NTLM) - Alternate
Check password policy
Get Password Policy (NTLM)
Check for active WebDAV clients
Method 1 (WebClientScanner) - Faster
Install
NTLM
Kerberos
Method 2 (NetExec) - CSV Output
Scan hosts
Create affected host CSV
Check for missing SMB signing
Check for SMBv1 Support
Check for writable shares
NTLM
Check for sensitive data in shares
Collect Info (NTLM)
Check for anonymous access
Check for Unconstrained Delegation (Non-DCs)
Delegations (Preferred)
Bloodhound CE Query
This query will also list disabled objects. Make sure to investigate the context of the Unconstrained Delegation object before reporting!
Get list of affected objects from JSON Bloodhound query export
Check LDAP Configuration
NTLM
Create CSV Output
Check MsSQL Configuration
Install MsSQLRelay
Run all checks (Coercion, Command Execution, Signing)
Create CSV of Missing EPA
Check ADCS Configuration
Install Certipy
Run all checks
Check for CA when Certipy does not find CA
Check SCCM Configuration
Install Tools
Find SCCM Server (w/ SCCMHunter)
Search for SCCM user accounts (Bloodhound data)
Send PXE Boot Request via DHCP (PXEThief)
This will not only send the request, but also auto exploit by downloading the encrypted media file and attempting to steal data if there is no password.
Check for Open SCCM Ports
Last updated