Skip to content

Latest commit

 

History

History
99 lines (54 loc) · 4.11 KB

DirtyCow 脏牛提权 CVE-2016-5195.md

File metadata and controls

99 lines (54 loc) · 4.11 KB

DirtyCow 脏牛提权-CVE-2016-5195

漏洞原理

Linux内核的内存子系统在处理写入时复制(copy-on-write, COW)时产生了竞争条件(race condition)。恶意用户可利用此漏洞,来获取高权限,对只读内存映射进行写访问。(A race condition was found in the way the Linux kernel’s memory subsystem handled the copy-on-write (COW) breakage of private read-only memory mappings.)

竞争条件,指的是任务执行顺序异常,可导致应用崩溃,或令攻击者有机可乘,进一步执行其他代码。利用这一漏洞

漏洞影响范围

Linux kernel >= 2.6.22(2007年发行,到2016年10月18日才修复)

先决条件

一个 CVE-2016-5195 易受攻击的系统

该程序已成功用于:

RHEL7 Linux x86_64 RHEL4(4.4.7-16) Debian 7(“wheel”) Ubuntu 14.04.1 LTS Ubuntu 14.04.5 LTS Ubuntu 16.04.1 LTS Ubuntu 16.10 Linux Mint 17.2 并编译:

铿锵版本 4.0.0; gcc 版本 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12) gcc 版本 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.1) gcc 版本 4.8.5 20150623(红帽 4.8.5-4)(GCC); gcc 版本 4.8.4 (Ubuntu 4.8.4); gcc 版本 4.8.2 (Ubuntu 4.8.2-19ubuntu1) gcc 版本 4.7.2 (Debian 4.7.2-5); gcc 版本 4.4.7(带有“旧”版本)

漏洞危害

低权限用户利用该漏洞可以再众多linux系统上实现本地提权

漏洞复现

方法一

本地环境:Ubuntu 14.04.4 LTS

查看系统版本以及gcc版本是否在漏洞范围内

gcc -v

在这里插入图片描述

下载EXP:https://github.com/gbonacini/CVE-2016-5195

在这里插入图片描述

在这里插入图片描述

使用 g++ -Wall -PEDANTIC -O2 -std=c++11 -pthread -o dcow dcow.cpp -lutil 或者直接输入 make 进行编译成可执行文件

在这里插入图片描述

进行执行

./dcow -s

在这里插入图片描述

查看当前用户 id / whoami

在这里插入图片描述

方法二

下载exphttps://github.com/FireFart/dirtycow

在这里插入图片描述

使用如下命令进行编译 gcc -pthread dirty.c -o exp -lcrypt

在这里插入图片描述

然后执行 ./exp 或者 ./exp new_password

在这里插入图片描述

执行完成,查看当前用户权限

在这里插入图片描述

原理是利用exp获取了写入权限后,对/etc/passwd进行备份,然后对/etc/passwd进行重写,修改账户权限。优点方便快速。缺点受限与环境影响。某些环境下会失败。如果失败还是使用官方放出的exp,对/etc/passwd进行写入,写入前一定要记得先备份!