为什么这个漏洞叫脏牛(Dirty COW)漏洞?

admin 2022年5月23日10:58:39评论196 views字数 1170阅读3分54秒阅读模式

点击蓝字

NEWS

关注我们


Dirty COW


Table

of

contents


/// 01 ///



Linux内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射。

一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的写权限,有可能进一步导致提权漏洞


漏洞分析


Table

of

contents


/// 02 ///



Linux内核的内存子系统在处理写入复制(copy-on-write, COW)时产生了竞争条件(race condition)。恶意用户可利用此漏洞,来获取高权限,对只读内存映射进行写访问。利用这一漏洞,攻击者可在其目标系统提升权限,甚至可能获得root权限。


如何进行漏洞攻击复现







Table

of

contents


/// 03 ///



首先搭建环境Redhat7,Linux内核版本 3.10.0。

为什么这个漏洞叫脏牛(Dirty COW)漏洞?

将 exp2 上传到目标机器,解压,进入解压目录。执行make后生成可执行文件dcow,执行  ./dcow -s ,如果成功的话,会返回一个root权限的shell,如下图。

为什么这个漏洞叫脏牛(Dirty COW)漏洞?

验证漏洞:

执行以下命令进行将 bmjoker 字符串保存到 foo 文件内,并进行文件权限的设置::

echo bmjoker > foochmod 000 foo

为什么这个漏洞叫脏牛(Dirty COW)漏洞?

可以看出此时foo文件为0权限,

接下来就是执行poc,来越权修改文件内容:

为什么这个漏洞叫脏牛(Dirty COW)漏洞?

执行失败的原因是:

如果测试写入文件,没有r也就是读取权限,就会导致POC执行失败。这就是这个漏洞的局限性

因为该漏洞是利用系统处理写时拷贝(Copy-on-Write) 时存在条件竞争漏洞,越权写入文件内容。

我们给予它可读权限:

chmod 0404 foo

为什么这个漏洞叫脏牛(Dirty COW)漏洞?

0404代表所有用户默认情况下对该文件只有读取权限,无法修改删除。

准备测试POC(Copt-on-Write)越权写文件效果。

执行以下命令测试漏洞:

./dirtyc0w foo hacked by bmjoker

利用dirtyc0w漏洞已经编译过的文件来写入值hacked by bmjoker

下面执行该POC,POC执行完成约一分钟,根据返回信息已经执行成功:

为什么这个漏洞叫脏牛(Dirty COW)漏洞?

发现内容已经被覆盖,不过大小需要跟源文件差不多...

根据POC执行后的结果,判断该系统存在 CVE-2016-5195(脏牛)内核提权漏洞。

既然可以越权修改系统文件,这样的话,只要修改 /etc/passwd 把当前用户的uid改成0就可以作为root登录

为什么这个漏洞叫脏牛(Dirty COW)漏洞?

用到命令:

./dirtyc0w/etc/passwd ichunqiu:x:0:0::/home/ichunqiu:/bin/bash

这样的话我们以当前ichunqiu用户身份登陆,就是root权限,提权成功


-END-


为什么这个漏洞叫脏牛(Dirty COW)漏洞?
为什么这个漏洞叫脏牛(Dirty COW)漏洞?

XIUMIUS

为什么这个漏洞叫脏牛(Dirty COW)漏洞?

扫码|关注我们

微信号|YC-SecurityLab




原文始发于微信公众号(YC安全实验室):为什么这个漏洞叫脏牛(Dirty COW)漏洞?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月23日10:58:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   为什么这个漏洞叫脏牛(Dirty COW)漏洞?https://cn-sec.com/archives/1039207.html

发表评论

匿名网友 填写信息