9200 - Pentesting Elasticsearch
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Get a hacker's perspective on your web apps, network, and cloud
Find and report critical, exploitable vulnerabilities with real business impact. Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
Elasticsearch एक वितरित, ओपन सोर्स खोज और विश्लेषण इंजन है जो सभी प्रकार के डेटा के लिए है। यह अपनी गति, स्केलेबिलिटी, और सरल REST APIs के लिए जाना जाता है। यह Apache Lucene पर आधारित है, और इसे 2010 में Elasticsearch N.V. (अब Elastic के नाम से जाना जाता है) द्वारा पहली बार जारी किया गया था। Elasticsearch Elastic Stack का मुख्य घटक है, जो डेटा इनजेक्शन, समृद्धि, भंडारण, विश्लेषण, और दृश्यता के लिए ओपन सोर्स टूल्स का एक संग्रह है। इस स्टैक को सामान्यतः ELK स्टैक कहा जाता है, जिसमें Logstash और Kibana भी शामिल हैं, और अब इसमें हल्के डेटा शिपिंग एजेंट्स होते हैं जिन्हें Beats कहा जाता है।
An Elasticsearch index एक संबंधित दस्तावेजों का संग्रह है जो JSON के रूप में संग्रहीत होते हैं। प्रत्येक दस्तावेज में कुंजी और उनके संबंधित मान (स्ट्रिंग, नंबर, बूलियन, तिथियाँ, एरे, भू-स्थान, आदि) होते हैं।
Elasticsearch तेज पूर्ण-पाठ खोजों को सुविधाजनक बनाने के लिए एक कुशल डेटा संरचना का उपयोग करता है जिसे इनवर्टेड इंडेक्स कहा जाता है। यह इंडेक्स दस्तावेजों में प्रत्येक अद्वितीय शब्द को सूचीबद्ध करता है और उन दस्तावेजों की पहचान करता है जिनमें प्रत्येक शब्द प्रकट होता है।
इंडेक्सिंग प्रक्रिया के दौरान, Elasticsearch दस्तावेजों को संग्रहीत करता है और इनवर्टेड इंडेक्स का निर्माण करता है, जिससे लगभग वास्तविक समय में खोज करना संभव होता है। इंडेक्स API का उपयोग एक विशिष्ट इंडेक्स के भीतर JSON दस्तावेज़ जोड़ने या अपडेट करने के लिए किया जाता है।
डिफ़ॉल्ट पोर्ट: 9200/tcp
Elasticsearch तक पहुँचने के लिए उपयोग किया जाने वाला प्रोटोकॉल HTTP है। जब आप HTTP के माध्यम से इसे एक्सेस करते हैं, तो आपको कुछ दिलचस्प जानकारी मिलेगी: http://10.10.10.115:9200/
यदि आप /
तक पहुँचने पर वह प्रतिक्रिया नहीं देखते हैं, तो निम्नलिखित अनुभाग देखें।
डिफ़ॉल्ट रूप से Elasticsearch में प्रमाणीकरण सक्षम नहीं है, इसलिए डिफ़ॉल्ट रूप से आप बिना किसी क्रेडेंशियल का उपयोग किए डेटाबेस के अंदर सब कुछ एक्सेस कर सकते हैं।
आप एक अनुरोध के साथ सत्यापित कर सकते हैं कि प्रमाणीकरण अक्षम है:
हालांकि, यदि आप /
पर एक अनुरोध भेजते हैं और निम्नलिखित प्रतिक्रिया प्राप्त करते हैं:
यह मतलब है कि प्रमाणीकरण कॉन्फ़िगर किया गया है और आपको कोई भी जानकारी प्राप्त करने के लिए मान्य क्रेडेंशियल्स की आवश्यकता है। फिर, आप इसे ब्रूटफोर्स करने की कोशिश कर सकते हैं (यह HTTP बेसिक ऑथ का उपयोग करता है, इसलिए BF HTTP बेसिक ऑथ का उपयोग करने वाली कोई भी चीज़ इस्तेमाल की जा सकती है)। यहाँ आपके पास डिफ़ॉल्ट उपयोगकर्ता नामों की सूची है: elastic (सुपरयूजर), remote_monitoring_user, beats_system, logstash_system, kibana, kibana_system, apm_system, _anonymous_. पुराने संस्करणों में इस उपयोगकर्ता के लिए डिफ़ॉल्ट पासवर्ड changeme है।
यहाँ कुछ endpoints हैं जिन्हें आप GET के माध्यम से जानकारी प्राप्त करने के लिए एक्सेस कर सकते हैं elasticsearch के बारे में:
ये endpoints दस्तावेज़ से लिए गए हैं जहाँ आप और अधिक पा सकते हैं।
इसके अलावा, यदि आप /_cat
एक्सेस करते हैं तो प्रतिक्रिया में /_cat/*
endpoints शामिल होंगे जो इंस्टेंस द्वारा समर्थित हैं।
/_security/user
में (यदि प्रमाणीकरण सक्षम है) आप देख सकते हैं कि कौन सा उपयोगकर्ता superuser
भूमिका रखता है।
आप सभी इंडेक्स को एक्सेस करके इकट्ठा कर सकते हैं http://10.10.10.115:9200/_cat/indices?v
To obtain जानकारी कि किस प्रकार का डेटा एक इंडेक्स के अंदर सहेजा गया है आप एक्सेस कर सकते हैं: 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
एक पल लें और बैंक इंडेक्स के प्रत्येक दस्तावेज़ (एंट्री) की सामग्री की तुलना करें और इस इंडेक्स के फ़ील्ड जो हमने पिछले अनुभाग में देखे थे।
तो, इस बिंदु पर आप देख सकते हैं कि "hits" के अंदर "total" नाम का एक फ़ील्ड है जो यह संकेत करता है कि इस इंडेक्स के अंदर 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 पैरामीटर नियमित अभिव्यक्तियों का समर्थन करता है
आप एक elasticsearch सेवा को फज़ करने के लिए https://github.com/misalabs/horuz जैसी चीज़ों का भी उपयोग कर सकते हैं।
आप अपने लिखने की अनुमति की जांच कर सकते हैं एक नए इंडेक्स के अंदर एक नया दस्तावेज़ बनाने की कोशिश करके कुछ इस तरह चलाकर:
यह cmd एक नया इंडेक्स बनाएगा जिसका नाम bookindex
होगा, जिसमें books
प्रकार का एक दस्तावेज़ होगा जिसमें "bookId", "author", "publisher" और "name" के गुण होंगे।
ध्यान दें कि नया इंडेक्स अब सूची में दिखाई दे रहा है:
और ध्यान दें कि स्वचालित रूप से बनाए गए गुण:
कुछ उपकरण पहले प्रस्तुत किए गए डेटा में से कुछ डेटा प्राप्त करेंगे:
port:9200 elasticsearch
अपने वेब ऐप्स, नेटवर्क और क्लाउड पर हैकर का दृष्टिकोण प्राप्त करें
वास्तविक व्यावसायिक प्रभाव के साथ महत्वपूर्ण, शोषण योग्य कमजोरियों को खोजें और रिपोर्ट करें। हमारे 20+ कस्टम टूल का उपयोग करके हमले की सतह को मैप करें, सुरक्षा मुद्दों को खोजें जो आपको विशेषाधिकार बढ़ाने की अनुमति देते हैं, और आवश्यक सबूत इकट्ठा करने के लिए स्वचालित शोषण का उपयोग करें, जिससे आपका कठिन काम प्रभावशाली रिपोर्टों में बदल जाए।
_cat | /_cluster | /_security |
---|---|---|
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
/_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