公众号关注 “GitHubDaily”

设为 “星标”,带你了解技术圈内新鲜事!

来自量子位

无需系统密码,就能添加新的 sudo 用户、获取 root 权限,事后还能删除不留痕迹。

这是 GitHub 安全研究员 Kevin Backhouse 发现的一个 Ubuntu 系统大漏洞。

这种攻击方法非常简单,Backhouse 在官方博客中写道:“使用终端中的一些简单命令,并单击几次鼠标,标准用户就可以为自己创建一个管理员帐户。”

目前还在维护的 Ubuntu 操作系统均受到影响,包括 20.10 以及 20.0418.0416.04 三个 LTS 版。

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

攻击方法

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

ln -s /dev/zero .pam_environment

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

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

该对话框会冻结,只需忽略它,然后返回到终端即可。

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

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

rm .pam_environment

下一步是将 SIGSTOP 信号发送到 accounts-daemon,阻止它破坏该 CPU 内核。但是要做到这一点,首先需要知道 accounts-daemon 的 PID。

你可以通过运行 top 来找到 PID。由于 accounts-daemon 被卡在一个无限循环中,因此它很快进入 top 列表的顶部。

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

$ pidof accounts-daemon
597

接着用 kill 命令杀死 SIGSTOP 信号:

kill -SIGSTOP 597

然后注销帐户,但首先需要设置一个计时器,保证在注销后重置 accounts-daemon。否则,前面的努力都将白费。

nohup bash -c “sleep 30s; kill -SIGSEGV 597; kill -SIGCONT 597”

注销后等待几秒钟,让 SIGSEGV 起效。如果漏洞利用成功,则会显示一系列对话框,让你创建一个新的用户帐户。这个新帐户具有管理员权限,可以运行 sudo 命令。

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

攻击原理

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

  • 第一个是 accountservice,它是管理计算机上用户帐户的服务。

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

accounts-daemon 漏洞

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!

不幸的是,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

kali 切换root权限_Ubuntu 被曝严重漏洞:切换系统语言 + 输入几行命令,就能获取 root 权限...相关推荐

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

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 无需系统密码,就能添加新的sudo用户.获取root权限,事后还能删除不留痕迹. 这是GitHub安全研究员Kevin Backhouse ...

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

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 无需系统密码,就能添加新 ...

  3. Ubuntu被曝严重漏洞:切换系统语言+输入几行命令,就能获取root权限(仅支持ubuntu桌面版、提权)

    无需系统密码,就能添加新的sudo用户.获取root权限,事后还能删除不留痕迹. 这是GitHub安全研究员Kevin Backhouse发现的一个Ubuntu系统大漏洞. 这种攻击方法非常简单,Ba ...

  4. ubuntu 改屏幕分辨率命令_Ubuntu被曝严重漏洞!!!

    GitHub安全研究员Kevin Backhouse发现的一个Ubuntu系统大漏洞. 无需系统密码,就能添加新的sudo用户.获取root权限,事后还能删除不留痕迹. 这种攻击方法非常简单,Back ...

  5. 魅蓝3如何root_我的魅蓝3系统是5.1.4.2Y,怎么获取root权限,不是说魅蓝官网开放权限了吗?登录账户找不到啊?...

    之前也是想root在知乎上找不到办法,前段时间终于搞定,希望有帮助. =========== 首先感谢制作魅蓝3 Android ROM的大神----眷恋阳阳 想必很多人跟我一样,在购买了魅蓝3之后才 ...

  6. windows中dos命令汇总及获取管理员权限

    文章目录 windows 获取管理员权限的2种方式 runas 用法 windows dos 命令行语法项 windows dos命令总述 windows dos命令详细介绍 - win7及以前: 微 ...

  7. windows系统,计算机cmd管理员,命令行中普通用户获取管理员权限的命令

    文章目录 一.第一种方式:搜索框搜索 二.第二种方式:win+R (这种方式作者没有找到进入管理员的方式) 三.普通方式进入,通过命令授予用户权限 四.通过开始右键进入cmd 参考文档 一.第一种方式 ...

  8. win10切换输入法快捷键_怎么给电脑win10添加其他语言输入?例:日语,俄语

    最近偶的小伙伴们!有在学二外!这不得不在添加其他的输入法!可是那个好呢?选起来也比较迷茫!毕竟初次接触!又不想安装其他的软件,特别如果有一些朋友不太会安装软件!这就真的很迷茫了! 废话不多说,我推荐w ...

  9. Kali普通账户如何获取root管理员权限并切换中文?

    有很多人刚下载Kali发现是英文的,并且不知道怎么改系统语言,现在就帮大家解答下,希望多多支持哦! 一:普通用户获取root管理员权限 因为Kali系统默认使用普通账号kali,所以我们要把它提权以便 ...

最新文章

  1. USB查看器 USB Device Tree Viewer(UsbTreeView.exe)的使用(重启Intel Realsense摄像头)
  2. Linux从零开始(二、基础命令(续三)修改密码)
  3. Windows 10 2022 年更新来了!
  4. javaone_JavaOne 2012:在JVM上诊断应用程序
  5. 详解7类Python运算符及代码举例
  6. Javascript -- 精通String
  7. docker php amqp 扩展,docker搭建rabbitmq,配合php-amqplib+supervisor使用(下)
  8. 围棋对杀,为何总是只差一气
  9. 工业读写器行业解决方案
  10. 全国书画艺术之乡-----通渭
  11. 北京跑步入夏--妞妞跑步长大
  12. 手机cpu天梯图2020
  13. [生存志] 第138节 说苑列女事追前朝
  14. mysql查询所有男生中姓王的_MySQL的查询练习
  15. HTML+CSS抗疫网页设计 疫情感动人物静态HTML网页 web前端开发技术 web课程设计 网页规划与设计
  16. 【第73篇】InternImage:探索具有可变形卷积的大规模视觉基础模型
  17. 数据库——MySQL概述
  18. K8S篇-安装Syncthing
  19. 刘强东最牛女助理任CHO:颜值不输奶茶妹妹,32岁成京东内部二号人物………...
  20. 认定高新技术企业能得到什么好处

热门文章

  1. Java基础--反射
  2. java http get_我是如何进入阿里巴巴的-面向春招应届生Java面试指南(九)
  3. 法拉克机器人自动怎么调_在使用钢网印刷SMT贴片红胶时全自动印刷机的参数怎么调?...
  4. 变量命名 – 匈利亚命名法则 - C语言零基础入门教程
  5. 安装 Visual Studio 插件 Visual Assist - C语言零基础入门教程
  6. centos的mysql怎么删用户_linux/centos给Mysql创建用户、授权、查看、删除、修改密码、撤...
  7. html静态页面引用其他页面,Shtml完美解决静态页面内部调用其他页面(非Iframe、Object、Js方法)...
  8. 计算机管理员相关知识,计算机管理员述职报告范文
  9. mysql租车管理系统_基于java实现租车管理系统
  10. 华为鸿蒙系统是指芯片吗_华为首部鸿蒙手机P50——不再使用麒麟芯片,拍照系统再升级...