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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
DirtyPipe-Exploit — CVE-2022-0847 (Dirty Pipe) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो पाइप बफर हेरफेर के माध्यम से केवल-पठनीय फ़ाइलों को अधिलेखित करके Linux कर्नेल 5.8 से 5.16.10 पर स्थानीय विशेषाधिकार वृद्धि को सक्षम बनाता है। | Kitploit
उपकरण/GitHubGitHub/karanlvm/dirtypipe-exploit
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणपेपर और शोधलर्निंग और शिक्षाबाइनरी शोषण
GitHubkaranlvm/dirtypipe-exploit

DirtyPipe-Exploit

CVE-2022-0847 (Dirty Pipe) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो पाइप बफर हेरफेर के माध्यम से केवल-पठनीय फ़ाइलों को अधिलेखित करके Linux कर्नेल 5.8 से 5.16.10 पर स्थानीय विशेषाधिकार वृद्धि को सक्षम बनाता है।

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

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

सभी देखें →

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

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

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

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

CSE 5380: सूचना सुरक्षा पेपर CVE-2022-0847 (Dirty Pipe)

द्वारा

Karan Vasudevamurthy (UTA ID: 1002164438)

CVE क्या है?

सामान्य कमजोरियाँ और एक्सपोज़र (CVE) सार्वजनिक रूप से खुलासा की गई सूचना सुरक्षा कमजोरियों और एक्सपोज़र की एक सूची है। MITRE निगम ने 1999 में सॉफ्टवेयर और फर्मवेयर में कमजोरियों की पहचान और वर्गीकरण करने के लिए CVE शुरू किया। MITRE एक गैर-लाभकारी संगठन है जो संयुक्त राज्य अमेरिका में संघीय रूप से वित्तपोषित अनुसंधान और विकास केंद्र संचालित करता है। CVE का उद्देश्य ज्ञात कमजोरियों के बारे में जानकारी साझा करने की सुविधा प्रदान करना है ताकि साइबर सुरक्षा योजनाओं को नवीनतम सुरक्षा मुद्दों और कमजोरियों को प्रतिबिंबित करने के लिए अपडेट किया जा सके। ऐसा करने के लिए, CVE प्रत्येक कमजोरी या एक्सपोज़र को एक अद्वितीय पहचानकर्ता प्रदान करता है। CVE पहचानकर्ता, जिन्हें CVE नाम या CVE संख्या भी कहा जाता है, के माध्यम से। कॉमन वल्नरेबिलिटी स्कोरिंग सिस्टम (CVSS) खुले मानकों का एक सेट है जो किसी कमजोरी को उसकी गंभीरता का आकलन करने के लिए एक संख्या प्रदान करता है। CVSS स्कोर की सीमा 0.0 से 10.0 तक है। सुरक्षा गंभीरता की मात्रा संख्या बढ़ने पर बढ़ती है। प्रत्येक CVE ID को CVE-YYYY-NNNNN के रूप में स्वरूपित किया जाता है। YYYY भाग वह वर्ष है जिसमें CVE ID नियत किया गया था या वह वर्ष जिसमें कमजोरी को सार्वजनिक किया गया था।

पाइप क्या हैं?

CVE-2022-0847 के संदर्भ में, पाइप बफर से जुड़ी विशेषताओं, विशेष रूप से पाइप बफर से जुड़े गुणों को समझना महत्वपूर्ण है। Linux में पाइप प्रक्रियाओं के बीच डेटा स्थानांतरित करने में मदद करते हैं, जिसमें एक प्रक्रिया का आउटपुट दूसरी प्रक्रिया के लिए इनपुट बन जाता है। यह तंत्र सिस्टम पर चलने वाली विभिन्न प्रक्रियाओं के बीच संचार और समन्वय की सुविधा प्रदान करता है। Linux में पाइप एकदिशिक होते हैं, जिसका अर्थ है कि डेटा केवल एक ही दिशा में बहता है। एक पाइप बफर में आमतौर पर एक निश्चित आकार, प्रथम-इन-फर्स्ट-आउट (FIFO) डेटा संरचना होती है जो प्रक्रियाओं के बीच स्थानांतरित किए जा रहे डेटा को अस्थायी रूप से रखती है। जब कोई प्रक्रिया पाइप में डेटा लिखती है, तो वह बफर में संग्रहीत होता है जब तक कि कोई अन्य प्रक्रिया इसे न पढ़ ले। एक बार डेटा पढ़ लिए जाने के बाद, इसे बफर से हटा दिया जाता है, जिससे नया डेटा लिखा जा सकता है।

कमजोरी

