
Docker-आधारित लैब जो Webhood में CVE-2024-31218 को पुनः उत्पन्न करती है, जो एक अनधिकृत PocketBase एडमिन निर्माण दोष है, साथ में PoC, डिटेक्शन और उपचार सत्यापन।
यह प्रोजेक्ट CVE-2024-31218 के लिए एक नियंत्रित सुरक्षा अनुसंधान और भेद्यता पुनरुत्पादन लैब है, जो Webhood के 0.9.1 से पहले के संस्करणों को प्रभावित करने वाली एक गंभीर प्रमाणीकरण भेद्यता है।
यह भेद्यता तब PocketBase व्यवस्थापक खाते के अनधिकृत निर्माण से संबंधित है जब कोई व्यवस्थापक खाता मौजूद न हो। एक हमलावर जो प्रभावित API तक पहुँच सकता है, वह पूर्व प्रमाणीकरण के बिना एक प्रशासनिक खाता बनाने में सक्षम हो सकता है।
इस लैब का उद्देश्य है:
सुरक्षा: यह प्रोजेक्ट केवल एक पृथक स्थानीय प्रयोगशाला वातावरण के लिए है। भेद्य एप्लिकेशन को कभी भी सार्वजनिक इंटरनेट पर उजागर नहीं किया जाना चाहिए या अनधिकृत प्रणालियों के विरुद्ध उपयोग नहीं किया जाना चाहिए।
| फ़ील्ड | विवरण |
|---|---|
| CVE | CVE-2024-31218 |
| प्रोजेक्ट | Webhood |
| प्रभावित संस्करण | Webhood <= 0.9.0 |
| ठीक किया गया संस्करण | Webhood 0.9.1 |
| गंभीरता | गंभीर |
| CVSS v3.1 | 9.8 |
| CWE | CWE-306 — महत्वपूर्ण फ़ंक्शन के लिए अनुपस्थित प्रमाणीकरण |
| हमला वेक्टर | नेटवर्क |
| हमला जटिलता | निम्न |
| आवश्यक विशेषाधिकार | कोई नहीं |
| उपयोगकर्ता इंटरैक्शन | कोई नहीं |
| गोपनीयता | उच्च |
| अखंडता | उच्च |
| उपलब्धता | उच्च |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
2. भेद्यता विवरण
CVE-2024-31218 प्रभावित Webhood/PocketBase एप्लिकेशन में व्यवस्थापक निर्माण के आसपास अपर्याप्त प्रमाणीकरण सुरक्षा के कारण होता है।
जब एप्लिकेशन में कोई व्यवस्थापक खाता कॉन्फ़िगर नहीं होता है, तो व्यवस्थापक निर्माण कार्यक्षमता तक बिना प्रमाणीकरण के पहुँचा जा सकता है।
इसलिए एक हमलावर जो प्रभावित API तक पहुँच सकता है, वह पहला व्यवस्थापक खाता बनाने का प्रयास कर सकता है।
सफल शोषण के परिणामस्वरूप एप्लिकेशन तक प्रशासनिक पहुँच हो सकती है।
भेद्यता को इस प्रकार वर्गीकृत किया गया है:
CWE-306: महत्वपूर्ण फ़ंक्शन के लिए अनुपस्थित प्रमाणीकरण
3. प्रभावित और ठीक किए गए संस्करण
भेद्य सीमा है:
Webhood <= 0.9.0
भेद्यता को इसमें ठीक किया गया था:
Webhood 0.9.1
इसलिए उपचार सत्यापन के लिए पैच किए गए संस्करण का उपयोग किया जाना चाहिए।
4. हमला सतह
प्रासंगिक हमला सतह PocketBase प्रशासनिक API है।
भेद्य कार्यक्षमता में व्यवस्थापक खाता निर्माण शामिल है।
संकल्पनात्मक रूप से, हमला प्रवाह है:
Attacker
|
| HTTP request
v
Webhood / PocketBase API
|
| Administrator creation endpoint
v
Admin account creation
|
v
Unauthorized administrative access
जब भेद्य प्रारंभिक-व्यवस्थापक स्थिति मौजूद होती है, तो हमले के लिए किसी मौजूदा प्रमाणीकृत सत्र की आवश्यकता नहीं होती है।
5. मूल कारण
मूल कारण एक प्रमाणीकरण नियंत्रण विफलता है।
जब कोई व्यवस्थापक खाता मौजूद नहीं था, तब व्यवस्थापक निर्माण कार्यक्षमता ने पहुँच को पर्याप्त रूप से प्रतिबंधित नहीं किया।
सुरक्षा सीमा को यह सुनिश्चित करना चाहिए कि विशेषाधिकार प्राप्त प्रशासनिक कार्यक्षमता का दुरुपयोग एक अनधिकृत दूरस्थ क्लाइंट द्वारा नहीं किया जा सके।
इसलिए भेद्य व्यवहार एक सुरक्षा-संवेदनशील ऑपरेशन के आसपास अनुपस्थित प्रमाणीकरण जाँच को दर्शाता है।
6. नियंत्रित लैब आर्किटेक्चर
प्रयोगशाला CVE-2024-31218 के अंतर्निहित PocketBase प्रशासनिक API व्यवहार का पुनरुत्पादन करती है।
Docker वातावरण सीधे PocketBase घटक का उपयोग करता है, बजाय यह दावा करने के कि यह पूर्ण Webhood 0.9.0 एप्लिकेशन को पैकेज करता है।
प्रयोगशाला आर्किटेक्चर है:
+-------------------------+
| Host Machine |
| |
| PowerShell / Python |
+------------+------------+
|
| 127.0.0.1:8090
v
+-------------------------+
| Docker Container |
| |
| +-------------------+ |
| | PocketBase | |
| | Administrative API| |
| +-------------------+ |
| |
+-------------------------+
सेवा केवल localhost से बंधी है और इसे सार्वजनिक इंटरनेट पर उजागर करने के लिए नहीं है।
पुनरुत्पादन के दौरान उपयोग किए गए सभी क्रेडेंशियल सिंथेटिक प्रयोगशाला क्रेडेंशियल हैं।
7. रिपॉज़िटरी संरचना
CVE-2024-31218-WEBHOOD-LAB/
│
├── README.md
│
├── vulnerable/
│ ├── Dockerfile
│ └── docker-compose.yml
│
├── exploit/
│ └── reproduce.py
│
├── detection/
│ └── detect.py
│
├── patched/
│ └── README.md
│
├── evidence/
│ └── README.md
│
└── blog/
└── CVE-2024-31218-Technical-Blog.pdf
8. भेद्य वातावरण
भेद्य वातावरण को एक पृथक Docker कंटेनर में CVE-2024-31218 से जुड़े PocketBase प्रशासनिक API व्यवहार का पुनरुत्पादन करने के लिए डिज़ाइन किया गया है।
लैब सीधे PocketBase को प्रभावित घटक के रूप में उपयोग करती है, बजाय यह दावा करने के कि यह पूर्ण Webhood 0.9.0 एप्लिकेशन का पुनरुत्पादन करती है।
Docker कॉन्फ़िगरेशन यह करेगा:
- प्रयोगशाला वातावरण का निर्माण करेगा।
- PocketBase को स्थानीय रूप से प्रारंभ करेगा।
- सेवा को localhost से बांधेगा।
- सेवा को बाहरी प्रणालियों से पृथक रखेगा।
- परीक्षण के लिए एक पुनरुत्पादन योग्य वातावरण प्रदान करेगा।
- पुनरुत्पादन स्क्रिप्ट को प्रशासनिक API के साथ इंटरैक्ट करने की अनुमति देगा।
वर्तमान प्रयोगशाला एक सिंथेटिक व्यवस्थापक खाते का उपयोग करती है और इसमें वास्तविक उपयोगकर्ता डेटा या क्रेडेंशियल नहीं हैं।
9. पुनरुत्पादन कार्यप्रणाली
पुनरुत्पादन प्रक्रिया केवल स्थानीय प्रयोगशाला के लिए डिज़ाइन की गई है।
चरण 1 — भेद्य कंटेनर प्रारंभ करें
docker compose up --build
चरण 2 — सेवा सत्यापित करें
पुष्टि करें कि घटक-स्तरीय प्रयोगशाला के लिए उपयोग की जाने वाली PocketBase सेवा स्थानीय रूप से प्रतिक्रिया दे रही है।
चरण 3 — नियंत्रित पुनरुत्पादन स्क्रिप्ट निष्पादित करें
पुनरुत्पादन स्क्रिप्ट स्थानीय भेद्य इंस्टेंस को प्रासंगिक अनुरोध भेजेगी।
उदाहरण:
python exploit/reproduce.py
चरण 4 — प्रतिक्रिया का निरीक्षण करें
प्रतिक्रिया को प्रदर्शित करना चाहिए कि क्या एप्लिकेशन अनधिकृत व्यवस्थापक निर्माण अनुरोध स्वीकार करता है।
चरण 5 — परिणामी स्थिति सत्यापित करें
लैब को सत्यापित करना चाहिए कि क्या एक व्यवस्थापक खाता बनाया गया था।
किसी बाहरी लक्ष्य का कभी भी उपयोग नहीं किया जाना चाहिए।
10. पहचान
पहचान को अनधिकृत व्यवस्थापक निर्माण प्रयासों से जुड़े संकेतकों की पहचान करनी चाहिए।
संभावित संकेतकों में शामिल हैं:
व्यवस्थापक निर्माण कार्यक्षमता के लिए अनुरोध
प्रशासनिक एंडपॉइंट्स के लिए अनधिकृत अनुरोध
पहले व्यवस्थापक खाते का अप्रत्याशित निर्माण
अप्रत्याशित क्लाइंट से उत्पन्न HTTP अनुरोध
बार-बार व्यवस्थापक निर्माण प्रयास
एप्लिकेशन आरंभीकरण के तुरंत बाद प्रशासनिक खाता निर्माण
पहचान स्क्रिप्ट यहाँ स्थित है:
detection/detect.py
11. उपचार
प्राथमिक उपचार Webhood को ठीक किए गए संस्करण में अपग्रेड करना है:
Webhood 0.9.1
भेद्य रिलीज़ का उत्पादन में उपयोग नहीं किया जाना चाहिए।
एक प्रलेखित वर्कअराउंड यह है कि जहाँ अपग्रेड तुरंत नहीं किया जा सकता, वहाँ प्रभावित व्यवस्थापक API कार्यक्षमता तक पहुँच को प्रतिबंधित किया जाए।
उपचार के बाद:
भेद्य कंटेनर बंद करें।
भेद्य संस्करण को ठीक किए गए संस्करण से बदलें।
कंटेनर का पुनर्निर्माण करें।
पैच किए गए वातावरण को प्रारंभ करें।
पुनरुत्पादन प्रयास दोहराएँ।
पुष्टि करें कि भेद्य व्यवहार अब संभव नहीं है।
अप्रत्याशित प्रशासनिक अनुरोधों के लिए एप्लिकेशन लॉग की समीक्षा करें।
12. उपचार और सत्यापन
CVE-2024-31218 के लिए आधिकारिक Webhood फिक्स को वास्तविक Webhood `v0.9.1` स्रोत रिलीज़ का उपयोग करके सत्यापित किया गया था।
फिक्सिंग कमिट है:
`735e7fa2814edeec9a2c07778ed51b3c018609f9`
फिक्स माइग्रेशन जोड़ता है:
`src/backend/migrations/1712252550_generate_random_admin.js`
माइग्रेशन जाँचता है कि क्या कोई व्यवस्थापक पहले से मौजूद है। यदि कोई व्यवस्थापक मौजूद नहीं है, तो यह एक यादृच्छिक रूप से उत्पन्न पासवर्ड के साथ एक व्यवस्थापक खाता बनाता है। यह एक अनधिकृत अनुरोधकर्ता को उजागर `/api/admins` एंडपॉइंट के माध्यम से पहले व्यवस्थापक का दावा करने से रोकता है।
#### सत्यापन प्रक्रिया