LInux提权—脏牛—CVE-2016–5195

LInux提权—脏牛—CVE-2016–5195

Adil 0 2023-04-02

一、漏洞描述

​ 脏牛漏洞(CVE-2016–5195),又叫Dirty COW,存在Linux内核中已经有长达9年的时间,在2007年发布的Linux内核版本中就已经存在此漏洞,在2016年10月18后才得以修复,因此影响范围很大。

​ 漏洞具体是由于get_user_page内核函数在处理Copy-on-Write的过程中,可能产出竞态条件造成COW过程被破坏,导致出现写数据到进程地址空间内只读内存区域的机会。修改su或者passwd程序就可以达到root的目的。

二、漏洞危害

低权限用户利用脏牛漏洞可以在众多Linux系统上实现本地提权

三、影响范围

(如果你的内核版本低于以下版本,则还存在此漏洞):

  • CentOS7.2——3.10.0-327-测试成功,高于其版本不受影响

  • CentOS6.8——2.6.32-642-测试成功,高于其版本不受影响

Centos7/RHEL7     3.10.0-327.36.3.el7     
Cetnos6/RHEL6     2.6.32-642.6.2.el6      
Ubuntu 16.10      4.8.0-26.28
Ubuntu 16.04      4.4.0-45.66
Ubuntu 14.04      3.13.0-100.147
Debian 8          3.16.36-1+deb8u2
Debian 7          3.2.82-1

四、漏洞复现

  • 创建虚拟机环境,此处测试使用:CentOS7.2
  • 本地编译脏牛脚本
    • 下载脚本:git clone https://github.com/firefart/dirtycow.git
    • 编译脚本:gcc -pthread dirty.c -o dirty -lcrypt
    • 使用脚本:./dirty
    • 已编译完成:https://tragic52.github.io/Attack/dirty
  • 基本使用,创建具备管理权限的账户firefart

image-20230402160158615

  • 切换到新的账户,并且为先前的账户添加管理权限,最后再恢复备份文件

image-20230402161104741

  • 为用户添加管理权限

image-20230402160642119

五、效果总结

  • 通过脏牛脚本,成功在Linux系统上由低权限用户变成了高权限用户。由此,攻击者便可以进行更多的操作~~~

六、补充资料