利用dirty cow(脏牛)漏洞的提权尝试

0x01 描述:

漏洞编号:CVE-2016-5195
漏洞名称:脏牛(Dirty COW)
漏洞危害:低权限用户利用该漏洞技术可以在全版本Linux系统上实现本地提权
影响范围:Linux内核>=2.6.22(2007年发行)开始就受影响了,直到2016年10月18日才修复

0x02 原理:

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.)

竞争条件,指的是任务执行顺序异常,可导致应用崩溃,或令攻击者有机可乘,进一步执行其他代码。利用这一漏洞,攻击者可在其目标系统提升权限,甚至可能获得root权限。

0x03 测试

官方放出的EXP
centos6、7提权均失败了。连官方给的最基本的写入也失败了!

提权ubuntu就比较顺利了。首先是官方的写入测试成功了。
然后尝试了两个提权为root的exp。过程如下:
EXP1:dirtycow

成功。记得恢复/etc/passwd。

EXP2:CVE-2016-5195

这个速度很快。

0x04 总结

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

./dirtyc0w /etc/passwd  root:fiw.I6FqpfXW.:0:0:pwned:/root:/bin/bash