CVE-2022-0847 के लिए, पाइप बफर के भीतर दो कार्यों को समझना महत्वपूर्ण है-

  1. copy_page_to_iter_pipe: यह फ़ंक्शन एक पृष्ठ से पाइप बफर से जुड़े एक इटरेटर में डेटा कॉपी करने के लिए उत्तरदायी है। पाइप के माध्यम से अंतर-प्रक्रिया संचार के संदर्भ में, जब एक प्रक्रिया पाइप में डेटा लिखती है, तो इसे पाइप बफर में कॉपी करने की आवश्यकता होती है ताकि इसे किसी अन्य प्रक्रिया द्वारा पढ़ा जा सके। "copy_page_to_iter_pipe" फ़ंक्शन इस कॉपी करने की प्रक्रिया को सुविधाजनक बनाता है, यह सुनिश्चित करता है कि डेटा प्रक्रियाओं के बीच सही और कुशलता से स्थानांतरित हो। इस फ़ंक्शन के भीतर, "flags" पैरामीटर का उपयोग कॉपी करने की प्रक्रिया से संबंधित कुछ विशेषताओं या व्यवहारों को निर्दिष्ट या नियंत्रित करने के लिए किया जाता है। इन फ्लैग में अतिरिक्त जाँच या सत्यापन करने, विशिष्ट प्रकार के डेटा को संभालने, या दक्षता के लिए अनुकूलन लागू करने के विकल्प शामिल हो सकते हैं।
  2. push_pipe: "push_pipe" फ़ंक्शन पाइप बफर में डेटा को धकेलने में शामिल है। जब एक प्रक्रिया पाइप में डेटा लिखती है, तो डेटा को पाइप बफर में डाला जाना चाहिए, जहाँ से इसे किसी अन्य प्रक्रिया द्वारा पढ़ा जा सकता है। "push_pipe" फ़ंक्शन इस सम्मिलन प्रक्रिया को संभालने के लिए उत्तरदायी है, यह सुनिश्चित करता है कि डेटा सही ढंग से बफर में रखा जाए और अन्य प्रक्रियाओं द्वारा पढ़ने के लिए उपलब्ध हो।

पृष्ठ | 1

Max Kellermann ने पाया कि Linux कर्नेल ने Unix पाइपों को गलत तरीके से संभाला। कमजोरी "copy_page_to_iter_pipe" और "push_pipe" कार्यों के भीतर कुछ विशेषताओं, विशेष रूप से "flags" पैरामीटर के अपर्याप्त आरंभीकरण के कारण उत्पन्न होती है। यह चूक फ्लैग को पुराने या गलत मान निर्दिष्ट होने की संभावना की ओर ले जाती है, जो संभावित रूप से सिस्टम की सुरक्षा और अखंडता से समझौता करती है। एक अविशेषाधिकार प्राप्त स्थानीय उपयोगकर्ता इस दोष का उपयोग केवल-पढ़ने योग्य फ़ाइलों द्वारा समर्थित पेज कैश में पृष्ठों पर लिखने और इस प्रकार सिस्टम पर अपने विशेषाधिकारों को बढ़ाने के लिए कर सकता है।

हमले की पद्धति

यह CVE-2016-5195 "Dirty Cow" के समान है, लेकिन इसका शोषण करना आसान है। CVE-2022-0847 के शोषण के लिए लक्ष्य प्रणाली तक स्थानीय पहुँच की आवश्यकता होती है और यह 5.8 से नए Linux कर्नेल संस्करणों को प्रभावित करता है। हम PIPE_BUF_FLAG_CAN_MERGE फ्लैग के साथ नए पाइप बफर बना सकते हैं जो उचित आरंभीकरण की कमी के कारण गलत तरीके से सेट होता है। यह फ्लैग पाइप बफर में लेखन के समामेलन को नियंत्रित करता है और इस प्रकार पाइप में जुड़े मौजूदा पृष्ठ पर लिखने की अनुमति देता है। यदि कोई फ़ाइल इस जुड़े हुए पृष्ठ की अनुमति देती है, तो संशोधन मेमोरी में फ़ाइल के साझा सिस्टम-व्यापी दृश्य में दिखाई देगा। कोई भी आगे का कैश फ्लश वर्तमान Linux अनुमति सेटिंग्स की उपेक्षा करेगा और परिवर्तित डेटा को डिस्क पर कॉपी करेगा। यह एक अविशेषाधिकार प्राप्त उपयोगकर्ता को फ़ाइल की विशिष्ट सामग्री (डिस्क या मेमोरी में) बदलने में सक्षम बनाएगा, भले ही फ़ाइल केवल-पढ़ने योग्य एक्सेस नियंत्रणों जैसे SELinux, मानक Linux अनुमतियाँ, उन्नत एक्सेस नियंत्रण, और अपरिवर्तनीय फ़ाइलों द्वारा संशोधन से सुरक्षित हो। इसलिए हम मान सकते हैं कि हमलावर Linux सिस्टम का बुनियादी ज्ञान और दुर्भावनापूर्ण कोड निष्पादित करने की क्षमता वाला कोई भी अविशेषाधिकार प्राप्त स्थानीय उपयोगकर्ता होगा। ऐसा व्यक्ति अपने विशेषाधिकारों को बढ़ा सकता है और संभावित रूप से पूरे सिस्टम से समझौता कर सकता है, जो एक महत्वपूर्ण सुरक्षा जोखिम पैदा करता है।

