近一段时间关于Linux中提权漏洞的消息就一直没停过,早在去年7月份Linux就被爆出存在一个权限提升漏洞,今年2月7日又在Polkit的pkexec组件中爆出一个新的提权漏洞。这才刚过了一个月的时间就又有一个提权漏洞出现了。
“Dirty Pipe”一个新的Liunx提权漏洞,由安全研究员Max Kellermann在3月7日爆出,从Linux内核5.8版本到其之后发布的版本全部没能幸免,甚至安卓设备上的Linux都存在这个漏洞。利用该漏洞,非特权用户可以在只读文件中注入和覆盖数据,包括以root身份运行的SUID进程也可以被非特权用户更改数据。该漏洞目前被追踪码为CVE-2022-0847,Kellerman表示,该漏洞与2016年被修复的Dirty COW漏洞(CVE-2016-5195)十分类似都是通过公开的漏洞获取root权限。
公开漏洞获取root权限
作为Dirty Pipe公开的一部分,Kellerman发布了一个概念证明(PoC)漏洞,本地非特权用户可以将自己的数据注入到敏感的只读文件中去,取消对他们的权限限制或直接修改Linux配置,以此来获得对Linux更大的访问权限。
安全研究员Phith0n也向我们说明了如何使用该漏洞来修改/etc/passwd文件,使root用户的账户没有密码。这样做的结果是,非特权用户也可以非常简单的执行“su root”命令来获得对根账户的访问。
我为什么要重写/etc/passwd?
因为这个文件保存了Linux上所有的用户信息。
我删除了 "root "用户后面的 "x "标志,这意味着我为这个账户设置了一个空密码。所以我可以用 "su root "来升级权限而不需要凭证。
- Phith0n (@phithon_xg) 2022年3月7日
图片来源BleepingComputer
除了这个“Dirty Pipe”漏洞之外,还有一个漏洞被安全研究员BLASTY爆出,这个漏洞可以在Dirty Pipe的基础上更轻松地获得root权限,只需要一个简单的脚本即可,通过修补/usr/bin/su命令,在/tmp/sh处放下一个root shell,然后执行脚本,用户就可以获得root权限了。就像下面BleepingComputer在运行5.13.0-27-generic内核的Ubuntu 20.04.3 LTS中所展示的那样。
图片来源BleepingComputer
其实早在2022年2月20日开始,各个Linux维护者就收到了关于该漏洞的报告,包括Linux内核安全团队和Android安全团队在内。虽然该漏洞在Linux内核5.16.11、5.15.25和5.10.102中已经被修复了,但是许多服务器仍然在运行未被修复的Linux内核版本,对于服务器管理员来说这依旧是一个非常严重的问题。此外由于利用该漏洞很容易获得root权限,恶意行为者利用该漏洞进行攻击也只是时间问题。曾经的Dirty COW漏洞也被恶意软件使用过。尤其是对于提供Linux shell访问的虚拟主机提供商,或为多用户Linux系统提供shell访问的大学而言其威胁性更大。
对于Linux和它的维护者们来说,这几个月是一段艰难的日子,从去年开始有许多权限提升漏洞被逐渐暴露出来。其中就包括Linux iSCSI子系统中的权限提升漏洞、另一个叫做Sequoia(CVE-2021-33909 )的漏洞 、扩展伯克利包过滤器(eBPF)和Polkit的pkexec组件。
参考链接:https://www.bleepingcomputer.com/news/security/new-linux-bug-gives-root-on-all-major-distros-exploit-released/
《新程序员001-004》全面上市,对话世界级大师,报道中国IT行业创新创造