知行编程网知行编程网  2022-07-11 18:00 知行编程网 隐藏边栏 |   抢沙发  11 
文章评分 0 次,平均分 0.0

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

来自 | 量子位
无需系统密码,就能添加新的sudo用户、获取root权限,事后还能删除不留痕迹。
这是GitHub安全研究员Kevin Backhouse发现的一个Ubuntu系统大漏洞。
Ubuntu被曝严重漏洞:切换系统语言+输入几行命令,就能获取root权限
这种攻击方法非常简单,Backhouse在官方博客中写道:“使用终端中的一些简单命令,并单击几次鼠标,标准用户就可以为自己创建一个管理员帐户。”
目前还在维护的Ubuntu操作系统均受到影响,包括20.10以及20.04、18.04、16.04三个LTS版。
Ubuntu被曝严重漏洞:切换系统语言+输入几行命令,就能获取root权限

Backhouse是如何操作的?我们接着往下看。

   攻击方法

首先打开终端,在你的主目录下创建一个软链接:
<section style="line-height: 18px;font-size: 14px;letter-spacing: 0px;font-family: Consolas, Inconsolata, Courier, monospace;border-radius: 0px;color: rgb(169, 183, 198);background-color: rgb(40, 43, 46);padding: 0.5em;margin-left: 8px;margin-right: 8px;overflow-wrap: normal !important;word-break: normal !important;overflow: auto !important;display: -webkit-box !important;">ln -s /dev/zero .pam_environment<br  /></section>
(注:如果以上命令无法运行,说明已经存在名为.pam_environment的文件,请把这个文件重命名做好备份!)
接下来,在系统设置中打开“区域和语言”,然后尝试更改语言。
Ubuntu被曝严重漏洞:切换系统语言+输入几行命令,就能获取root权限
该对话框会冻结,只需忽略它,然后返回到终端即可。
此时,一个名为accounts-daemon的程序正在消耗100%的CPU内核,因此你的计算机可能会变慢并开始变热。
在终端中,删除软链接。否则,你可能无法使用自己的帐户!
<section style="line-height: 18px;font-size: 14px;letter-spacing: 0px;font-family: Consolas, Inconsolata, Courier, monospace;border-radius: 0px;color: rgb(169, 183, 198);background-color: rgb(40, 43, 46);padding: 0.5em;margin-left: 8px;margin-right: 8px;overflow-wrap: normal !important;word-break: normal !important;overflow: auto !important;display: -webkit-box !important;">rm .pam_environment<br  /></section>
下一步是将SIGSTOP信号发送到accounts-daemon,阻止它破坏该CPU内核。但是要做到这一点,首先需要知道accounts-daemon的PID。
你可以通过运行top来找到PID。由于accounts-daemon被卡在一个无限循环中,因此它很快进入top列表的顶部。
Ubuntu被曝严重漏洞:切换系统语言+输入几行命令,就能获取root权限

或者使用pidof命令来查找PID:

<section style="line-height: 18px;font-size: 14px;letter-spacing: 0px;font-family: Consolas, Inconsolata, Courier, monospace;border-radius: 0px;color: rgb(169, 183, 198);background-color: rgb(40, 43, 46);padding: 0.5em;margin-left: 8px;margin-right: 8px;overflow-wrap: normal !important;word-break: normal !important;overflow: auto !important;display: -webkit-box !important;">$ pidof accounts-daemon<br  />597<br  /></section>
接着用kill命令杀死SIGSTOP信号:
<section style="line-height: 18px;font-size: 14px;letter-spacing: 0px;font-family: Consolas, Inconsolata, Courier, monospace;border-radius: 0px;color: rgb(169, 183, 198);background-color: rgb(40, 43, 46);padding: 0.5em;margin-left: 8px;margin-right: 8px;overflow-wrap: normal !important;word-break: normal !important;overflow: auto !important;display: -webkit-box !important;"><span style="font-size: inherit;line-height: inherit;color: rgb(248, 35, 117);word-wrap: inherit !important;word-break: inherit !important;">kill</span> -SIGSTOP 597<br  /></section>
然后注销帐户,但首先需要设置一个计时器,保证在注销后重置accounts-daemon。否则,前面的努力都将白费。
<section style="line-height: 18px;font-size: 14px;letter-spacing: 0px;font-family: Consolas, Inconsolata, Courier, monospace;border-radius: 0px;color: rgb(169, 183, 198);background-color: rgb(40, 43, 46);padding: 0.5em;margin-left: 8px;margin-right: 8px;overflow-wrap: normal !important;word-break: normal !important;overflow: auto !important;display: -webkit-box !important;">nohup bash -c “sleep 30s; <span style="font-size: inherit;line-height: inherit;color: rgb(248, 35, 117);word-wrap: inherit !important;word-break: inherit !important;">kill</span> -SIGSEGV 597; <span style="font-size: inherit;line-height: inherit;color: rgb(248, 35, 117);word-wrap: inherit !important;word-break: inherit !important;">kill</span> -SIGCONT 597”<br  /></section>
注销后等待几秒钟,让SIGSEGV起效。如果漏洞利用成功,则会显示一系列对话框,让你创建一个新的用户帐户。这个新帐户具有管理员权限,可以运行sudo命令。
Ubuntu被曝严重漏洞:切换系统语言+输入几行命令,就能获取root权限
Backhouse将整个过程录成了2分多钟的视频,不明白操作方法的可以前去观看:


   攻击原理

