使用 polkit 进行权限提升:如何利用七年前的漏洞在 Linux 上获取 root 权限

该漏洞使非特权本地用户能够获得系统的 root shell。只需几个标准命令行工具即可轻松利用该漏洞,正如您在这段简短的视频中所见。在这篇博文中,我将解释该漏洞的工作原理,并向您展示源代码中的错误位置。

目录

CVE-2021-3560 的历史和易受攻击的发行版

我发现的这个漏洞相当古老。它是七年前在提交bfa5036中引入的,并首次随 polkit 版本 0.113 一起发布。然而,许多最流行的 Linux 发行版直到最近才发布这个易受攻击的版本。

该漏洞在Debian及其衍生版本(例如Ubuntu)上的历史略有不同,因为 Debian 使用的是具有不同版本编号方案的polkit 分支。在 Debian 分支中,该漏洞是在提交f81d021中引入的,并首次随版本 0.105-26 一起发布。Debian 的最新稳定版本Debian 10(“buster”)使用的是版本 0.105-25,这意味着它不易受攻击。但是,一些 Debian 衍生版本(例如 Ubuntu)基于Debian 不稳定版本,因此容易受攻击。

下表列出了一些流行的发行版以及它们是否存在漏洞(请注意,这不是一个完整的列表):

分配 易受伤害的?
RHEL 7
RHEL 8 是的
Fedora 20(或更早版本)
Fedora 21(或更高版本) 是的
Debian 10(“buster”)
Debian 测试(“靶心”) 是的
Ubuntu 18.04
Ubuntu 20.04 是的

关于polkit

当您看到如下对话框时,polkit就是在后台运行的系统服务:

提示身份验证的 polkit 对话框的屏幕截图

提示身份验证的 polkit 对话框的屏幕截图

它本质上扮演着法官的角色。如果你想做一些需要更高权限的事情——例如,创建一个新的用户帐户——那么 polkit 的工作就是决定你是否被允许这样做。对于某些请求,polkit 会立即决定允许或拒绝

  • 20
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值