Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2022-0185-Case-Study — शैक्षिक केस स्टडी और CVE-2022-0185 के लिए एक्सप्लॉइट डेवलपमेंट वॉकथ्रू, एक Linux कर्नेल हीप-आधारित बफर ओवरफ्लो जो स्थानीय विशेषाधिकार वृद्धि को सक्षम करता है। इसमें POC, QEMU डीबगिंग, और Ubuntu एक्सप्लॉइट विस्तृत तकनीकी विश्लेषण के साथ शामिल है। | Kitploit
उपकरण/GitHubGitHub/dcheng69/cve-2022-0185-case-study
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणCTFलर्निंग और शिक्षाबाइनरी शोषणलैब और अभ्यास
GitHubdcheng69/cve-2022-0185-case-study

CVE-2022-0185-Case-Study

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

शैक्षिक केस स्टडी और CVE-2022-0185 के लिए एक्सप्लॉइट डेवलपमेंट वॉकथ्रू, एक Linux कर्नेल हीप-आधारित बफर ओवरफ्लो जो स्थानीय विशेषाधिकार वृद्धि को सक्षम करता है। इसमें POC, QEMU डीबगिंग, और Ubuntu एक्सप्लॉइट विस्तृत तकनीकी विश्लेषण के साथ शामिल है।

रिपॉजिटरी देखें
31112 साल पहलेअभी तक समीक्षित नहीं

CVE-2022-0185-केस-स्टडी

यह केस स्टडी ECE 9069: Introduction to Hacking : https://whisperlab.org/introduction-to-hacking/ असाइनमेंट का परिणाम है।

CVE-2022-0185 अवलोकन

CVE-2022-0185 एक हीप-आधारित बफर ओवरफ्लो दोष है जो Linux कर्नेल के Filesystem Context कार्यक्षमता में legacy_parse_param फ़ंक्शन द्वारा आपूर्ति किए गए पैरामीटर की लंबाई को सत्यापित करने के तरीके में पाया गया था। एक अनप्रिविलेज्ड (यदि अनप्रिविलेज्ड यूज़र नेमस्पेस सक्षम हैं, अन्यथा नेमस्पेस्ड CAP_SYS_ADMIN विशेषाधिकार की आवश्यकता है) स्थानीय उपयोगकर्ता जो Filesystem Context API का समर्थन नहीं करने वाली फ़ाइल सिस्टम को खोलने में सक्षम है (और इस प्रकार लीगेसी हैंडलिंग पर वापस आ जाता है), इस दोष का उपयोग करके सिस्टम पर अपने विशेषाधिकारों को बढ़ा सकता है। [1]

इस भेद्यता की रिपोर्ट के बाद, इस बग को ठीक करने के लिए पैच जारी किया गया है:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=722d94847de2

https://ubuntu.com/security/CVE-2022-0185#impact-score

एक्सप्लोरर से एक विस्तृत लेख है: https://www.hackthebox.com/blog/CVE-2022-0185:_A_case_study

इस रिपोर्टरी में मैं इस भेद्यता को पुन: उत्पन्न करने के लिए बुनियादी कदमों और संबंधित पृष्ठभूमि जानकारी की व्याख्या करूंगा। साथ ही, अगर आपको कुछ भी अस्पष्ट लगता है, तो आप मुझे एक ईमेल भेज सकते हैं:[email protected] मुझे प्रश्न का उत्तर देने में काफी खुशी होगी।

1. परिचय

CVE-2022-0185 भेद्यता 02/11/2022 को प्रकाशित की गई थी, जिसमें CVSS 3.x बेस स्कोर 8.4 (उच्च) था।[1] यह भेद्यता एक हीप-आधारित बफर ओवरफ्लो है, जो एक अहस्ताक्षरित पूर्णांक अंडरफ्लो के कारण होता है।

यह भेद्यता Linux v5.1 कर्नेल में शुरू की गई थी, जो 5.1 से अधिक कर्नेल संस्करणों वाले सभी Linux वितरणों को प्रभावित करती है। उदाहरण के लिए, Ubuntu 20.04 LTS (focal) इस बग के लिए असुरक्षित था। हालांकि, एक पैच जारी किया गया था और संस्करण 5.4.0-96.109 .[3]

