该脚本通过劫持库路径(PYTHONPATH hijacking)利用 Linux 工具 needrestart 中的漏洞 CVE-2024-48990。与原始攻击向量不同,此方法仅使用 Python,从而绕过了在目标机器上安装 gcc 等编译器的要求。
/tmp/malicious/importlib。这模仿了 Python 标准库的结构。importlib/__init__.py):root(UID 0)。如果是,则将 /bin/bash 二进制文件复制到 /tmp/poc,并设置 SUID 位(chmod 4755)。这创建了一个后门,允许任何用户提升权限。e.py):needrestart 能够拦截它。/tmp 目录。一旦检测到 /tmp/poc 文件被创建,立即使用 -p 标志(以保留 root 权限)执行该文件,交付交互式 shell。PYTHONPATH="$PWD" python3 e.py 运行诱饵,我们改变了 Python 的行为。强制任何导入操作优先在 /tmp/malicious 中查找,然后再搜索系统的合法路径。needrestart):needrestart 以管理员权限运行时(无论是手动还是通过系统计划任务),它会扫描活动进程。当扫描到我们的 e.py 时,提取其环境变量并启动自己的 Python 进程进行分析。由于继承了恶意的 PYTHONPATH,needrestart 的 root 进程会导入我们伪造的 importlib 库并执行载荷,从而获得对机器的完全控制。