2022年1月25日,突然曝出的坏消息令 Linux 用户们错愕不已 —— Polkit 系统工具中存在一项已有 12 年“悠久历史”的大 bug,攻击者能够借此在大多数主流 Linux 发行版中获得至高无上的 root 权限。
简单来说,当黑客通过弱口令等途径,以普通用户的身份登录到你的 linux 系统,他能很简单的通过 pkexec 组件获取到 root 权限,然后把你的系统重装成 windows
为什么PwnKit 漏洞能提权 root
▲ 看到第三位的 s (set uid)权限没有,就是他的原因。
当一个可执行文件具有 s 权限,普通用户执行该文件的时候,经过系统层层审批( 复杂的 ACL ) 会临时获得 root 权限。
所以,该漏洞修复起来也简单,直接摘掉 s 权限就行了。
野路子修复 PwnKit 漏洞
▲ chmod u-s /usr/bin/pkexec
centos 系统可以直接用本命令修复。
修复由 polkit 的组件引发的严重本地提权漏洞
▲ 从 redhat 官方我们能看到2022年1月26日更新的 polkit 已经修复了该漏洞,所以我们直接升级 polkit 就行了。
yum clean all && yum makecache yum update polkit -y rpm -qi `rpm -qf /usr/bin/pkexec`
centos系统直接复制上面的命令
▲ 当你看到 Build Date 是 2022年1月26日,说明漏洞修复完成,这样,你就不用摘除pkexec 的 s 权限了,免得依赖的服务出问题。
Ubuntu 修复 PwnKit 漏洞
sudo apt-get update
sudo apt-get install policykit-1
Debian修复 CVE-2021-4034 提权漏洞
apt upgrade policykit-1
▲ find /usr -perm 4755 -exec ls -l {} \; 命令能找出/usr 目录下所有带 s 权限的文件,不要去随意改动 s 权限,会出问题。
为什么系统会设置这么一个看起来很危险的 set uid 权限:
我们来看一个很常见的场景,普通用户修改自己的密码,修改密码的时候,会更新 /etc/shadow 这个文件,但,普通用户压根就写不动这个文件
/etc/shadow 的权限是0,任何人都无法读、写、执行,当普通用户用 passwd (/usr/bin/passwd 带s 权限)命令修改自己密码的时候,临时有了一部分 root 权限,所以能正常的改写 /etc/shadow 文件,从而正常的修改自己的密码。
原创文章,转载请注明: 转载自笛声
9 条评论
欧了,照着大佬命令敲一遍就完事了~
西风大佬好。
已经第一时间修补了~
龙大佬好。
存在12年,估计已经被很多人利用过了。
已更新
感谢笛声大佬,已经更新修复了
新年快乐。
给力