9200 - Pentesting Elasticsearch
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak. Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
Elasticsearch is 'n verspreide, oopbron soek- en analitiese enjin vir alle tipes data. Dit is bekend vir sy spoed, schaalbaarheid, en eenvoudige REST API's. Gebou op Apache Lucene, is dit eerste keer vrygestel in 2010 deur Elasticsearch N.V. (nou bekend as Elastic). Elasticsearch is die kernkomponent van die Elastic Stack, 'n versameling oopbron gereedskap vir data-inname, verryking, berging, analise, en visualisering. Hierdie stapel, algemeen bekend as die ELK Stapel, sluit ook Logstash en Kibana in, en het nou liggewig data versendingsagente genaamd Beats.
'n Elasticsearch indeks is 'n versameling van verwante dokumente wat as JSON gestoor word. Elke dokument bestaan uit sleutels en hul ooreenstemmende waardes (strings, getalle, booleans, datums, arrays, geolokasies, ens.).
Elasticsearch gebruik 'n doeltreffende datastruktuur genaamd 'n omgekeerde indeks om vinnige volle teks soektogte te fasiliteer. Hierdie indeks lys elke unieke woord in die dokumente en identifiseer die dokumente waarin elke woord voorkom.
Tydens die indekseringsproses stoor Elasticsearch die dokumente en bou die omgekeerde indeks, wat byna regte tyd soek moontlik maak. Die indeks API word gebruik om JSON-dokumente binne 'n spesifieke indeks by te voeg of op te dateer.
Standaard poort: 9200/tcp
Die protokol wat gebruik word om toegang tot Elasticsearch te verkry is HTTP. Wanneer jy dit via HTTP benader, sal jy 'n paar interessante inligting vind: http://10.10.10.115:9200/
As jy daardie antwoord nie sien nie wanneer jy toegang tot /
verkry, sien die volgende afdeling.
Standaard het Elasticsearch nie verifikasie geaktiveer nie, so jy kan standaard alles binne die databasis toegang sonder om enige geloofsbriewe te gebruik.
Jy kan verifieer dat verifikasie gedeaktiveer is met 'n versoek na:
** egter**, as jy 'n versoek na /
stuur en 'n antwoord soos die volgende ontvang:
Dit beteken dat outentikasie geconfigureer is en jy geldige akrediteerlinge nodig het om enige inligting van Elasticsearch te verkry. Dan kan jy probeer om dit te bruteforce (dit gebruik HTTP basiese outentikasie, so enigiets wat BF HTTP basiese outentikasie kan gebruik, kan gebruik word). Hier is 'n lys van standaard gebruikersname: elastic (superuser), remote_monitoring_user, beats_system, logstash_system, kibana, kibana_system, apm_system, _anonymous_._ Ou weergawe van Elasticsearch het die standaard wagwoord changeme vir hierdie gebruiker.
Hier is 'n paar eindpunte wat jy kan toegang verkry via GET om inligting oor elasticsearch te verkry:
_cat | /_cluster | /_security |
---|---|---|
/_cat/segments | /_cluster/allocation/explain | /_security/user |
/_cat/shards | /_cluster/settings | /_security/privilege |
/_cat/repositories | /_cluster/health | /_security/role_mapping |
/_cat/recovery | /_cluster/state | /_security/role |
/_cat/plugins | /_cluster/stats | /_security/api_key |
/_cat/pending_tasks | /_cluster/pending_tasks | |
/_cat/nodes | /_nodes | |
/_cat/tasks | /_nodes/usage | |
/_cat/templates | /_nodes/hot_threads | |
/_cat/thread_pool | /_nodes/stats | |
/_cat/ml/trained_models | /_tasks | |
/_cat/transforms/_all | /_remote/info | |
/_cat/aliases | ||
/_cat/allocation | ||
/_cat/ml/anomaly_detectors | ||
/_cat/count | ||
/_cat/ml/data_frame/analytics | ||
/_cat/ml/datafeeds | ||
/_cat/fielddata | ||
/_cat/health | ||
/_cat/indices | ||
/_cat/master | ||
/_cat/nodeattrs | ||
/_cat/nodes |
Hierdie eindpunte is geneem uit die dokumentasie waar jy meer kan vind.
Ook, as jy toegang verkry tot /_cat
, sal die antwoord die /_cat/*
eindpunte bevat wat deur die instansie ondersteun word.
In /_security/user
(as outentisering geaktiveer is) kan jy sien watter gebruiker die rol superuser
het.
Jy kan alle indekse versamel deur http://10.10.10.115:9200/_cat/indices?v
te benader.
Om inligting te verkry oor watter tipe data binne 'n indeks gestoor is, kan jy toegang verkry tot: http://host:9200/<index>
in hierdie geval http://10.10.10.115:9200/bank
As jy alle inhoud van 'n indeks wil dump, kan jy toegang verkry tot: http://host:9200/<index>/_search?pretty=true
soos http://10.10.10.115:9200/bank/_search?pretty=true
Neem 'n oomblik om die inhoud van elke dokument (inskrywing) binne die bankindeks en die velde van hierdie indeks wat ons in die vorige afdeling gesien het, te vergelyk.
So, op hierdie punt mag jy opgemerk het dat daar 'n veld genaamd "total" binne "hits" is wat aandui dat 1000 dokumente gevind is binne hierdie indeks, maar slegs 10 is teruggetrek. Dit is omdat daar per standaard 'n limiet van 10 dokumente is.
Maar, nou dat jy weet dat hierdie indeks 1000 dokumente bevat, kan jy almal dump deur die aantal inskrywings wat jy wil dump in die size
parameter aan te dui: http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000
asd
Nota: As jy 'n groter getal aandui, sal al die inskrywings steeds gedump word, byvoorbeeld jy kan size=9999
aandui en dit sal vreemd wees as daar meer inskrywings was (maar jy moet dit nagaan).
Om alles te dump kan jy net na die dieselfde pad as voor gaan, maar sonder om enige indeks aan te dui http://host:9200/_search?pretty=true
soos http://10.10.10.115:9200/_search?pretty=true
Onthou dat in hierdie geval die standaard limiet van 10 resultate toegepas sal word. Jy kan die size
parameter gebruik om 'n groter hoeveelheid resultate te dump. Lees die vorige afdeling vir meer inligting.
As jy op soek is na inligting kan jy 'n rauwe soektog op al die indekse doen deur na http://host:9200/_search?pretty=true&q=<search_term>
te gaan soos in http://10.10.10.115:9200/_search?pretty=true&q=Rockwell
As jy net op 'n indeks wil soek, kan jy dit eenvoudig specifiseer op die pad: http://host:9200/<index>/_search?pretty=true&q=<search_term>
Nota dat die q parameter wat gebruik word om inhoud te soek reguliere uitdrukkings ondersteun
Jy kan ook iets soos https://github.com/misalabs/horuz gebruik om 'n elasticsearch diens te fuzz.
Jy kan jou skryftoestemmings nagaan deur te probeer om 'n nuwe dokument binne 'n nuwe indeks te skep deur iets soos die volgende te loop:
Die cmd sal 'n nuwe indeks genaamd bookindex
skep met 'n dokument van tipe books
wat die eienskappe "bookId", "author", "publisher" en "name" het.
Let op hoe die nuwe indeks nou in die lys verskyn:
En let op die automaties geskepte eienskappe:
Sommige gereedskap sal 'n paar van die data wat voorheen aangebied is, verkry:
port:9200 elasticsearch
Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak. Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om voorregte te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)