33 KiB
9200 - पेंटेस्टिंग एलास्टिकसर्च
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
क्या आप किसी साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को HackTricks में विज्ञापित देखना चाहते हैं? या क्या आपको PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग करने की इच्छा है? सदस्यता योजनाएं की जांच करें!
-
खोजें The PEASS Family, हमारा विशेष संग्रह NFTs
-
प्राप्त करें आधिकारिक PEASS & HackTricks swag
-
शामिल हों 💬 Discord समूह या टेलीग्राम समूह या मुझे Twitter पर फ़ॉलो करें 🐦@carlospolopm.
-
अपने हैकिंग ट्रिक्स को hacktricks रेपो और hacktricks-cloud रेपो में पीआर जमा करके साझा करें।
मूलभूत जानकारी
मुख्य पृष्ठ से आप कुछ उपयोगी विवरण पा सकते हैं:
Elasticsearch सभी प्रकार के डेटा के लिए एक वितरित, ओपन सोर्स खोज और विश्लेषण इंजन है, जिसमें पाठिक, संख्यात्मक, भूगोलिक, संरचित और असंरचित सभी प्रकार के डेटा शामिल होते हैं। Elasticsearch Apache Lucene पर निर्मित है और 2010 में Elasticsearch N.V. (अब Elastic के रूप में जाना जाता है) द्वारा पहली बार जारी किया गया था। यह अपनी सरल REST API, वितरित स्वभाव, गति और स्केलेबिलिटी के लिए जाना जाता है, Elasticsearch Elastic Stack का मुख्य घटक है, जो डेटा संग्रहण, संग्रहण, भंडारण, विश्लेषण और दृश्यीकरण के लिए खुला स्रोत उपकरणों का सेट है। Elasticsearch, Logstash और Kibana के बाद आमतौर पर ELK Stack के रूप में उल्लिखित, Elastic Stack अब Elasticsearch को डेटा भेजने के लिए बीट्स के रूप में जाने वाले हलके शिपिंग एजेंट्स का एक समृद्ध संग्रह शामिल करता है।
एक Elasticsearch इंडेक्स क्या है?
एक Elasticsearch इंडेक्स एक दस्तावेज़ संग्रह है जो एक दूसरे से संबंधित होते हैं। Elasticsearch डेटा को JSON दस्तावेज़ के रूप में संग्रहीत करता है। प्रत्येक दस्तावेज़ में एक सेट के कुंजी (फ़ील्ड या गुणों के नाम) को उनके संबंधित मानों (स्ट्रिंग, संख्या, बूलियन, तिथियाँ, मानों के एरे, भू-स्थान, या अन्य प्रकार के डेटा) के साथ संबंधित करता है।
Elasticsearch एक उलटी हुई सूची नामक डेटा संरचना का उपयोग करता है, जिसका उद्देश्य बहुत तेज़ फुल-टेक्स्ट खोजों को संभव बनाने के लिए है। एक उलटी हुई सूची में हर एकदर्शी शब्द की सूची होती है जो किसी भी दस्तावेज़ में प्रकट होता है और हर एकदर्शी शब्द के लिए वह सभी दस्तावेज़ों की पहचान करती है जिसमें वह शब्द पाया जाता है।
इंडेक्सिंग प्रक्रिया के दौरान, Elasticsearch दस्तावेज़ संग्रहीत करता है और एक उलटी हुई सूची बनाता है ताकि दस्तावेज़ डेटा को नजदीकी समय में खोजने योग्य बना सके। इंडेक्सिंग इंडेक्स API के साथ प्रारंभ की जाती है, जिसके माध्यम से आप एक विशिष्ट इंडेक्स में एक JSON दस्तावेज़ जोड़ सकते हैं या अपडेट कर सकते हैं।
डिफ़ॉल्ट पोर्ट: 9200/tcp
मैनुअल गणना
बैनर
Elasticsearch तक पहुंच करने के लिए उपयोग किए जाने वाले प्रोटोकॉल का उपयोग HTTP है। जब आप इसे HTTP के माध्यम से एक्सेस करते हैं, तो आपको कुछ दिलचस्प जानकारी मिलेगी: http://10.10.10.115:9200/
यदि आप /
तक पहुंचते समय उस प्रतिक्रिया को नहीं देखते हैं, तो निम्नलिखित अनुभाग को देखें।
प्रमाणीकरण
डिफ़ॉल्ट रूप से Elasticsearch में प्रमाणीकरण सक्षम नहीं है, इसलिए डिफ़ॉल्ट रूप से आप किसी भी क्रेडेंशियल का उपयोग किए बिना डेटाबेस के अंदर सब कुछ एक्सेस कर सकते हैं।
आप निम्नलिखित अनुरोध के साथ प्रमाणीकरण अक्षम होने की जांच कर
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}
हालांकि, यदि आप /
पर एक अनुरोध भेजते हैं और निम्नलिखित जैसा प्रतिक्रिया प्राप्त करते हैं:
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}
इसका मतलब है कि प्रमाणीकरण कॉन्फ़िगर किया गया है और आपको मान्य क्रेडेंशियल्स की आवश्यकता होगी ताकि आप elasticserach से कोई भी जानकारी प्राप्त कर सकें। फिर, आप इसे ब्रूटफ़ोर्स करने की कोशिश कर सकते हैं (यह HTTP बेसिक ऑथ का उपयोग करता है, इसलिए ब्रूटफ़ोर्स के लिए कुछ भी उपयोग किया जा सकता है)।
यहां आपको डिफ़ॉल्ट उपयोगकर्ता नामों की सूची है: elastic (सुपरयूजर), remote_monitoring_user, beats_system, logstash_system, kibana, kibana_system, apm_system, _anonymous_._ पुराने संस्करणों में Elasticsearch के लिए डिफ़ॉल्ट पासवर्ड changeme होता है।
curl -X GET http://user:password@IP:9200/
मूलभूत उपयोगकर्ता जांच
इलास्टिकसर्च के लिए पेंटेस्टिंग करते समय, उपयोगकर्ता जांच एक महत्वपूर्ण कदम है। यह आपको उपयोगकर्ताओं के बारे में महत्वपूर्ण जानकारी प्रदान करता है जो आपको आगे की पेंटेस्टिंग के लिए मदद कर सकती है। निम्नलिखित तकनीकों का उपयोग करके आप इलास्टिकसर्च पर उपयोगकर्ताओं की जांच कर सकते हैं:
1. डिफ़ॉल्ट उपयोगकर्ता और पासवर्ड
इलास्टिकसर्च के डिफ़ॉल्ट उपयोगकर्ता और पासवर्ड को जांचें। डिफ़ॉल्ट उपयोगकर्ता "elastic" होता है और पासवर्ड खाली होता है।
2. उपयोगकर्ता और पासवर्ड की ब्रूटफोर्सिंग
यदि डिफ़ॉल्ट उपयोगकर्ता और पासवर्ड काम नहीं कर रहे हैं, तो आप ब्रूटफोर्सिंग तकनीक का उपयोग करके अन्य उपयोगकर्ता और पासवर्ड की कोशिश कर सकते हैं। इसके लिए, आप किसी ब्रूटफोर्सिंग टूल का उपयोग कर सकते हैं जैसे कि Hydra या Burp Suite Intruder।
3. उपयोगकर्ता और पासवर्ड की लीक
यदि आपको किसी उपयोगकर्ता और पासवर्ड की जानकारी मिल जाती है, तो आप उनका उपयोग करके लॉगिन कर सकते हैं। इसके लिए, आप उपयोगकर्ता और पासवर्ड को इलास्टिकसर्च के लॉगिन पेज पर दर्ज करके जांच सकते हैं।
यदि आप इन तकनीकों का उपयोग करके उपयोगकर्ताओं की जांच करते हैं और कोई सफलता प्राप्त नहीं करते हैं, तो आपको अन्य उपयोगकर्ता जांच तकनीकों का उपयोग करना चाहिए जैसे कि उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत, उपयोगकर्ता नामों की दिक्कत,
#List all roles on the system:
curl -X GET "ELASTICSEARCH-SERVER:9200/_security/role"
#List all users on the system:
curl -X GET "ELASTICSEARCH-SERVER:9200/_security/user"
#Get more information about the rights of an user:
curl -X GET "ELASTICSEARCH-SERVER:9200/_security/user/<USERNAME>"
इलास्टिक जानकारी
यहां कुछ ऐसे एंडपॉइंट्स हैं जिन्हें आप GET के माध्यम से एक्सेस कर सकते हैं और इलास्टिकसर्च के बारे में कुछ जानकारी प्राप्त कर सकते हैं:
_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 |
ये एंडपॉइंट्स दस्तावेज़ी से लिए गए हैं जहां आप अधिक जानकारी पा सकते हैं।
इसके अलावा, यदि आप /_cat
तक पहुंचते हैं तो प्रतिक्रिया में उपस्थित होंगे /_cat/*
एंडपॉइंट्स जिन्हें इंस्टेंस समर्थित करता है।
/_security/user
में (यदि प्रमाणीकरण सक्षम है) आप देख सकते हैं कि कौन सा उपयोगकर्ता superuser
भूमिका वाला है।
इंडेक्स
आप http://10.10.10.115:9200/_cat/indices?v
एक्सेस करके सभी इंडेक्स को एकत्र कर सकते हैं।
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .kibana 6tjAYZrgQ5CwwR0g6VOoRg 1 0 1 0 4kb 4kb
yellow open quotes ZG2D1IqkQNiNZmi2HRImnQ 5 1 253 0 262.7kb 262.7kb
yellow open bank eSVpNfCfREyYoVigNWcrMw 5 1 1000 0 483.2kb 483.2kb
एक इंडेक्स में कौन से प्रकार के डेटा संग्रहित हैं के बारे में जानकारी प्राप्त करने के लिए आप इस तरह से पहुंच कर सकते हैं: http://host:9200/<index>
उदाहरण के लिए इस मामले में http://10.10.10.115:9200/bank
इंडेक्स डंप
यदि आप एक इंडेक्स के सभी सामग्री को डंप करना चाहते हैं तो आप इस तरह से पहुंच कर सकते हैं: http://host:9200/<index>/_search?pretty=true
जैसे http://10.10.10.115:9200/bank/_search?pretty=true
बैंक इंडेक्स के हर दस्तावेज़ (एंट्री) की सामग्री और इस इंडेक्स के फ़ील्ड की तुलना करने के लिए कुछ समय लें।
तो, इस बिंदु पर आप यह देख सकते हैं कि "हिट्स" के अंदर "टोटल" नामक एक फ़ील्ड है जो इस इंडेक्स में मौजूद 1000 दस्तावेज़ों की संख्या बताता है, लेकिन केवल 10 दस्तावेज़ प्राप्त किए गए हैं। यह इसलिए है क्योंकि डिफ़ॉल्ट रूप से केवल 10 दस्तावेज़ों की सीमा होती है।
लेकिन, अब जब आप जानते हैं कि इस इंडेक्स में 1000 दस्तावेज़ हैं, आप उन सभी को डंप कर सकते हैं जहां आपको डंप करने की एंट्री की संख्या दर्ज करनी होगी size
पैरामीटर में: http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000
asd
नोट: यदि आप बड़ी संख्या दर्ज करते हैं तो सभी एंट्री फिर भी डंप हो जाएगी, उदाहरण के लिए आप size=9999
दर्ज कर सकते हैं और अगर अधिक एंट्री होती है तो यह अजीब होगा (लेकिन आपको जांचना चाहिए)।
सभी डंप करें
सभी डंप करने के लिए, आप बस पहले जैसे ही पथ पर जा सकते हैं लेकिन कोई इंडेक्स नहीं दर्शा रहे हैं http://host:9200/_search?pretty=true
जैसे http://10.10.10.115:9200/_search?pretty=true
ध्यान दें कि इस मामले में 10 की डिफ़ॉल्ट सीमा परिणाम लागू होगी। आप परिणामों की अधिक मात्रा के लिए size
पैरामीटर का उपयोग कर सकते हैं। अधिक जानकारी के लिए पिछला अनुभाग पढ़ें।
खोज
यदि आप कुछ जानकारी ढूंढ़ रहे हैं तो आप सभी इंडेक्स पर एक रॉ खोज कर सकते हैं http://host:9200/_search?pretty=true&q=<search_term>
जैसे http://10.10.10.115:9200/_search?pretty=true&q=Rockwell
यदि आप केवल एक इंडेक्स पर खोज करना चाहते हैं तो आप बस उसे पथ पर निर्दिष्ट कर सकते हैं: http://host:9200/<index>/_search?pretty=true&q=<search_term>
ध्यान दें कि खोज सामग्री को खोजने के लिए q पैरामीटर नियमित अभिव्यक्तियों का समर्थन करता है
आप एक इलास्टिकसर्च सेवा को फ़ज़ करने के लिए https://github.com/misalabs/horuz जैसी कुछ चीजें भी उपयोग कर सकते हैं।
लेखन अनुमतियाँ
आप अपनी लेखन अनुमतियों की जांच कर सकते हैं एक नए इंडेक्स के अंदर एक नया दस्तावेज़ बनाने की कोशिश करके निम्नलिखित कुछ ऐसा चला सकते हैं:
curl -X POST '10.10.10.115:9200/bookindex/books' -H 'Content-Type: application/json' -d'
{
"bookId" : "A00-3",
"author" : "Sankaran",
"publisher" : "Mcgrahill",
"name" : "how to get a job"
}'
वह cmd एक नया इंडेक्स बनाएगा जिसका नाम bookindex
होगा और जिसमें books
नामक एक डॉक्यूमेंट होगा जिसमें "bookId", "author", "publisher" और "name" नामक गुण होंगे।
ध्यान दें कि नया इंडेक्स अब सूची में दिखाई देता है:
और स्वचालित रूप से बनाए गए गुणों को ध्यान दें:
स्वचालित गणना
कुछ उपकरण पहले प्रस्तुत किए गए डेटा का उपयोग करेंगे:
msf > use auxiliary/scanner/elasticsearch/indices_enum
{% embed url="https://github.com/theMiddleBlue/nmap-elasticsearch-nse" %}
शोदन
port:9200 elasticsearch
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
क्या आप किसी साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को HackTricks में विज्ञापित देखना चाहते हैं? या क्या आपको PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग करने की इच्छा है? सदस्यता योजनाएं की जांच करें!
-
खोजें The PEASS Family, हमारा विशेष संग्रह NFTs
-
प्राप्त करें आधिकारिक PEASS & HackTricks swag
-
शामिल हों 💬 Discord समूह या टेलीग्राम समूह में या मुझे ट्विटर पर फ़ॉलो करें 🐦@carlospolopm.
-
अपने हैकिंग ट्रिक्स को hacktricks रेपो और hacktricks-cloud रेपो में पीआर जमा करके साझा करें।