इस भेद्यता का शोषण करने से एक अनप्रिविलेज्ड स्थानीय उपयोगकर्ता सिस्टम पर अपने विशेषाधिकारों को बढ़ा सकता है, संभावित रूप से पूरे सिस्टम से समझौता कर सकता है।[1] [2] यहाँ CVSS स्कोर का एक विस्तृत विश्लेषण है: बेस स्कोर: 8.4, एक महत्वपूर्ण सुरक्षा जोखिम का संकेत देता है जिस पर तत्काल ध्यान देने की आवश्यकता है। प्रभाव स्कोर: 5.9, यदि शोषण किया जाता है तो पर्याप्त संभावित क्षति का सुझाव देता है। उच्च गोपनीयता, अखंडता और उपलब्धता मान इस स्कोर में योगदान करते हैं। शोषणीयता स्कोर: 2.5, अपेक्षाकृत उच्च शोषणीयता का सुझाव देता है। स्थानीय आक्रमण वेक्टर, उच्च अखंडता , और उच्च उपलब्धता मान इस स्कोर में योगदान करते हैं।

तालिका 1.1 और तालिका 1.2 इन स्कोर और उनके घटकों के बारे में अधिक जानकारी प्रदान करती हैं।

CVSS v3.1 गंभीरतामान
बेस स्कोर8.4 HIGH
प्रभाव स्कोर5.9
शोषणीयता स्कोर2.5

तालिका 1.1 CVSS गंभीरता स्कोर[1]

CVSS v3.1 मीट्रिकमान
आक्रमण वेक्टर (AV)Local
आवश्यक विशेषाधिकार (PR)None
उपयोगकर्ता सहभागिता (UI)None
गोपनीयता (C)High
अखंडता (I)High
उपलब्धता (A)High

तालिका 1.2 CVSS वेक्टर[1]

2. पृष्ठभूमि और संबंधित अवधारणाएँ

2.1 अहस्ताक्षरित संख्या अंडरफ्लो

2.1.1 दो का पूरक

आधुनिक कंप्यूटरों में दो पूर्णांक प्रकार होते हैं, साइन्ड और अहस्ताक्षरित। साइन्ड संख्या का प्रतिनिधित्व आम तौर पर दो के पूरक नामक एक ऑपरेशन शामिल करता है।[4] “दो का पूरक बाइनरी अंक का उपयोग सबसे बड़े स्थान मान के साथ संकेत के रूप में करता है ताकि यह इंगित किया जा सके कि बाइनरी संख्या धनात्मक है या ऋणात्मक”[4]

दो के पूरक को प्रस्तुत करने से घटाव की गणना जोड़ में परिवर्तित हो जाएगी, इसलिए CPU के डिज़ाइन और कार्यान्वयन को सरल बनाया जाएगा। किसी पूर्णांक के दो के पूरक का निर्माण तीन चरणों में शामिल है:[4]

  • चरण 1: “संख्या के बाइनरी प्रतिनिधित्व से शुरू करते हुए, अग्रणी बिट एक साइन्ड बिट होता है”;
  • चरण 2: “सभी बिट्स को उल्टा करना”;
  • चरण 3: “पूरे उल्टे संख्या में 1 जोड़ना, किसी भी ओवरफ्लो को अनदेखा करें”

चित्र 2.1.1.1 एक आरेख में रूपांतरण प्रक्रिया दिखाता है जिसमें “-6” को उसके दो के पूरक प्रारूप में परिवर्तित करने का एक वास्तविक उदाहरण है।

twos_complement.drawio

चित्र 2.1.1.2 दो के पूरक का उपयोग करके जोड़

चित्र 2.1.1.2 '-6' के दो के पूरक को '+6' में जोड़ने की प्रक्रिया दिखाता है। यह प्रदर्शित करता है कि दो के पूरक का उपयोग कैसे जोड़ को घटाव के विकल्प के रूप में उपयोग करने की अनुमति देता है।

twos_complement-Page-2.drawio

चित्र 2.1.1.2 दो के पूरक का उपयोग करके जोड़

2.1.2 RAM में संख्या प्रतिनिधित्व

अनुभाग 2.1.1 से, हम पहले से ही समझ गए हैं कि दो का पूरक क्या है। अब, कंप्यूटर में अहस्ताक्षरित संख्या अंडरफ्लो के परिदृश्य पर एक नज़र डालते हैं। आधुनिक कंप्यूटरों में, जब अहस्ताक्षरित संख्याओं का उपयोग किया जाता है, तो सबसे महत्वपूर्ण बिट को साइन्ड बिट के रूप में नहीं माना जाता है; बल्कि, यह स्वयं अहस्ताक्षरित संख्या का हिस्सा है। इस स्थिति का अर्थ है कि जब एक अहस्ताक्षरित संख्या के साथ घटाव करते हैं, तो हमें सतर्क रहना चाहिए, क्योंकि यह अहस्ताक्षरित संख्या अंडरफ्लो के रूप में जानी जाने वाली स्थिति को जन्म दे सकता है।[5]

