Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
LDAPPER — LDAP-Abfragen ohne den Nervfaktor | Kitploit
Tools/GitHubGitHub/shellster/ldapper
Privilege EscalationAufklärungPasswortangriffeInformationsbeschaffungPenetrationstestsAuthentifizierung
GitHubshellster/ldapper

LDAPPER

LDAP-Abfragen ohne den Nervfaktor

Repository anzeigen
11417vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Einführung

Dieses Tool wurde entwickelt, um viele der Probleme zu lösen, die ich mit ldapsearch und der AD-Interaktion im Allgemeinen hatte. Insbesondere adressiert dieses Tool die folgenden Probleme:

  1. Unfähigkeit, mehr als tausend Ergebnisse von AD zurückzugeben. Dieses Tool unterstützt LDAP-Record-Paging und umgeht andere AD-Fehler, um eine beliebige Anzahl von Datensätzen abrufen zu können.

  2. Unfähigkeit, NTLM-Anmeldeinformationen intuitiv zur Authentifizierung zu verwenden. Sie können den NETBIOS-Domänennamen, Benutzernamen und das Passwort angeben, um sich an einem Windows-DC zu authentifizieren.

  3. Unfähigkeit, die Anzahl der zurückgegebenen Datensätze, die Geschwindigkeit, mit der sie zurückgegeben werden, und die Anzahl der jeweils abgerufenen Datensätze präzise zu steuern. Dieses Tool ermöglicht Ihnen die Kontrolle über alle diese Parameter, einschließlich der Einfügung von Verzögerungen zwischen den einzelnen paginierten Aufrufen. Zudem können mehrere DCs für Round-Robin-Abfragen angegeben werden.

  4. Unfähigkeit, die Ergebnisse in leicht verständlichen Formaten zurückzugeben. Dieses Tool unterstützt derzeit drei Formate:

  • plain: Eine schöne, lesbare Textversion der Daten mit eingerückten Unterelementen.
  • json: JSON-Ausgabe mit zusätzlichen Leerzeichen für einfache Lesbarkeit.
  • json_tiny: JSON-Ausgabe ohne überflüssige Leerzeichen.
  1. Unfähigkeit, nur die Attribute zurückzugeben, die Sie interessieren. Dieses Tool ermöglicht es Ihnen, entweder alle Attribute zurückzugeben oder nur die gewünschten.

  2. Unfähigkeit, eine Liste vorgefertigter, häufig verwendeter Abfragen zu speichern.

Installation

root@kitploit:~
git clone ...
pip install -r requirements.txt

Anleitung

