<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
Elasticsearch je **distribuirani**, **open source** pretraživač i analitički sistem za **sve vrste podataka**. Poznat je po svojoj **brzini**, **šalabilnosti** i **jednostavnim REST API-ima**. Izgrađen na Apache Lucene-u, prvi put je objavljen 2010. godine od strane Elasticsearch N.V. (sada poznat kao Elastic). Elasticsearch je osnovna komponenta Elastic Stack-a, kolekcije open source alata za unos, obogaćivanje, skladištenje, analizu i vizualizaciju podataka. Ova kolekcija, često nazvana ELK Stack, takođe uključuje Logstash i Kibana, a sada ima i lagane agente za slanje podataka nazvane Beats.
Elasticsearch **indeks** je kolekcija **povezanih dokumenata** koji se čuvaju kao **JSON**. Svaki dokument se sastoji od **ključeva** i njihovih odgovarajućih **vrednosti** (stringovi, brojevi, boolean vrednosti, datumi, nizovi, geolokacije, itd.).
Elasticsearch koristi efikasnu strukturu podataka nazvanu **inverzni indeks** kako bi omogućio brze pretrage celokupnog teksta. Ovaj indeks navodi svaku jedinstvenu reč u dokumentima i identifikuje dokumente u kojima se svaka reč pojavljuje.
Tokom procesa indeksiranja, Elasticsearch čuva dokumente i konstruiše inverzni indeks, što omogućava pretragu u gotovo realnom vremenu. **Index API** se koristi za dodavanje ili ažuriranje JSON dokumenata unutar određenog indeksa.
Protokol koji se koristi za pristup Elasticsearch-u je **HTTP**. Kada pristupite preko HTTP-a, pronaći ćete neke interesantne informacije: `http://10.10.10.115:9200/`
**Podrazumevano Elasticsearch nema omogućenu autentifikaciju**, tako da podrazumevano možete pristupiti svemu unutar baze podataka bez korišćenja bilo kakvih akreditacija.
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}
To znači da je konfigurisana autentifikacija i **potrebne su vam validne akreditacije** da biste dobili bilo kakve informacije iz Elasticsearch-a. Zatim, možete [**pokušati da izvršite brute force napad**](../generic-methodologies-and-resources/brute-force.md#elasticsearch) (koristi HTTP osnovnu autentifikaciju, pa se može koristiti bilo šta što može da izvrši BF HTTP osnovne autentifikacije).\
Evo vam **lista podrazumevanih korisničkih imena**: _**elastic** (superkorisnik), remote\_monitoring\_user, beats\_system, logstash\_system, kibana, kibana\_system, apm\_system,_ \_anonymous\_.\_ Starije verzije Elasticsearch-a imaju podrazumevanu lozinku **changeme** za ovog korisnika.
```
curl -X GET http://user:password@IP:9200/
```
### Osnovno prebrojavanje korisnika
Kada se bavite pentestiranjem Elasticsearcha, prvi korak je da identifikujete postojeće korisnike sistema. Ovo se može postići korišćenjem različitih metoda prebrojavanja korisnika.
Jedan od načina da se pronađu korisnici je pretraživanje indeksa koji sadrže informacije o korisnicima. Možete koristiti Elasticsearch API za pretragu indeksa i filtriranje rezultata kako biste pronašli relevantne informacije o korisnicima.
#### 3. Korišćenje alata za prebrojavanje korisnika
Postoje i alati koji vam mogu pomoći da automatski prebrojite korisnike Elasticsearcha. Na primer, možete koristiti alat poput `esusers` za prebrojavanje korisnika.
Ovi endpointi su [**preuzeti iz dokumentacije**](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html) gde možete **pronaći više** informacija.\
Takođe, ako pristupite `/_cat`, odgovor će sadržati `/_cat/*` endpointe podržane od strane instance.
Da biste dobili **informacije o vrsti podataka koji su spremljeni unutar indeksa**, možete pristupiti: `http://host:9200/<index>` na primer u ovom slučaju `http://10.10.10.115:9200/bank`
Ako želite **izbaciti sve sadržaje** indeksa, možete pristupiti: `http://host:9200/<index>/_search?pretty=true` kao što je `http://10.10.10.115:9200/bank/_search?pretty=true`
Dakle, u ovom trenutku možete primetiti da **postoji polje nazvano "total" unutar "hits"** koje ukazuje da je pronađeno **1000 dokumenata** unutar ovog indeksa, ali je vraćeno samo 10. To je zato što **podrazumevano postoji ograničenje od 10 dokumenata**.\
Ali, sada kada znate da **ovaj indeks sadrži 1000 dokumenata**, možete **izbaciti sve njih** navodeći broj unosa koje želite izbaciti u parametru **`size`**: `http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\
_Napomena: Ako navedete veći broj, svi unosi će biti izbačeni, na primer možete navesti `size=9999` i biće čudno ako ima više unosa (ali trebali biste proveriti)._
Da biste izbacili sve, jednostavno idite na **isti put kao i prethodno, ali bez navođenja bilo kojeg indeksa**`http://host:9200/_search?pretty=true` kao `http://10.10.10.115:9200/_search?pretty=true`\
Zapamtite da će u ovom slučaju biti primenjen **podrazumevani limit od 10** rezultata. Možete koristiti parametar `size` da biste izbacili **veći broj rezultata**. Pročitajte prethodni odeljak za više informacija.
Ako tražite neke informacije, možete izvršiti **sirovu pretragu svih indeksa** odlaskom na `http://host:9200/_search?pretty=true&q=<search_term>` kao u `http://10.10.10.115:9200/_search?pretty=true&q=Rockwell`
Ako želite samo **pretraživati na jednom indeksu**, jednostavno ga **navedite** u **putanji**: `http://host:9200/<index>/_search?pretty=true&q=<search_term>`
Ta komanda će kreirati **novi indeks** nazvan `bookindex` sa dokumentom tipa `books` koji ima atribute "_bookId_", "_author_", "_publisher_" i "_name_"
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.