चित्र 2.1.2.1 एक 8-बिट अहस्ताक्षरित संख्या के लिए 5 में से 6 घटाने की स्थिति को दर्शाता है। अहस्ताक्षरित संख्या के लपेटने के कारण अंतिम परिणाम 255 होता है। जब यह अंडरफ्लो एक सशर्त बयान में होता है, तो इसमें बयान की कार्यक्षमता को बाधित करने की क्षमता होती है।

twos_complement-Page-3.drawio

चित्र 2.1.2.1 अहस्ताक्षरित संख्या अंडरफ्लो

2.2 Linux कर्नेल मेमोरी

2.2.1 हीप मेमोरी में स्लैब

Linux कर्नेल में, स्लैब आवंटक एक मेमोरी प्रबंधन तंत्र है जिसका उपयोग छोटे मेमोरी खंडों के कुशल आवंटन और डीलोकेशन के लिए किया जाता है। यह स्लैब के कई कैश बनाए रखकर प्रदर्शन प्रदान करता है, प्रत्येक में निश्चित आकार के मेमोरी ब्लॉक होते हैं। आम तौर पर, kmalloc-32 32 बाइट्स मेमोरी आवंटित करता है, यह एक kmalloc-32 स्लैब है, जबकि kmalloc-4k 4096 बाइट्स मेमोरी आवंटित करता है, यह एक kmalloc-4k स्लैब है।[6]

इसके अलावा, Linux कर्नेल में स्लैब आवंटन में आम तौर पर कर्नेल के हीप मेमोरी क्षेत्र के भीतर एक सन्निहित पता स्थान से मेमोरी आवंटित करना शामिल होता है। यह सन्निहित पता कर्नेल द्वारा प्रबंधित किया जाता है और इसका उपयोग विभिन्न कर्नेल ऑब्जेक्ट और डेटा संरचनाओं के लिए मेमोरी आवंटित करने के लिए किया जाता है। चित्र 2.2.1.1 Linux कर्नेल मेमोरी में स्लैब के लेआउट को दर्शाता है।

img

चित्र 2.2.1.1 Linux में स्लैब आवंटक [7] (इस आकृति के लेखक https://leviathan.vip/ हैं)

3 भेद्यता का तकनीकी विश्लेषण

3.1 प्रमाण की अवधारणा

यदि आप स्वयं संकलित Linux कर्नेल के साथ प्रक्रिया को पुन: उत्पन्न करना चाहते हैं तो कृपया पृष्ठभूमि जानकारी प्राप्त करने के लिए निम्नलिखित मार्कडाउन फ़ाइलें पढ़ें:

  1. पहले Linux कर्नेल को संकलित करने के तरीके पर मार्कडाउन पढ़ें: https://github.com/dcheng69/CVE-2022-0185-Case-Study/blob/main/compile_linux/compile.md
  2. फिर POC करने के लिए रैम फ़ाइल सिस्टम तैयार करने के तरीके पर मार्कडाउन पढ़ें: https://github.com/dcheng69/CVE-2022-0185-Case-Study/blob/main/ramfs/ramfs.md
  3. अंत में poc मार्कडाउन का पालन करें: https://github.com/dcheng69/CVE-2022-0185-Case-Study/blob/main/Poc/poc.md

नोट:

सभी मार्कडाउन फ़ाइलों के साथ-साथ कोड और स्क्रिप्ट इस रिपॉजिटरी के विभिन्न फ़ोल्डरों में हैं, प्रत्येक फ़ोल्डर अपनी स्वयं की मार्कडाउन फ़ाइल के साथ आता है, कुछ करने का प्रयास करने से पहले इसे पढ़ें!

3.1.1 कर्नेल में अहस्ताक्षरित अंडरफ्लो

अनुभाग 2.1 में, हमने समझाया कि अहस्ताक्षरित अंडरफ्लो कैसे काम करता है। अब, हम कर्नेल फ़ंक्शन की जांच करेंगे जिसमें यह भेद्यता है।

टूल डाउनलोड करें