
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` एंडपॉइंट के माध्यम से पहले व्यवस्थापक का दावा करने से रोकता है।
#### सत्यापन प्रक्रिया
1. आधिकारिक Webhood `v0.9.1` स्रोत टैग को चेकआउट किया गया।
2. बैकएंड को आधिकारिक स्रोत से उसके Dockerfile का उपयोग करके स्थानीय रूप से बनाया गया।
3. परिणामी इमेज को localhost पर पोर्ट `8091` पर चलाया गया।
4. भेद्य प्रयोगशाला के विरुद्ध उपयोग किए गए समान अनधिकृत व्यवस्थापक-निर्माण अनुरोध को ठीक किए गए बैकएंड के विरुद्ध दोहराया गया।
5. भेद्य वातावरण ने पहले अनुरोध को HTTP `200` के साथ स्वीकार किया था।
6. ठीक किए गए `v0.9.1` बैकएंड ने समान अनुरोध को HTTP `401` के साथ अस्वीकार कर दिया।
देखी गई ठीक किए गए वातावरण की प्रतिक्रिया:
```text
HTTP status: 401
{"code":401,"message":"The request requires valid admin authorization token to be set.","data":{}}
यह पुष्टि करता है कि स्थानीय रूप से बनाए गए Webhood v0.9.1 बैकएंड में पहले प्रदर्शित अनधिकृत व्यवस्थापक-निर्माण हमला पथ को अवरुद्ध कर दिया गया था।
उपचार सत्यापित: हाँ
प्रमाण:
evidence/05-remediation-verified.png
13. सुरक्षा प्रभाव
सफल शोषण एक अनधिकृत पक्ष को प्रशासनिक विशेषाधिकार प्रदान कर सकता है।
संभावित परिणामों में शामिल हैं:
अनधिकृत प्रशासनिक पहुँच
एप्लिकेशन डेटा का संशोधन
एप्लिकेशन जानकारी का प्रकटीकरण
रिकॉर्ड का संशोधन या विलोपन
एप्लिकेशन का आगे प्रशासनिक दुरुपयोग
इसलिए प्रकाशित CVSS मूल्यांकन के अनुसार गंभीरता को गंभीर के रूप में वर्गीकृत किया गया है।
14. प्रमाण
evidence/ निर्देशिका में स्क्रीनशॉट शामिल होने चाहिए जो प्रदर्शित करते हैं:
भेद्य एप्लिकेशन स्टार्टअप
Docker कंटेनर स्थिति
भेद्य संस्करण
पुनरुत्पादन अनुरोध
सफल भेद्य व्यवहार
पहचान आउटपुट
पैच किया गया संस्करण
उपचार के बाद विफल/अवरुद्ध पुनरुत्पादन
स्क्रीनशॉट में वास्तविक क्रेडेंशियल, व्यक्तिगत जानकारी, API कुंजियाँ, या अन्य संवेदनशील डेटा नहीं होना चाहिए।
15. सीमाएँ
इस प्रयोगशाला की तैयारी के दौरान, स्थानीय Windows वातावरण को Docker Linux बैकएंड प्रारंभ करने में समस्याएँ आईं।
Windows ने लौटाया:
Error: 14098
The component store has been corrupted.
आवश्यक Windows सुविधाएँ भी शुरू में अक्षम थीं:
VirtualMachinePlatform
Microsoft-Windows-Subsystem-Linux
इसलिए, किसी भी पुनरुत्पादन परिणाम या स्क्रीनशॉट को सटीक रूप से अंतर करना चाहिए:
भेद्यता अनुसंधान
लैब कॉन्फ़िगरेशन
इच्छित पुनरुत्पादन प्रक्रिया
सफलतापूर्वक निष्पादित पुनरुत्पादन
किसी सफल शोषण निष्पादन का दावा तब तक नहीं किया जाना चाहिए जब तक कि यह वास्तव में पृथक प्रयोगशाला में न किया गया हो।
16. सुरक्षा विचार
यह प्रोजेक्ट केवल अधिकृत सुरक्षा अनुसंधान के लिए है।
प्रयोगशाला को चाहिए:
स्थानीय रूप से चलें।
सार्वजनिक जोखिम से बचें।
वास्तविक क्रेडेंशियल से बचें।
वास्तविक उपयोगकर्ता डेटा से बचें।
तृतीय-पक्ष प्रणालियों के विरुद्ध परीक्षण से बचें।
डिस्पोज़ेबल परीक्षण खातों का उपयोग करें।
एक पृथक Docker नेटवर्क का उपयोग करें।
परीक्षण के बाद भेद्य वातावरण को नष्ट करें।
उदाहरण क्लीनअप:
docker compose down
17. संदर्भ
National Vulnerability Database — CVE-2024-31218
Webhood सुरक्षा सलाह
Webhood/PocketBase स्रोत रिपॉज़िटरी
CVE-2024-31218 से जुड़ा फिक्सिंग कमिट
CWE-306 — महत्वपूर्ण फ़ंक्शन के लिए अनुपस्थित प्रमाणीकरण
FIRST CVSS v3.1 विनिर्देश
18. अस्वीकरण
यह रिपॉज़िटरी एक साइबरसुरक्षा शिक्षा और भेद्यता अनुसंधान प्रोजेक्ट है।
भेद्य कॉन्फ़िगरेशन को नियंत्रित परीक्षण के लिए जानबूझकर पुनरुत्पादित किया गया है। इसे सार्वजनिक रूप से सुलभ सेवा के रूप में तैनात नहीं किया जाना चाहिए।
लेखक इस रिपॉज़िटरी में निहित तकनीकों या आर्टिफैक्ट के अनधिकृत उपयोग के लिए कोई ज़िम्मेदारी नहीं लेता है।