Ubuntu被曝严重漏洞:切换系统语言+输入几行命令,就能获取root权限(如何获取root权限)

时间:2022-10-19 12:09:54来源:网络整理
导读该对话框会冻结,只需忽略它,然后返回到终端即可。accountsservice守护程序(accounts-daemon)是一项系统服务,可以执行诸如创建新用户帐

点击机器学习算法和Python学习如何获取root权限,选择已加星标

精彩内容不会丢失

如何获取root权限_htc g12 root权限获取_root权限获取教程

本文转自AI新媒体量子比特(公众号:QbitAI)

无需系统密码,您可以添加新的 sudo 用户,获得 root 权限,然后删除它们而不留痕迹。这是 GitHub 安全研究员 Kevin Backhouse 在 Ubuntu 系统中发现的一个重大漏洞。

htc g12 root权限获取_root权限获取教程_如何获取root权限

这种攻击方法非常简单,Backhouse 在官博中写道:“在终端中使用一些简单的命令如何获取root权限,并点击几下鼠标,一个标准用户就可以为自己创建一个管理员帐户。” Ubuntu 仍在维护中。所有操作系统都受到影响,包括 20.10 和 20.04、18.04 和 16.04 的三个 LTS 版本。

如何获取root权限_htc g12 root权限获取_root权限获取教程

Backhouse 是如何工作的?我们往下看。

攻击方式

首先打开一个终端并在你的主目录中创建一个软链接:

ln -s /dev/zero .pam_environment

(注意:如果上面的命令无法运行,说明已经存在一个名为.pam_environment的文件,请重命名该文件并做好备份!)

接下来,在系统设置中打开“区域和语言”并尝试更改语言。

root权限获取教程_htc g12 root权限获取_如何获取root权限

对话框冻结,忽略它并返回终端。

此时,一个名为 accounts-daemon 的程序正在消耗 100% 的 CPU 内核,因此您的计算机可能会变慢并开始发热。

在终端中,删除软链接。否则,您可能无法使用您的帐户!

rm .pam_environment

root权限获取教程_htc g12 root权限获取_如何获取root权限

下一步是向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 命令。

root权限获取教程_如何获取root权限_htc g12 root权限获取

Backhouse将整个过程录制成了2分钟多的视频。操作方法不明白的可以去看看:

攻击原理

该漏洞利用了 Ubuntu 系统中的两个漏洞:

帐户守护程序漏洞

accountsservice 守护进程(accounts-daemon)是一个系统服务,可以执行诸如创建新用户帐户或更改用户密码等操作,也可以执行诸如更改用户图标或首选语言等安全敏感度较低的操作。

Ubuntu 使用 accountservice 服务的修改版本,添加了一个名为 is_in_pam_environment 的函数,该函数在用户的主目录中查找名为 .pam_environment 的文件并读取它。

如何获取root权限_root权限获取教程_htc g12 root权限获取

将 .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 的单独应用程序。

root权限获取教程_htc g12 root权限获取_如何获取root权限

当gdm3查询到用户数为0时,就会启动这个程序。那么gdm3如何检查系统上有多少用户呢?通过询问帐户守护进程!

htc g12 root权限获取_如何获取root权限_root权限获取教程

不幸的是,accounts-daemon 已经被我们之前的操作完全崩溃了,所以 gdm3 在检查超时后认为帐户计数为 0 并启动了 gnome-initial-setup。

初始化设置的用户必须具有管理员权限。

官方紧急修复

Backhouse 于 10 月 17 日向 Ubuntu 和 GNOME 维护人员报告了这些错误,并且已在最新代码中提供了修复。建议所有 Ubuntu 用户尽快安装更新。

但是,该漏洞利用仅对桌面版 Ubuntu 有效。如果您使用的是命令行界面,或 GNOME 以外的其他桌面环境,则暂时不受影响。

博客地址:

网友们议论纷纷:

喜欢就点“看”吧!

最新文章