389, 636, 3268, 3269 - Pentesting LDAP
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Die Verwendung von LDAP (Lightweight Directory Access Protocol) dient hauptsächlich der Lokalisierung verschiedener Entitäten wie Organisationen, Einzelpersonen und Ressourcen wie Dateien und Geräte innerhalb von Netzwerken, sowohl öffentlich als auch privat. Es bietet einen optimierten Ansatz im Vergleich zu seinem Vorgänger, DAP, indem es einen kleineren Code-Footprint hat.
LDAP-Verzeichnisse sind so strukturiert, dass sie über mehrere Server verteilt werden können, wobei jeder Server eine replizierte und synchronisierte Version des Verzeichnisses beherbergt, die als Directory System Agent (DSA) bezeichnet wird. Die Verantwortung für die Bearbeitung von Anfragen liegt vollständig beim LDAP-Server, der bei Bedarf mit anderen DSAs kommunizieren kann, um eine einheitliche Antwort an den Anforderer zu liefern.
Die Organisation des LDAP-Verzeichnisses ähnelt einer Baumhierarchie, die mit dem Stammverzeichnis an der Spitze beginnt. Dies verzweigt sich zu Ländern, die weiter in Organisationen unterteilt werden, und dann in organisatorische Einheiten, die verschiedene Abteilungen oder Bereiche repräsentieren, bis hin zur Ebene der einzelnen Entitäten, einschließlich sowohl Personen als auch gemeinsam genutzter Ressourcen wie Dateien und Drucker.
Standardport: 389 und 636 (ldaps). Der Globale Katalog (LDAP in ActiveDirectory) ist standardmäßig auf den Ports 3268 und 3269 für LDAPS verfügbar.
LDIF (LDAP Data Interchange Format) definiert den Verzeichnisinhalt als eine Menge von Datensätzen. Es kann auch Aktualisierungsanfragen (Hinzufügen, Ändern, Löschen, Umbenennen) darstellen.
Zeilen 1-3 definieren die Top-Level-Domain local
Zeilen 5-8 definieren die First-Level-Domain moneycorp (moneycorp.local)
Zeilen 10-16 definieren 2 organisatorische Einheiten: dev und sales
Zeilen 18-26 erstellen ein Objekt der Domain und weisen Attribute mit Werten zu
Beachten Sie, dass Sie, wenn Sie Werte ändern können, wirklich interessante Aktionen durchführen könnten. Stellen Sie sich zum Beispiel vor, dass Sie die "sshPublicKey"-Informationen Ihres Benutzers oder eines beliebigen Benutzers ändern können. Es ist sehr wahrscheinlich, dass, wenn dieses Attribut existiert, ssh die öffentlichen Schlüssel von LDAP liest. Wenn Sie den öffentlichen Schlüssel eines Benutzers ändern können, werden Sie sich als dieser Benutzer anmelden können, selbst wenn die Passwortauthentifizierung in ssh nicht aktiviert ist.
Wenn LDAP ohne SSL verwendet wird, können Sie Anmeldeinformationen im Klartext im Netzwerk sniffen.
Außerdem können Sie einen MITM-Angriff im Netzwerk zwischen dem LDAP-Server und dem Client durchführen. Hier können Sie einen Downgrade-Angriff durchführen, sodass der Client die Anmeldeinformationen im Klartext zur Anmeldung verwendet.
Wenn SSL verwendet wird, können Sie versuchen, einen MITM-Angriff wie oben beschrieben durchzuführen, indem Sie ein falsches Zertifikat anbieten. Wenn der Benutzer es akzeptiert, können Sie die Authentifizierungsmethode herabstufen und die Anmeldeinformationen erneut sehen.
Laut diesem Bericht konnte er, nur durch den Zugriff auf den LDAP-Server mit einem beliebigen Domänennamen (wie company.com), den LDAP-Dienst kontaktieren und Informationen als anonymer Benutzer extrahieren:
LDAP anonyme Bindings ermöglichen unauthentifizierten Angreifern den Zugriff auf Informationen aus der Domäne, wie z.B. eine vollständige Liste von Benutzern, Gruppen, Computern, Benutzerkontenattributen und der Passwortrichtlinie der Domäne. Dies ist eine veraltete Konfiguration, und seit Windows Server 2003 dürfen nur authentifizierte Benutzer LDAP-Anfragen initiieren. Allerdings mussten Administratoren möglicherweise eine bestimmte Anwendung einrichten, um anonyme Bindings zuzulassen und haben mehr Zugriff gewährt als beabsichtigt, wodurch unauthentifizierte Benutzer Zugriff auf alle Objekte in AD erhalten.
Wenn Sie gültige Anmeldeinformationen haben, um sich beim LDAP-Server anzumelden, können Sie alle Informationen über den Domänenadministrator mit folgendem Befehl abrufen:
Mit diesem können Sie die öffentlichen Informationen (wie den Domainnamen):
Windapsearch ist ein Python-Skript, das nützlich ist, um Benutzer, Gruppen und Computer aus einer Windows-Domäne durch die Nutzung von LDAP-Abfragen aufzulisten.
Überprüfen Sie null Anmeldeinformationen oder ob Ihre Anmeldeinformationen gültig sind:
Wenn Sie etwas finden, das besagt, dass der "bind abgeschlossen sein muss", bedeutet das, dass die Anmeldeinformationen falsch sind.
Sie können alles aus einer Domäne extrahieren mit:
Extrahieren Benutzer:
Extrahiere Computer:
Extrahiere meine Informationen:
Extrahieren Domain Admins:
Extrahieren Domain Users:
Extrahieren Enterprise Admins:
Extrahieren Administratoren:
Extrahieren Remote Desktop Group:
Um zu überprüfen, ob Sie Zugriff auf ein Passwort haben, können Sie grep verwenden, nachdem Sie eine der Abfragen ausgeführt haben:
Bitte beachten Sie, dass die Passwörter, die Sie hier finden, möglicherweise nicht die echten sind...
Sie können pbis hier herunterladen: https://github.com/BeyondTrust/pbis-open/ und es wird normalerweise in /opt/pbis
installiert.
Pbis ermöglicht es Ihnen, grundlegende Informationen einfach zu erhalten:
Laden Sie Apache Directory hier herunter. Sie finden ein Beispiel, wie man dieses Tool verwendet, hier.
Sie können eine grafische Benutzeroberfläche mit LDAP-Server hier herunterladen: http://www.jxplorer.org/downloads/users.html
Standardmäßig wird es installiert in: /opt/jxplorer
Godap ist eine interaktive Terminalbenutzeroberfläche für LDAP, die verwendet werden kann, um mit Objekten und Attributen in AD und anderen LDAP-Servern zu interagieren. Es ist für Windows, Linux und MacOS verfügbar und unterstützt einfache Bindungen, Pass-the-Hash, Pass-the-Ticket & Pass-the-Cert, zusammen mit mehreren anderen spezialisierten Funktionen wie Suchen/Erstellen/Ändern/Löschen von Objekten, Hinzufügen/Entfernen von Benutzern aus Gruppen, Ändern von Passwörtern, Bearbeiten von Objektberechtigungen (DACLs), Modifizieren von Active-Directory-Integrations-DNS (ADIDNS), Exportieren in JSON-Dateien usw.
Sie können darauf zugreifen unter https://github.com/Macmod/godap. Für Anwendungsbeispiele und Anleitungen lesen Sie das Wiki.
Ldapx ist ein flexibler LDAP-Proxy, der verwendet werden kann, um LDAP-Verkehr von anderen Tools zu inspizieren und zu transformieren. Es kann verwendet werden, um LDAP-Verkehr zu obfuskieren, um zu versuchen, Identitätsschutz- und LDAP-Überwachungstools zu umgehen, und implementiert die meisten der in dem MaLDAPtive Vortrag präsentierten Methoden.
Sie können es von https://github.com/Macmod/ldapx herunterladen.
Mit ldapsearch
können Sie sich gegenüber Kerberos anstelle von NTLM authentifizieren, indem Sie den Parameter -Y GSSAPI
verwenden.
Wenn Sie auf die Dateien zugreifen können, in denen die Datenbanken enthalten sind (könnte in /var/lib/ldap sein). Sie können die Hashes mit folgendem Befehl extrahieren:
Du kannst john mit dem Passwort-Hash (von '{SSHA}' zu 'structural' ohne 'structural' hinzuzufügen) füttern.
Allgemein
containers.ldif
ldap.cfg
ldap.conf
ldap.xml
ldap-config.xml
ldap-realm.xml
slapd.conf
IBM SecureWay V3-Server
V3.sas.oc
Microsoft Active Directory-Server
msadClassesAttrs.ldif
Netscape Directory Server 4
nsslapd.sas_at.conf
nsslapd.sas_oc.conf
OpenLDAP-Verzeichnisserver
slapd.sas_at.conf
slapd.sas_oc.conf
Sun ONE Directory Server 5.1
75sas.ldif
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)