<summary><strong>Erlernen Sie AWS-Hacking von Null auf Held mit</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
Elasticsearch ist eine **verteilte**, **Open-Source**-Such- und Analyse-Engine für **alle Arten von Daten**. Es ist bekannt für seine **Geschwindigkeit**, **Skalierbarkeit** und **einfachen REST-APIs**. Auf Apache Lucene aufbauend, wurde es 2010 erstmals von Elasticsearch N.V. (jetzt bekannt als Elastic) veröffentlicht. Elasticsearch ist die Kernkomponente des Elastic Stack, einer Sammlung von Open-Source-Tools für Datenübernahme, -anreicherung, -speicherung, -analyse und -visualisierung. Dieser Stack, allgemein als ELK Stack bezeichnet, umfasst auch Logstash und Kibana und verfügt nun über leichte Datenversand-Agenten namens Beats.
Ein Elasticsearch-**Index** ist eine Sammlung von **verwandten Dokumenten**, die als **JSON** gespeichert sind. Jedes Dokument besteht aus **Schlüsseln** und ihren entsprechenden **Werten** (Zeichenfolgen, Zahlen, Boolesche Werte, Datum, Arrays, Geolokationen usw.).
Elasticsearch verwendet eine effiziente Datenstruktur namens **umgekehrter Index**, um schnelle Volltextsuchen zu ermöglichen. Dieser Index listet jedes eindeutige Wort in den Dokumenten auf und identifiziert die Dokumente, in denen jedes Wort erscheint.
Während des Indexierungsprozesses speichert Elasticsearch die Dokumente und erstellt den umgekehrten Index, was eine nahezu Echtzeitsuche ermöglicht. Die **Index-API** wird verwendet, um JSON-Dokumente zu einem bestimmten Index hinzuzufügen oder zu aktualisieren.
Das Protokoll, um auf Elasticsearch zuzugreifen, ist **HTTP**. Wenn Sie über HTTP darauf zugreifen, finden Sie einige interessante Informationen: `http://10.10.10.115:9200/`
**Standardmäßig ist die Authentifizierung in Elasticsearch deaktiviert**, sodass Sie standardmäßig auf alles in der Datenbank zugreifen können, ohne Anmeldeinformationen zu verwenden.
curl -X GET "ELASTICSEARCH-SERVER:9200/_xpack/security/user"
{"error":{"root_cause":[{"type":"exception","reason":"Security must be explicitly enabled when using a [basic] license. Enable security by setting [xpack.security.enabled] to [true] in the elasticsearch.yml file and restart the node."}],"type":"exception","reason":"Security must be explicitly enabled when using a [basic] license. Enable security by setting [xpack.security.enabled] to [true] in the elasticsearch.yml file and restart the node."},"status":500}
Das bedeutet, dass die Authentifizierung konfiguriert ist und **gültige Anmeldeinformationen erforderlich sind**, um Informationen von Elasticsearch zu erhalten. Anschließend können Sie [**versuchen, Brute-Force anzuwenden**](../generic-methodologies-and-resources/brute-force.md#elasticsearch) (es verwendet HTTP-Basisauthentifizierung, daher kann alles, was BF HTTP-Basisauthentifizierung kann, verwendet werden).\
Hier haben Sie eine **Liste der Standardbenutzernamen**: _**elastic** (Superbenutzer), remote\_monitoring\_user, beats\_system, logstash\_system, kibana, kibana\_system, apm\_system,_ \_anonymous\_.\_ Ältere Versionen von Elasticsearch haben das Standardpasswort **changeme** für diesen Benutzer.
Diese Endpunkte wurden [**aus der Dokumentation entnommen**](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html), wo Sie **mehr finden können**.\
Außerdem enthält die Antwort auf den Zugriff auf `/_cat` die von der Instanz unterstützten `/_cat/*`-Endpunkte.
Um **Informationen darüber zu erhalten, welche Art von Daten in einem Index gespeichert sind**, können Sie auf Folgendes zugreifen: `http://host:9200/<index>` zum Beispiel in diesem Fall `http://10.10.10.115:9200/bank`
Wenn Sie **alle Inhalte** eines Index dumpen möchten, können Sie auf Folgendes zugreifen: `http://host:9200/<index>/_search?pretty=true` wie `http://10.10.10.115:9200/bank/_search?pretty=true`
_Nehmen Sie sich einen Moment Zeit, um die Inhalte jedes Dokuments (Eintrags) im Bank-Index und die Felder dieses Index zu vergleichen, die wir im vorherigen Abschnitt gesehen haben._
An diesem Punkt können Sie feststellen, dass **es ein Feld namens "total" innerhalb von "hits"** gibt, das angibt, dass **1000 Dokumente** in diesem Index gefunden wurden, aber nur 10 abgerufen wurden. Dies liegt daran, dass **standardmäßig eine Begrenzung von 10 Dokumenten besteht**.\
Aber jetzt, da Sie wissen, dass **dieser Index 1000 Dokumente enthält**, können Sie **alle von ihnen dumpen**, indem Sie die Anzahl der Einträge angeben, die Sie im **`size`**-Parameter dumpen möchten: `http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\
_Hinweis: Wenn Sie eine größere Zahl angeben, werden alle Einträge sowieso gedumpt, zum Beispiel könnten Sie `size=9999` angeben und es wäre seltsam, wenn es mehr Einträge gäbe (aber Sie sollten überprüfen)._
Um alles zu dumpen, können Sie einfach zum **gleichen Pfad wie zuvor gehen, aber ohne einen Index anzugeben**`http://host:9200/_search?pretty=true` wie `http://10.10.10.115:9200/_search?pretty=true`\
Denken Sie daran, dass in diesem Fall die **Standardbegrenzung von 10** Ergebnissen angewendet wird. Sie können den `size`-Parameter verwenden, um eine **größere Menge an Ergebnissen** zu dumpen. Lesen Sie den vorherigen Abschnitt für weitere Informationen.
Wenn Sie nach Informationen suchen, können Sie eine **Rohsuche in allen Indizes** durchführen, indem Sie zu `http://host:9200/_search?pretty=true&q=<search_term>` gehen, wie in `http://10.10.10.115:9200/_search?pretty=true&q=Rockwell`
Wenn Sie nur in einem Index **suchen möchten**, können Sie es einfach im **Pfad** angeben: `http://host:9200/<index>/_search?pretty=true&q=<search_term>`
Sie können auch etwas wie [https://github.com/misalabs/horuz](https://github.com/misalabs/horuz) verwenden, um einen Elasticsearch-Dienst zu fuzzieren.
Sie können Ihre Schreibberechtigungen überprüfen, indem Sie versuchen, ein neues Dokument in einem neuen Index zu erstellen, indem Sie etwas Ähnliches ausführen:
Die folgende cmd erstellt einen **neuen Index** namens `bookindex` mit einem Dokument vom Typ `books`, das die Attribute "_bookId_", "_author_", "_publisher_" und "_name_" hat.
<summary><strong>Erlernen Sie AWS-Hacking von Null auf Held mit</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github Repositories einreichen.