• stands for Lightweight DIrectory Access Protocol
  • used to manage users, groups and devices in centralized directories like active directory
  • port: 389 (TCP)
  • accesses and maintains DDI (distributed directory information) services
  • often holds juicy auth data, perms and internal structure info

checklist (gotta look way more into this as well later):

  • Anonymous Binds
    • Try connecting with no creds: ldapsearch -x -H ldap://target
    • If it works = unrestricted internal recon
    • Dump users, groups, email addresses, OU structure
  • Credential Harvesting
    • Look for fields like userPassword, pwdLastSet, unicodePwd
    • Might get cleartext, Base64, or NTLM hashes (AD)
  • Brute Force / Weak Auth
    • Use tools like medusa, ncrack, crackmapexec on LDAP/389
    • Spray known usernames with weak passwords
  • Injection Attacks
    • LDAP Injection in web apps: try )(uid=))(|(uid=
    • Bypass filters or extract entries via crafted queries
  • Search Abuse
    • Use ldapsearch to enumerate:
      • All users: (objectClass=user)
      • Admin groups: (memberOf=)
      • Service accounts or machines
  • Group/Permission Recon
    • Map who’s in Domain Admins, or who has delegation rights
    • Track down where high-priv users log in
  • Unauthenticated Enumeration via SMB
    • Tools like BloodHound can infer LDAP info using SMB shares
    • Especially useful post-compromise
  • Kerberos Attacks
    • Tied to LDAP in AD environments
    • Abuse ldapsearch to get SPNs, then run Kerberoasting
    • Extract TGS tickets for crackable service accounts
  • Misconfigured ACLs
    • Weak Access Control Lists = users writing where they shouldn’t
    • Dump ACLs via ldapsearch or AD tools to find abusable paths
  • LDAPS Issues
    • No cert validation = possible MITM
    • If plain LDAP is also open, creds may be leaking unencrypted
  • Bind DN Enumeration
    • Try multiple base DNs or naming contexts to guess correct root
    • Can brute via naming patterns or from leaked info
  • Sensitive Attributes
    • Search for:
      • lastLogon, logonCount → find active users
      • description or info → creds often hidden in plain text here
      • ms-MCS-AdmPwd → LAPS-managed local admin password, if visible