SEED-lab:Dirty Cow
本文最后更新于:2025年6月25日 上午
脏牛漏洞介绍
脏牛,也即dirty COW(copy on write)
Dirty COW 漏洞属于竞态条件漏洞,自2007年9月以来一直存在于 Linux 内核中,并于2016年10月被发现,该漏洞影响所有基于 Linux 的操作系统,包括 Android,其后果非常严重: 攻击者可以通过利用该漏洞获得root特权
该漏洞存在于 Linux 内核中的写时拷贝代码中。通过利用这个漏洞,攻击者可以修改任何受保护的文件,即使这些文件只对他们可读
原理
攻击dummy file
创建dummy file,并写入内容111111222222333333
1 |
|
我们的目标是将“222222”替换为“ * * * * * *”
攻击代码:
1 |
|
简要分析一下上面的代码逻辑:
编译并运行
1 |
|
发现文件内容已经被更改
攻击/etc/passwd 以获得特权
/etc/passwd
文件包含七个冒号分隔的字段,第三个字段指定分配给用户的(UID)值,任何UID为0的用户都被系统视为 root 用户,此阶段我们的任务是利用脏牛漏洞来实现提权,也即是将第三个字段从1001改为0000
增加Charlie用户
1 |
|
攻击代码:
1 |
|
编译、运行
1 |
|
然后我们可以查看/etc/passwd文件中关于Charlie的东西:
1 |
|
第三个条目已经成功修改为了0000
1 |
|
参考
https://raw.githubusercontent.com/dirtycow/dirtycow.github.io/master/dirtyc0w.c
SEED-lab:Dirty Cow
http://gls.show/p/495b96e/