VQXxywiGnDweBozCAvtpqssdwHMTKohX.jpg

首先在使用dirty cow需要能够使用反弹shell连接到目标机之后才能继续进行

1、在能使用反弹shell的基础上,我们要先查询目

标系统的内核版本,可以用命令

cat /proc/version 来查看内核版本信息,也可以使用 uname -a 查看更详细的系统版本和内核信息,确保后续查找的漏洞版本匹配。

查看结果如下:

kEFyzlIwEWDfdETlkwFQsVKTWLeFqbjR.png

Linux version 6.8.0-94-generic (buildd@lcy02-amd64-065) (x86_64-linux-gnu-gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #96-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 9 20:36:55 UTC 2026

由上面的例子我们可以看到,作为演示使用的系统,我们可以知道其中

系统:ubuntu2404

内核版本:Linux version 6.8.0-94-generic

构建者与构建主机:buildd@lcy02-amd64-065

以上信息是我们可以看到的。

gUDCASXpftXvGhHJsDqCmbCmhFibfGWn.jpg

2、在接下来的步骤中我们可以在攻击机(Kali)上使用 searchsploit 工具搜索对应系统版本和内核版本的漏洞。例如 searchsploit 内核版本号 加上 dirtyprivilege escalation 等关键词,查找对应的漏洞编号,比如脏牛漏洞通常对应 40839.c40847.c 等。

iNRfNTwFxHnYRtmZDhCMKXIUrBaNpGFY.png

就如同上文所说,其中的40839.c根据校对之后发现是我们可以用的,并且也正好是dirtycow可以使用的,所以我们就选择这个。

3、找到合适的漏洞利用代码后,用 searchsploit -m 漏洞编号 将其下载到本地,或者从互联网上手动下载对应的 .c .cpp 文件。然后用 gcc 进行编译,如果是 C 文件一般用 gcc 漏洞文件.c -o 输出文件名 -lpthread,注意根据漏洞利用的要求添加必要的编译参数,避免编译出错。

4、编译成功后,在 Kali 上启动一个 HTTP 服务,比如使用 python3 -m http.server 80,然后在目标机上通过 wget curl 下载编译好的文件。如果目标机无法直接连接外网,也可以通过其他方式上传,比如使用 FTP、SCP 或者将文件 base64 编码后手动粘贴过去。

gFvTGVtnkfABQfWSbYUqdcLTaFyFJvOj.png

5、上传成功后,在反弹 shell 中给文件赋予执行权限,命令为 chmod +x 文件名,然后执行该文件。一般脏牛利用格式为 ./文件名 新密码,执行后会自动创建一个新的 root 权限用户,或者覆盖当前用户的密码。

whsGEWuIejvmKPYCSBbeoRcxLGOrnLNd.png

6、等待程序运行完成,提示成功后,就可以使用 su 切换到你创建的用户,输入刚才设置的密码,即可获得 root 权限。

HdwsiJcgKXZRWrsnoQHzSFSKdVkXlQVR.png

切换用户

使用id验证一下权限

RZWbkHYNBviYSDjscliinWdYipQWYKwc.png

发现已经具备root权限,uid为0

这样我们就成功的完成了提权操作啦!

HhLFmDcVFCqfjJaSHasGjUsgUtYDtkgD.jpg