
CVE-2024-0582 के लिए डेटा-ओनली एक्सप्लॉइट
यह एक्सप्लॉइट /etc/passwd में अनधिकृत लिखने की पहुँच प्राप्त करने के लिए Dirty Cred हमला विधि लागू करता है। कई समान एक्सप्लॉइट के विपरीत जो अनेक पृष्ठ बनाते हैं या आक्रामक रूप से फ़ाइल डिस्क्रिप्टर छिड़कते हैं, यह दृष्टिकोण आवश्यक कर्नेल संरचनाओं को दूषित करने के लिए अधिक लक्षित मार्ग अपनाता है।
CPU आत्मीयता सेट करें और FD सीमा बढ़ाएँ
स्थिर प्रदर्शन और छिड़काव के लिए पर्याप्त फ़ाइल डिस्क्रिप्टर सुनिश्चित करता है।
io_uring प्रारंभ करें
कर्नेल मेमोरी उपयोग के लिए एक io_uring इंस्टेंस बनाता है और एक बफर रिंग पंजीकृत करता है।
बफर रिंग को अपंजीकृत करें
कमजोरी को ट्रिगर करता है, कर्नेल डेटा संरचनाओं को शोषण योग्य अवस्था में छोड़ता है।
फ़ाइल डिस्क्रिप्टर छिड़काव
/etc/passwd के लिए अनेक FD खोलता है, उम्मीद करता है कि वांछित कर्नेल ऑब्जेक्ट दूषित हो जाए।
फ़ाइल मोड संशोधित करें
f_mode फ़्लैग को दूषित करता है ताकि /etc/passwd लिखने योग्य हो जाए।
बैकडोर प्रविष्टि लिखें
/etc/passwd में evil::0:0:root:/root:/bin/bash सम्मिलित करता है।
io_uring कार्यान्वयन हो (CVE-2024-0582 बग वाले कर्नेल पर परीक्षित)।.rs स्रोत फ़ाइलों को संकलित कर रहे हैं)।main.rs में EXT4_FOPS_OFFSET मान (डिफ़ॉल्ट 0x122b3c0 पर सेट है) को समायोजित करने की आवश्यकता हो सकती है। बेमेल होने से एक्सप्लॉइट विफल हो सकता है या गलत व्यवहार कर सकता है।यदि आपका कर्नेल प्रतीक जानकारी निर्यात करता है और आपके पास सही अनुमतियाँ हैं (प्रोडक्शन सिस्टम पर अक्सर यह प्रतिबंधित होता है), तो आप /proc/kallsyms से पढ़ सकते हैं:
_text का पता प्राप्त करें:
grep " _text" /proc/kallsyms
परिणामी पते को TEXT_ADDR कहें।
ext4_file_operations का पता प्राप्त करें:
grep ext4_file_operations /proc/kallsyms
परिणामी पते को EXT4_FOPS_ADDR कहें।
घटाएँ:
EXT4_FOPS_OFFSET = EXT4_FOPS_ADDR – TEXT_ADDR