无需系统密码,就能添加新的sudo用户、获取root权限,事后还能删除不留痕迹。
这是github安全研究员kevin backhouse发现的一个ubuntu系统大漏洞。
这种攻击方法非常简单,backhouse在官方博客中写道:“使用终端中的一些简单命令,并单击几次鼠标,标准用户就可以为自己创建一个管理员帐户。”
目前还在维护的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
下一步是将sigstop信号发送到accounts-daemon,阻止它破坏该cpu内核。但是要做到这一点,首先需要知道accounts-daemon的pid。
你可以通过运行top来找到pid。由于accounts-daemon被卡在一个无限循环中,因此它很快进入top列表的顶部。
或者使用pidof命令来查找pid:
$pidofaccounts-daemon 597
接着用kill命令杀死sigstop信号:
kill-sigstop597
然后注销帐户,但首先需要设置一个计时器,保证在注销后重置accounts-daemon。否则,前面的努力都将白费。
nohupbash-c“sleep30s;kill-sigsegv597;kill-sigcont597”
注销后等待几秒钟,让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
原文标题:ubuntu被曝严重漏洞:切换系统语言+输入几行命令,就能获取root权限
文章出处:【微信公众号:linux爱好者】欢迎添加关注!文章转载请注明出处。
加速建设迎接5G商用 北京联通5G畅快体验
中科研究院完成了压缩空气弹射器在无人机中的应用测试
小体积三相四线智能电表的电源解决方案
有关CDMA的术语
四声道环绕的发展历程
GitHub安全研究员发现一个Ubuntu系统大漏洞
交流电压在H桥主电路上工作回路及采样电路原理
国内布局车规级MCU的22家厂商及相关产品介绍
谷歌旗下的可穿戴设备制造商Fitbit,推出了一款名叫Flow的呼吸机
海尔BCD-190W双温双控电冰箱控制电路剖析
物联网:让各种技术不再单一!
如何在养殖中应用物联网技术?
荣耀9、荣耀V9对比评测:华为荣耀9、华为荣耀V9哪个更好?有什么区别?配置、价格、外观大对决!
如何使用Dioptra工具进行AI模型的加固
首次火星探测任务“天问一号”
医学创新和定制光学传感器
因和硕联合违反苹果政策,暂时终止与和硕联合的新业务合作
关于蓄电池组充电的认识
TI推出新一代蓝牙低功耗应用BLE-Stack 1.2
全球新能源汽车扁线电机产业大会于9月21日在上海盛大召开!