
CVE-2026-31431 का उपयोग करके रूट पासवर्ड को अस्थायी रूप से हटा देता है
[!WARNING] इसका उपयोग केवल उन सिस्टमों पर करें जिनके आप मालिक हैं या जिनके परीक्षण की अनुमति आपके पास है।
अस्थायी रूप से रूट पासवर्ड हटाता है, CVE-2026-31431 का उपयोग करके वर्तमान उपयोगकर्ता का पासवर्ड जाने बिना आर्किटेक्चर-स्वतंत्र रूप से रूट तक पहुँच प्राप्त करने की अनुमति देता है।
कृपया जिम्मेदारी से उपयोग करें, केवल उन सिस्टमों पर जिनका परीक्षण करने के लिए आप अधिकृत हैं। यह विधि आपके सिस्टम पर समर्थित है या नहीं, यह भिन्न हो सकता है, लेकिन यह मेरे द्वारा परीक्षण किए गए सभी Debian-आधारित वितरणों पर काम कर चुका है।
जिस PoC पर यह आधारित है, उसने मूल रूप से /etc/passwd में आपके UID को सभी 0 से बदल दिया, जिससे आपको प्रभावी रूप से रूट मिल गया। यह दृष्टिकोण इसके बजाय रूट का पासवर्ड हटा देता है, इसलिए जब आप su चलाते हैं तो आपको तुरंत रूट मिल जाता है। यह स्थिरता के लिए आपके उपयोगकर्ता को बरकरार रखता है, इस चेतावनी के साथ कि सफाई होने तक मशीन पर कोई भी उपयोगकर्ता एलिवेट कर सकता है। बाइनरी संशोधन न होने के कारण, यह सभी आर्किटेक्चरों पर भी काम करना चाहिए (Aarch64 और x64 परीक्षण किया गया)।
python exploit.py [ --shell | --clean | --noclean ]
बिना किसी तर्क के, प्रोग्राम चलता है, /etc/passwd में परिवर्तन करता है और फिर उन्हें वापस लौटा देता है।
--noclean परिवर्तनों को समाप्त करने के बाद वापस लौटने से रोकता है।--clean केवल पिछले रन से सफाई करेगा, एक्सप्लॉइट नहीं चलाएगा।--shell सफाई नहीं करेगा, बल्कि एक्सप्लॉइट चलाने के बाद su के साथ एक रूट शेल शुरू करेगा।
से
'x' को हटाने से जो इंगित करता है कि पासवर्ड /etc/shadow में संग्रहीत है, उसे ऐसा माना जाएगा जैसे उपयोगकर्ता का कोई पासवर्ड नहीं है, जिससे आसान लॉगिन संभव होगा।
जब मैंने यह लिखा था, तब CopyFail के लिए केवल प्रसिद्ध PoC थे, एक जिसने SUID निष्पादन योग्य को ओवरराइट किया और एक जिसने आपके उपयोगकर्ता के UID को शून्य से बदल दिया। यदि आप एक सिस्टम के खिलाफ परीक्षण चला रहे हैं, तो दोनों के काफी अलग उपयोग-मामले हैं। SUID ओवरराइट में सिस्टम के आर्किटेक्चर के अनुरूप शेलकोड की आवश्यकता होती है, और अपने UID को संशोधित करने के लिए आपको अपने वर्तमान उपयोगकर्ता के पासवर्ड के साथ पुनः प्रमाणित करने की आवश्यकता होती है, जो आपको ज्ञात नहीं हो सकता है। RootRemover का उपयोग अक्सर तब किया जा सकता है जब ये आवश्यकताएँ बाधा बन जाएँ।
यह उस स्थिति के लिए डिज़ाइन किया गया है जब आपको www-data जैसे नोलॉगिन उपयोगकर्ता के साथ शेल मिलता है, न कि ऐसी मशीन के लिए जहाँ आप ज्ञात पासवर्ड रखते हैं या शेलकोड तैयार करने के लिए आर्किटेक्चर को अच्छी तरह से जानते हैं।
*LK*' या '*NP*' का उपयोग नहीं करना चाहिए (इसे चेन राइट्स के साथ ठीक किया जा सकता है, मेरे पास इसे लागू करने का समय नहीं है)su के कमांडलाइन के माध्यम से एलिवेशन की पहचान करना आसान हो सकता है (बिना तर्कों का हमेशा मतलब रूट, UID पैच PoC लॉग में अपने स्वयं के उपयोगकर्ता पर स्विच करने जैसा दिखता है)वास्तविक एक्सप्लॉइट कोड rootsecdev के रेपो से है, मैं ज्यादातर उन बाइट्स को बदल रहा हूँ जो ऊपर बताए गए कारणों से लिखे जाते हैं।