Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
RingBufferDetonator — CVE-2021-3679 के लिए शोषण और इसके सुधार के लिए दस्तावेज़ | Kitploit
उपकरण/GitHubGitHub/aegistudio/ringbufferdetonator
भेद्यता विश्लेषणशोषणपेपर और शोधलर्निंग और शिक्षा
GitHubaegistudio/ringbufferdetonator

RingBufferDetonator

CVE-2021-3679 के लिए शोषण और इसके सुधार के लिए दस्तावेज़

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

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

सभी देखें →

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

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

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

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

Ring Buffer Detonator

यह rb_per_cpu_empty में एक लॉजिक बग को सिद्ध करने के लिए एक प्रूफ-ऑफ-कॉन्सेप्ट प्रोग्राम है। बग से प्रभावित प्रोग्राम tracing_read_pipe में कर्नेल-स्पेस की व्यस्त डेडलूप में फंस जाएँगे और किसी भी UNIX सिग्नल (SIGKILL सहित) का उपयोग करके उन्हें रोकना या समाप्त करना असंभव होगा।

हालाँकि यह seq_buf_used गणना के बग के समान (डेडलूपिंग और CPU बर्निंग) व्यवहार प्रदर्शित करता है, जिसे linux 4.5 में ठीक किया गया था, यह प्रोग्राम एक अन्य बग के अस्तित्व को सिद्ध करने के लिए है जिसका कारण पूर्ण रूप से भिन्न है और जो 3.10 से 5.14-rc1 तक के कर्नेल संस्करणों में मौजूद माना जाता है (POC निष्पादन परिणाम भी देखें)।

अस्वीकरण: यह प्रूफ-ऑफ-कॉन्सेप्ट प्रोग्राम आपके linux को फंसा सकता है, बहुत अधिक बिजली की खपत कर सकता है, और हिट होने पर इसे UNIX सिग्नल द्वारा समाप्त नहीं किया जा सकता, अपने जोखिम पर उपयोग करें।

पूर्वापेक्षा और चलाना

प्रूफ-ऑफ-कॉन्सेप्ट स्क्रिप्ट को निष्पादित करने से पहले इन पैकेजों या कमांड्स को स्थापित किया जाना चाहिए।

root@kitploit:~
gcc
realpath
nm

Bash और स्ट्रिंग प्रोसेसिंग कमांड जैसे awk और भी आवश्यक हैं, और संभवतः आपके डिस्ट्रो के साथ आते हैं।

grep

हालाँकि यह एक bash स्क्रिप्ट है, uprobe निर्दिष्ट करने वाला कोड भाग प्लेटफ़ॉर्म-निर्भर है (हम uprobe में $argN का उपयोग नहीं कर सकते), और हम i386, x86_64, arm और aarch64 का समर्थन करते हैं। बेझिझक अपना स्वयं का प्लेटफ़ॉर्म समर्थन जोड़ें।

प्रूफ-ऑफ-कॉन्सेप्ट चलाने के लिए, बस निम्नलिखित कमांड को रूट विशेषाधिकार के साथ निष्पादित करें:

root@kitploit:~
./rbdetonate

परिणाम

5.14.0-rc2-00478-g2734d6c1b1a0.png

यदि प्रूफ-ऑफ-कॉन्सेप्ट द्वारा बग ट्रिगर होता है, तो एक dd प्रक्रिया उत्पन्न होगी जो पूरे CPU कोर की खपत करेगी, और इसे केवल UNIX सिग्नल जैसे SIGKILL से नहीं मारा जा सकता।

rbdetonate स्क्रिप्ट की bash प्रक्रिया को मारा जा सकता है, लेकिन SIGINT सिग्नल भेजने पर यह bash कार्यान्वयन के आधार पर समाप्त हो भी सकती है और नहीं भी। और नए संस्करण की bash को केवल तभी SIGINT द्वारा मारा जा सकता है जब उत्पन्न dd प्रक्रिया चल रही हो।

5.14.0-rc2-00479-g86020194bc7e.png

rbdetonate बाहर निकल सकता है और Nothing buggy has been detected प्रिंट कर सकता है यदि यह कई पुनः प्रयासों के बाद dd प्रक्रिया नहीं बना पाता। हालाँकि, हमारे 8192 बार पुनः प्रयास करने के कारण इसमें कुछ समय लग सकता है।

संस्करणपुनरुत्पादितस्क्रीनशॉट
5.14.0-rc2-00479-g86020194bc7e (फिक्स संस्करण)N5.14.0-rc2-00479-g86020194bc7e.png
5.14.0-rc2-00478-g2734d6c1b1a0 (5.14.0-rc2)Y5.14.0-rc2-00478-g2734d6c1b1a0.png
5.4.0-77-genericY5.4.0-77-generic.png
4.4.0-142-genericY4.4.0-142-generic.png

टिप्पणी: यह बग सैद्धांतिक रूप से उन सभी संस्करणों में मौजूद है जिनमें यूज़रस्पेस ट्रेसिंग सुविधा है (>=3.10), लेकिन पुराने कर्नेल संस्करणों में uprobe कई तरीकों से ठीक से काम नहीं करता। यदि आप इसके व्यवहार को सुधारने में हमारी सहायता करें तो हम आभारी होंगे।

अक्सर पूछे जाने वाले प्रश्न

  1. खैर, प्रोग्राम काम करता है, लेकिन इस खूनी राक्षस से कैसे छुटकारा पाया जाए?

उत्तर: बस रूट विशेषाधिकार के साथ कमांड echo > /sys/kernel/debug/tracing/instances/rbdetonate/trace निष्पादित करें, यह प्रोग्राम को डेडलूप से बाहर निकाल देगा।

  1. क्या इस प्रकार के शोषण के लिए बिल्ड टूल्स आवश्यक हैं?

उत्तर: नहीं। यहाँ उपयोग किए गए बिल्ड टूल्स केवल rbwrite प्रोग्राम बनाने के लिए हैं, जो हमारे डिज़ाइन किए गए चरणों में CPU#0 पर रिंग बफर पेजों पर लिखकर निर्धारित (deterministic) परिणाम उत्पन्न करता है।

सामान्य रूप से इस प्रूफ-ऑफ-कॉन्सेप्ट के लिए, rbwrite प्रोग्राम का एक संकलित संस्करण भी उपयोग किया जा सकता है, और उसके बाद tracepoint का पता प्राप्त किया जा सकता है।

linux ट्रेसिंग का उपयोग करने के लिए, यदि आपको अनुप्रयोगों द्वारा उत्पन्न शोर से कोई आपत्ति नहीं है, तो syscalls और कर्नेल फ़ंक्शनों में kprobe tracepoints जोड़ना भी इवेंट उत्पन्न करेगा। लेकिन प्रूफ-ऑफ-कॉन्सेप्ट के लिए, यह अनिर्धारितता (undeterminism) ला सकता है और इसे पसंद नहीं किया जाता।

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