प्रूफ ऑफ कॉन्सेप्ट

नीचे वे चरण दिए गए हैं जिनका मैंने Linux चलाने वाली वर्चुअल मशीन पर CVE-2022-0847 का शोषण करने के लिए पालन किया।

  1. यह जाँचना कि क्या आपका Linux वितरण शोषित किया जा सकता है-

    5.8 से नया कोई भी Linux कर्नेल प्रभावित है। हालाँकि, संस्करण 5.16.11, 5.15.25 और 5.10.102 को CVE-2022-0847 के लिए शोषित नहीं किया जा सकता। अपने कर्नेल संस्करण का पता लगाने के लिए, हम बस *uname -r* चला सकते हैं। यदि आप सुनिश्चित नहीं हैं कि लक्ष्य प्रणाली कमजोर है या नहीं, तो आप यह bash script भी चला सकते हैं।

  2. सही Linux कर्नेल डाउनलोड करना-

    प्रदर्शन के लिए मैंने Ubuntu 20.04.1 LTS का उपयोग करने का निर्णय लिया। लेकिन, Ubuntu का यह संस्करण वर्तमान में Linux कर्नेल 5.15 पर चलता है और CVE-2022-0847 को कर्नेल के इस संस्करण पर शोषित नहीं किया जा सकता। Linux कर्नेल 5.8 डाउनलोड करने के लिए, हम बस *sudo apt install linux-image-5.8.0-63-generic linux-headers-5.8.0-63-generic चला सकते हैं

  3. शोषण डाउनलोड करें-

    शोषण GitHub पर पाया जा सकता है। यह प्रदर्शित करता है कि पेज कैश में किसी भी फ़ाइल सामग्री को कैसे अधिलेखित किया जाए, भले ही फ़ाइल को लिखने की अनुमति न हो, वह अपरिवर्तनीय हो या केवल-पढ़ने योग्य माउंट पर हो। आप टर्मिनल में *git clone[ https://github.com/karanlvm/Infosec.git* ](https://github.com/karanlvm/Infosec.git%60) भी चला सकते हैं।

  4. मूल passwd फ़ाइल कॉपी करें-

    हम *cp /etc/passwd /tmp/passwd.bak* चला सकते हैं। इससे शोषण चलाने से पहले और बाद में passwd फ़ाइल में अंतर की पहचान करने में मदद मिलेगी।

  5. शोषण संकलित करना-

    शोषण को सफलतापूर्वक संकलित करने के लिए, आपके पास GCC स्थापित होना चाहिए। आप *sudo apt-get install gcc* के साथ GCC स्थापित कर सकते हैं। शोषण को संकलित करने के लिए आप *gcc exp.c -o exp* चला सकते हैं

  6. शोषण चलाना-

    शोषण चलाने के लिए, प्रदान किए जाने वाले पैरामीटर केवल-पढ़ने योग्य फ़ाइल, ऑफ़सेट और कुछ अक्षर हैं जो डाले जाने वाले हैं। इस मामले में, हम *./exp /etc/passwd 1 ootz:* चलाएँगे। यदि आपको एक आउटपुट मिलता है जो कहता है "It worked !", तो इसका मतलब है कि हमने Dirty Pipe कमजोरी का सफलतापूर्वक शोषण कर लिया है और अब हम पासवर्ड के बिना रूट एक्सेस प्राप्त कर सकते हैं।

  7. रूट एक्सेस पर स्विच करें-

    अब हम बस *su rootz* चला सकते हैं और हमारे पास रूट एक्सेस होना चाहिए। पुष्टि करने के लिए हम id कमांड चला सकते हैं।

सीमाएँ

इस शोषण की दो प्रमुख सीमाएँ हैं:

  1. ऑफ़सेट किसी पृष्ठ सीमा पर नहीं हो सकता (इसे ऑफ़सेट से पहले कम से कम एक बाइट लिखने की आवश्यकता होती है)
  2. लेखन एक पृष्ठ सीमा को पार नहीं कर सकता। इसका मतलब है कि पेलोड 4096 बाइट्स (पृष्ठ आकार) से कम होना चाहिए।

वर्तमान स्थिति और उपचार

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