root@kitploit:~
# python3 ldapper.py
    usage: ldapper.py [-h] --domain DOMAIN --user USER --password PASSWORD
                      --server SERVER [--basedn BASEDN] --search SEARCH
                      [--maxrecords MAXRECORDS] [--pagesize PAGESIZE]
                      [--delay DELAY] [--format {plain,json,json_tiny}]
                      [--encryption {1,2,3}]
                      [--advanced [ADVANCED [ADVANCED ...]]] [--outfile OUTFILE]
                      [--engine {ldap3,impacket}]
                      [attribute [attribute ...]]

    AD LDAP Kommandozeilen-Suche, die nicht nervt.

    positional arguments:
      attribute             Rückzugebende Attribute (Standard: alle bei benutzerdefinierter Abfrage. Bei vorgefertigten Abfragen übergeben Sie "*", um alle Attribute statt der Standardattribute zu erhalten.)

    optional arguments:
      -h, --help            show this help message and exit
      --domain DOMAIN, -D DOMAIN
                            Domäne
      --user USER, -U USER  Benutzername
      --password PASSWORD, -P PASSWORD
                            Passwort oder LM:NTLM-Hash
      --server SERVER, -S SERVER
                            DC-IP oder auflösbarer Name
      --basedn BASEDN, -b BASEDN
                            Base DN sollte normalerweise "dc=" sein, gefolgt vom vollständigen Domänennamen mit Punkten, die durch ",dc=" ersetzt werden. Bei Nichtangabe wird versucht, es vom LDAP-Server abzuleiten.
      --search SEARCH, -s SEARCH
                            LDAP-Suchstring oder Zahl, die eine benutzerdefinierte Suche aus der Liste "Custom Searches" angibt. Verwenden Sie "-" für das Lesen von stdin.
      --maxrecords MAXRECORDS, -m MAXRECORDS
                            Maximale Anzahl zurückzugebender Datensätze (Standard: 100), 0 bedeutet alle.
      --pagesize PAGESIZE, -p PAGESIZE
                            Anzahl der Datensätze, die pro Abruf zurückgegeben werden (Standard: 10). Sollte <= max records sein.
      --delay DELAY, -d DELAY
                            Verzögerung in Millisekunden zwischen Paging-Anfragen (Standard: 0).
      --format {plain,json,json_tiny}, -f {plain,json,json_tiny}
                            Ausgabeformat (Standard: "plain"), mögliche Werte: plain, json, json_tiny
      --encryption {1,2,3}, -n {1,2,3}
                            3) Verbindung zu 636 TLS (Standard); 2) Verbindung zu 389 ohne TLS, aber versuche STARTTLS mit Fallback (bei impacket nicht verfügbar); 1) Verbindung zu 389, Erzwinge Klartext
      --advanced [ADVANCED [ADVANCED ...]], -a [ADVANCED [ADVANCED ...]]
                            Erweiterte Möglichkeit, Optionen für vorgefertigte Suchvorgänge zu übergeben, die nach zusätzlichen Eingaben fragen (bei mehreren Eingabeaufforderungen die Argumente in der Reihenfolge der Aufforderung übergeben)
      --outfile OUTFILE, -o OUTFILE
                            Ausgabedatei (falls angegeben, wird die Ausgabe hierhin umgeleitet statt nach stdout [kann Kodierungsfehler unter Windows verhindern])
      --engine {ldap3,impacket}, -e {ldap3,impacket}
                            Wählen Sie die zu verwendende Engine (Standard: "ldap3"). BEACHTEN SIE DIE OPSEC-HINWEISE!

    Custom Searches:
              1) Alle Benutzer abrufen
                      1.1) Bestimmten Benutzer abrufen (Sie werden nach dem Benutzernamen gefragt)
              2) Alle Gruppen (und deren Mitglieder) abrufen
                      2.1) Bestimmte Gruppe abrufen (Sie werden nach dem Gruppennamen gefragt)
              3) Alle Drucker abrufen
              4) Alle Computer abrufen
                      4.1) Bestimmten Computer abrufen (Sie werden nach dem Computernamen gefragt)
              5) Domänen-/Enterprise-Administratoren abrufen
              6) Domänenvertrauensstellungen abrufen
              7) Nach uneingeschränkten SPN-Delegationen suchen (Potentielle Privilegienausweitung)
              8) Nach Konten suchen, bei denen PreAuth nicht erforderlich ist (ASREPROAST)
              9) Nach Benutzer-SPNs suchen (KERBEROAST)
                      9.1) Nach einem bestimmten Benutzer-SPN suchen (Sie werden nach dem User Principal Name gefragt)
             10) Alle sichtbaren LAPS-LA-Passwörter anzeigen
                     10.1) Nach einem bestimmten Workstation-LAPS-Passwort suchen (Sie werden nach dem Workstation-Namen gefragt)
            *11) Nach häufigen Klartext-Passwort-Attributen suchen (UserPassword, UnixUserPassword, unicodePwd und msSFU30Password)
             12) Alle Quest-Zwei-Faktor-Seeds anzeigen (falls Zugriff vorhanden)
             13) Oracle "orclCommonAttribute" SSO-Passwort-Hash
            *14) Oracle "userPassword" SSO-Passwort-Hash
             15) SCCM-Server abrufen
             16) Nach Konten suchen, bei denen kein Passwort erforderlich ist (PasswordNotRequired)

    Mit Sternchen markierte Einträge wurden noch nie in einer Umgebung getestet, in der sie verifiziert werden konnten. Bitte teilen Sie mir mit, ob sie funktionieren.

Beispiel

Für diese Beispiele gehen wir von Folgendem aus:

root@kitploit:~
NETBIOS NAME: EMP
FULL DOMAIN NAME: EXAMPLE.LOCAL
DC IPs: 10.0.0.2, 10.0.0.3
USERNAME: bob
PASSWORD: password

Alle Datensätze abrufen und nur das cn-Attribut zurückgeben:

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s '(cn=*)' cn

Details zu einem bestimmten Benutzer abrufen (Sie werden nach dem Benutzernamen gefragt):

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s '1.1'

Details zu einem bestimmten Benutzer abrufen (Benutzername übergeben, damit keine Eingabeaufforderung erscheint):

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s '1.1' -a 'alice'

