LDAP : protocole, attaques et défense
Comprendre LDAP
Définition
LDAP (Lightweight Directory Access Protocol) est un protocole réseau standardisé permettant d'interroger et de modifier des annuaires distribués, notamment Active Directory. LDAP fonctionne sur le port 389 (texte clair) et le port 636 pour LDAPS (version chiffrée via TLS). Il repose sur une structure arborescente d'objets appelée DIT (Directory Information Tree), organisée en unités distinguées (DN). Chaque objet — utilisateur, groupe, ordinateur — est décrit par des attributs comme sAMAccountName, memberOf ou userAccountControl. En cybersécurité, LDAP est critique car il constitue le canal principal d'interrogation d'Active Directory. Un attaquant disposant d'un compte de domaine, même à faibles privilèges, peut interroger l'ensemble de l'annuaire. Cette surface d'exposition permet de cartographier les relations de confiance, d'identifier les comptes à privilèges, de détecter les délégations Kerberos non contraintes ou de cibler les comptes avec SPN pour une attaque Kerberoasting. LDAP est donc central dans toute phase de reconnaissance interne.
Détection (Blue Team / SOC)
La détection des abus LDAP repose sur plusieurs sources de logs. Côté Active Directory, l'événement Windows 1644 du journal 'Directory Service' enregistre les requêtes LDAP coûteuses dépassant un seuil de résultats configurable. Il faut activer ce diagnostic via la clé de registre 'HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics'. L'événement 4662 trace l'accès aux objets AD sensibles. Un volume anormalement élevé de requêtes LDAP depuis un seul compte ou une seule machine est un indicateur fort d'énumération automatisée. Les outils comme BloodHound ou ADFind génèrent des patterns caractéristiques : requêtes sur tous les objets de type 'user', 'group' ou 'computer' en rafale. Un SIEM correctement configuré peut corréler ces événements avec la source IP pour détecter les comportements de type 'LDAP bulk query'. Côté réseau, Zeek (Bro) dispose d'un parseur LDAP natif permettant d'extraire les filtres de requêtes en clair sur le port 389. Wireshark permet l'analyse manuelle des échanges. L'absence de LDAP signing expose à des attaques de relais NTLM via LDAP, détectables par des connexions LDAP anonymes ou non signées dans les logs du contrôleur de domaine.
Exploitation & contre-mesures (Red Team)
En phase de pentest interne, LDAP est exploité dès l'obtention d'un premier compte de domaine. L'outil ldapsearch (Linux) permet d'extraire l'ensemble des objets AD avec une requête du type '(objectClass=*)'. SharpLDAP, ADFind ou PowerView (module Get-DomainUser) offrent des capacités équivalentes sous Windows. BloodHound automatise la collecte LDAP via SharpHound pour cartographier les chemins d'attaque vers le contrôle du domaine. L'injection LDAP cible les applications web utilisant des requêtes LDAP construites dynamiquement sans validation des entrées : un payload tel que '*)(uid=*))(|(uid=*' peut contourner une authentification. Pour le durcissement, Microsoft recommande d'activer le LDAP signing (stratégie de groupe 'Domain controller: LDAP server signing requirements' à 'Require signing') et le channel binding (KB4520412). LDAPS doit remplacer LDAP clair pour tous les flux applicatifs. Le principe de moindre privilège doit limiter les attributs accessibles en lecture, notamment ms-Mcs-AdmPwd (LAPS) ou les champs de délégation Kerberos. L'audit régulier des ACL sur les objets AD sensibles via des outils comme PingCastle ou Purple Knight permet de détecter les permissions excessives accordées sur l'annuaire.
Articles sur LDAP
Sans signature SMB et LDAP, un attaquant peut enchaîner un relais NTLM jusqu'à la prise de contrôle totale d'Active Directory.