该漏洞利用了Ubuntu系统中的两个错误:
  • 第一个是accountservice,它是管理计算机上用户帐户的服务。

  • 第二个是GNOME显示管理器(gdm3),它可以处理登录屏幕。


accounts-daemon漏洞

accountsservice守护程序(accounts-daemon)是一项系统服务,可以执行诸如创建新用户帐户或更改用户密码的操作,但也可以执行对安全性较不敏感的操作,例如更改用户的图标或首选语言。
Ubuntu被曝严重漏洞:切换系统语言+输入几行命令,就能获取root权限
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。
Ubuntu被曝严重漏洞:切换系统语言+输入几行命令,就能获取root权限
当gdm3查询到用户数量为0时,会启动这个程序。那么gdm3如何检查系统上有多少用户?通过询问accounts-daemon!
不幸的是,accounts-daemon已经被我们前面的操作整崩溃了,所以gdm3在检查超时后认为帐户数量为0,并启动gnome-initial-setup。
而初始化设置的用户必须有管理员权限。

   官方紧急修复

Backhouse于10月17日向Ubuntu和GNOME维护人员报告了这些错误,官方已经最新代码中提供了修复程序。建议所有Ubuntu用户都尽快安装更新。
不过,该漏洞仅对桌面版Ubuntu有效。如果使用的是命令行界面,或者是GNOME之外的其他桌面环境,则暂时不受影响。
博客地址:
https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE
网友讨论:
https://news.ycombinator.com/item?id=25053238
<section data-brushtype="text" style="padding-right: 0em;padding-left: 0em;white-space: normal;max-width: 100%;letter-spacing: 0.544px;color: rgb(62, 62, 62);font-family: "Helvetica Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;widows: 1;word-spacing: 2px;caret-color: rgb(255, 0, 0);text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong>完<strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong></span></strong></span></strong></section><pre style="padding-right: 0em;padding-left: 0em;max-width: 100%;letter-spacing: 0.544px;color: rgb(62, 62, 62);widows: 1;word-spacing: 2px;caret-color: rgb(255, 0, 0);text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;"><pre style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;letter-spacing: 0.544px;white-space: normal;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-bottom: 15px;padding-right: 0em;padding-left: 0em;max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 25.5938px;letter-spacing: 3px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(0, 0, 0);box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 16px;font-family: 微软雅黑;caret-color: red;box-sizing: border-box !important;overflow-wrap: break-word !important;">为您推荐</span></strong></span></section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;">一文了解深度推荐算法的演进</section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;">干货 | 算法工程师超实用技术路线图</section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 14px;">13个算法工程师必须掌握的PyTorch Tricks</span></section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 14px;">吴恩达上新:生成对抗网络(GAN)专项课程</span><br  /></section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;">拿到2021灰飞烟灭算法岗offer的大佬们是啥样的<span style="font-size: 14px;">?</span></section></section></section></section></section></section></section></section></section>

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

本篇文章来源于: 深度学习这件小事

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享