> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/de/ports-and-services/ldap-389-636-3268-3269/ldapsearch-attack.md).

# ldapsearch-Enumeration

LDAP-Enumeration mit ldapsearch für Naming Contexts, Domänenobjekte, Benutzer, Gruppen und sensible Attribute.

> Das **ldapsearch** Das Tool ermöglicht es Ihnen, einen LDAP-Server abzufragen, um Informationen über die Domänenstruktur, Benutzer, Gruppen und andere im Verzeichnis gespeicherte Objekte abzurufen. Es ist besonders nützlich für die Enumeration in einer Active-Directory-Umgebung.

### **Abruf von Naming Contexts**

Dieser Befehl ruft die **Namenskontexte** (LDAP-Roots) ab, die die Einstiegspunkte für die Untersuchung der Domänenstruktur sind:

```bash
ldapsearch -x -H ldap://<SERVER_IP> -s base namingcontexts
```

```bash
ldapsearch -x -H ldap://10.10.10.175 -s base namingcontexts
```

* `-x`: Verwendet einfache (anonyme) Authentifizierung.
* `-H ldap://10.10.10.175`: Gibt das LDAP-Protokoll und die IP-Adresse des Zielservers an.
* `-s base`: Beschränkt die Suche auf die Wurzel der Domäne.
* `namingcontexts`: Attribut, das angefordert wird, um die verfügbaren Wurzeln anzuzeigen.

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-7693fc0d7faa3efcfec825d3530ac90ba336e39d%2Fimage%20(1595).png?alt=media" alt=""><figcaption></figcaption></figure>

### **Analyse der Domänenstruktur**

Dieser Befehl untersucht die LDAP-Struktur, um Benutzer, Gruppen oder andere Objekte zu identifizieren:

```bash
ldapsearch -x -H ldap://<SERVER_IP> -b '<BASE_DN>'
```

```bash
ldapsearch -x -H ldap://10.10.10.175 -b 'DC=EGOTISTICAL-BANK,DC=LOCAL
```

* `-b 'DC=EGOTISTICAL-BANK,DC=LOCAL'`: Definiert die Suchbasis (den LDAP-Einstiegspunkt).
* Dieser Befehl gibt alle Informationen zurück, die mit den aktuellen Rechten zugänglich sind.

### **Filterung nach Benutzern**

Um nur Domänenbenutzer zu extrahieren, wenden Sie eine zusätzliche Filterung mit `grep` und `sed`:

```bash
ldapsearch -x -H ldap://<SERVER_IP> -b '<BASE_DN>' "(objectClass=user)" | grep "dn: CN=" | sed 's/dn: CN=//;s/,.*//'
```

```bash
ldapsearch -x -H ldap://10.10.10.175 -b 'DC=EGOTISTICAL-BANK,DC=LOCAL' | grep "dn: CN=" | sed 's/dn: CN=//;s/,DC=EGOTISTICAL-BANK,DC=LOCAL//'
```

* `grep "dn: CN="`: Filtert Zeilen, die Common Names (CN) von Benutzern enthalten.
* `sed`: Bereinigt die Ergebnisse, um nur Benutzernamen anzuzeigen.

<div data-full-width="true"><figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-fc5fbff793904922b072c824e04af25214a0ea04%2Fimage%20(1596).png?alt=media" alt=""><figcaption></figcaption></figure></div>

### **LDAP-Suche mit Authentifizierung**

Dieser Befehl verwendet ein Konto, um sich zu authentifizieren und den LDAP-Server abzufragen:

```bash
ldapsearch -x -H ldap://<SERVER_IP> -D '<DOMAIN>/<USER>' -w '<PASSWORD>' -b '<BASE_DN>'
```

```bash
ldapsearch -x -H ldap://10.10.11.174 -D 'support.htb/ldap' -w 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
```

* `-D 'support.htb/ldap'`: Gibt das Benutzerkonto für die Authentifizierung an.
* `-w 'password'`: Passwort des verwendeten Kontos.
* Dieser Befehl gibt alle mit diesem Konto zugänglichen Daten zurück.

### **Suche nach bestimmten Informationen (erweiterte Filterung)**

Um nach bestimmten Informationen zu suchen, z. B. nach einem in einem Feld gespeicherten Passwort, wenden Sie einen zusätzlichen Filter an:

```bash
ldapsearch -x -H ldap://<SERVER_IP> -D '<USER>@<DOMAIN>' -w '<PASSWORD>' -b '<BASE_DN>' | grep -i "<ATTRIBUTE>" -B <LINES_BEFORE>
```

```bash
ldapsearch -x -H ldap://10.10.11.174 -D 'ldap@support.htb' -w 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' -b "DC=support,DC=htb" | grep -i "info:" -B 20
```

* `grep -i "info:"`: Filtert Zeilen, die das `info` Attribut enthalten, zum Beispiel eine Notiz oder ein Passwort.
* `-B 20`: Zeigt 20 Zeilen vor jedem Ergebnis an, um den Kontext darzustellen.

<figure><img src="https://2955439919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-66d7b358420350e9c73aef45179ffd790a85cffc%2Fimage%20(1547).png?alt=media" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/de/ports-and-services/ldap-389-636-3268-3269/ldapsearch-attack.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
