点击机器学习算法和Python学习如何获取root权限,选择已加星标
精彩内容不会丢失
本文转自AI新媒体量子比特(公众号:QbitAI)
无需系统密码,您可以添加新的 sudo 用户,获得 root 权限,然后删除它们而不留痕迹。这是 GitHub 安全研究员 Kevin Backhouse 在 Ubuntu 系统中发现的一个重大漏洞。
这种攻击方法非常简单,Backhouse 在官博中写道:“在终端中使用一些简单的命令如何获取root权限,并点击几下鼠标,一个标准用户就可以为自己创建一个管理员帐户。” Ubuntu 仍在维护中。所有操作系统都受到影响,包括 20.10 和 20.04、18.04 和 16.04 的三个 LTS 版本。
Backhouse 是如何工作的?我们往下看。
攻击方式
首先打开一个终端并在你的主目录中创建一个软链接:
ln -s /dev/zero .pam_environment
(注意:如果上面的命令无法运行,说明已经存在一个名为.pam_environment的文件,请重命名该文件并做好备份!)
接下来,在系统设置中打开“区域和语言”并尝试更改语言。
对话框冻结,忽略它并返回终端。
此时,一个名为 accounts-daemon 的程序正在消耗 100% 的 CPU 内核,因此您的计算机可能会变慢并开始发热。
在终端中,删除软链接。否则,您可能无法使用您的帐户!
rm .pam_environment
下一步是向accounts-daemon 发送一个SIGSTOP 信号,防止它破坏那个CPU 内核。但要做到这一点,您首先需要知道accounts-daemon 的PID。
您可以通过运行 top 找到 PID。由于accounts-daemon 陷入了无限循环,它很快就进入了top list 的顶部。
或者使用 pidof 命令查找 PID:
$ pidof accounts-daemon
597
然后使用 kill 命令杀死 SIGSTOP 信号:
kill -SIGSTOP 597
然后注销帐户,但首先您需要设置一个计时器,以保证在注销后重置帐户守护程序。否则,之前的努力都将付诸东流。
nohup bash -c “sleep 30s; kill -SIGSEGV 597; kill -SIGCONT 597”
注销后等待几秒钟以使 SIGSEGV 生效。如果利用成功,将显示一系列对话框,允许您创建新用户帐户。这个新帐户具有管理员权限并且可以运行 sudo 命令。
Backhouse将整个过程录制成了2分钟多的视频。操作方法不明白的可以去看看:
攻击原理
该漏洞利用了 Ubuntu 系统中的两个漏洞:
帐户守护程序漏洞
accountsservice 守护进程(accounts-daemon)是一个系统服务,可以执行诸如创建新用户帐户或更改用户密码等操作,也可以执行诸如更改用户图标或首选语言等安全敏感度较低的操作。
Ubuntu 使用 accountservice 服务的修改版本,添加了一个名为 is_in_pam_environment 的函数,该函数在用户的主目录中查找名为 .pam_environment 的文件并读取它。
将 .pam_environment 链接到 /dev/zero 允许拒绝 accountservice 服务。
因为 /dev/zero 实际上是磁盘上不存在的特殊文件。它由操作系统提供,其行为就像一个无限长的文件,其中每个字节都是 0。
当 is_in_pam_environment 尝试读取 .pam_environment 时,它会通过软链接重定向到 /dev/zero,然后因为 /dev/zero 无限长而陷入无限循环。
这样做会导致accounts-daemon 失去它的root 权限,转而支持用户的较低权限。然后将 SIGSEGV 发送到帐户守护程序以使其崩溃。
GNOME 漏洞利用
GNOME 显示管理器 (gdm3) 是 Ubuntu 用户界面的重要组件。它处理诸如在用户登录和注销时启动和停止用户会话之类的事情,并且还管理登录屏幕。
当用户完成新系统的初始设置时,会启动一个对话框,该对话框实际上是一个名为 gnome-initial-setup 的单独应用程序。
当gdm3查询到用户数为0时,就会启动这个程序。那么gdm3如何检查系统上有多少用户呢?通过询问帐户守护进程!
不幸的是,accounts-daemon 已经被我们之前的操作完全崩溃了,所以 gdm3 在检查超时后认为帐户计数为 0 并启动了 gnome-initial-setup。
初始化设置的用户必须具有管理员权限。
官方紧急修复
Backhouse 于 10 月 17 日向 Ubuntu 和 GNOME 维护人员报告了这些错误,并且已在最新代码中提供了修复。建议所有 Ubuntu 用户尽快安装更新。
但是,该漏洞利用仅对桌面版 Ubuntu 有效。如果您使用的是命令行界面,或 GNOME 以外的其他桌面环境,则暂时不受影响。
博客地址:
网友们议论纷纷:
喜欢就点“看”吧!