Die ersten 100 Benutzer-Kerberos-SPNs abrufen, maximal fünf gleichzeitig, mit zwei Sekunden Verzögerung zwischen den Seitenanfragen im kompakten JSON-Format:

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 100 -p 5 -d 2000 -f json_tiny -s '(&(objectcategory=user)(serviceprincipalname=*))' serviceprincipalname userprincipalname

Manuell alle Datensätze für Drucker abrufen und alle zugehörigen Attribute anzeigen:

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s '(objectClass=printQueue)'

Mühelos nach uneingeschränkten SPN-Delegationen suchen:

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s 4

OPSEC-Warnungen

  1. Bei Verwendung der Impacket-Engine und ohne Angabe einer baseDN versucht das Tool eine SMB-Authentifizierung und -Verbindung zum Domänencontroller, um den NETBIOS-Namen der Domäne zu ermitteln und daraus die baseDN abzuleiten. Dieses Verhalten kann in einer stark überwachten Umgebung zu einer Erkennung führen. Verwenden Sie Impacket in einer solchen Umgebung entweder nicht, oder geben Sie immer die baseDN an.

  2. Impacket führt entweder eine vollständige LDAPS-Verbindung oder eine vollständig unverschlüsselte Verbindung durch. Es kann derzeit kein STARTTLS verwenden. Wenn also eine unverschlüsselte LDAP-Verbindung erkannt würde, versuchen Sie entweder nur eine vollständige TLS-Verbindung oder verwenden Sie nicht die Impacket-Engine.

  3. Impacket bietet nicht die meiste Kontrolle darüber, wie schnell Datensätze abgerufen werden. Daher ist die Option "--delay" nur teilweise implementiert. Wenn die Verzögerung des Datensatzabrufs entscheidend ist, verwenden Sie nicht die Impacket-Engine.

Referenzen

Kerberoast: https://adsecurity.org/?p=2293

ASREPRoast: http://www.harmj0y.net/blog/activedirectory/roasting-as-reps/

Unconstrained Delegation Abuse: http://www.harmj0y.net/blog/activedirectory/the-most-dangerous-user-right-you-probably-have-never-heard-of/

Oracle nonsense: https://blogs.oracle.com/mwilcox/entry/clarifying_ovd-ad_eus_password and http://onlineappsdba.com/index.php/2014/03/03/what-hashing-algorithm-oid-uses-to-store-user-password-ssha-or-md5/

Qwest/Defender/Oneidentity 2nd Factor Token Data: http://support-public.cfm.quest.com/43565_Defender_5.9_AdminGuide.pdf

Common plaintext passwords: https://www.blackhillsinfosec.com/domain-goodness-learned-love-ad-explorer/

Änderungsprotokoll

Version 1.7

  1. Überprüfung auf Konten, die keine Passwörter benötigen, mit freundlicher Genehmigung von @nyxgeek.

Version 1.6

  1. Impacket als Alternative zu LDAP3 hinzugefügt, da LDAP3 nicht immer funktioniert (und Impacket auch nicht).

  2. Mehrfach-LDAP-Serverauswahl entfernt, da diese Funktion nicht wirklich benötigt wird und in Impacket nicht existiert.

  3. Alles überarbeitet.

Version 1.5

  1. Kleinen Paginierungsfehler behoben, der dazu führen konnte, dass einige Datensätze nicht zurückgegeben wurden.

Version 1.4

  1. SCCM-Suchfunktion hinzugefügt.

  2. Option für Ausgabedatei hinzugefügt.

  3. Einige Formatierungsausgaben behoben.

Version 1.3

  1. Möglichkeit hinzugefügt, LDAP-Abfragen von stdin zu lesen.

  2. Abfrage automatisch in Klammern setzen, falls der Benutzer dies nicht bereits getan hat.

  3. Python-2-Unterstützungsfehler behoben.

Zukünftige Pläne

Wenn Sie häufig verwendete Suchen/Enumerationen haben, lassen Sie es mich wissen, damit ich sie zur Liste hinzufügen kann.

  1. Vielleicht eine Offline-Suche/Parse-Funktion für zuvor abgerufene Daten erstellen?

...

Danksagung und Kontakt

Geschrieben von Shelby Spencer (shellster). Kontaktieren Sie mich bei Fehlern oder Feature-Wünschen.

Tool herunterladen