前言:
vulnhub里面的一个靶场,涉及到drupal7 cms远程代码执行漏洞(CVE-2018-7600)和脏牛提权。
靶机下载地址:https://mega.nz/#!aG4AAaDB!CBLRRYQsAhTOyPJqyjC0Blr-weMH9QMdYbPfMj0LGeM
0x01信息收集
第一步打开虚拟机要输入用户密码才能登入,这样的话也不知道ip地址;
那么我们先要获取它的ip,由于在一个内网,可以使用nmap进行扫描,我虚拟机设置的是NAT模式,那么看看NAT模式的网段
是192.168.106.0/24的段,那么使用nmap进行C段扫描
明显ip为192.168.106.130,接着全端口扫描一下
访问80端口发现一个没用的静态页面,再访问1898端口,出现web页面
访问robots.txt
发现很多txt和php目录泄露,直接可以读取txt文件
查看源码,任意点一个图片链接
又是一个目录泄露,目录下的任意文件读取,但是发现只泄露的这个目录,这下面又全是css,js,png文件,先放在一边吧。
在漏扫和目录扫描之前,我先用谷歌插件wappalyzer知道了这个web是用drupal7 cms写的
同时还知道了操作系统,web服务器,后台语言。
在看看刚刚泄露出来的txt文件,发现一个文件里面也爆出了cms的版本,还更具体
这么多暗示,怕不是就是利用这个drupal7 cms的漏洞
百度一下drupal7 cms的漏洞,发现是存在一个远程代码执行漏洞的,那么去msf中查一查这个exp,并且利用。
0x02 drupal7 cms远程代码执行漏洞(CVE-2018-7600)利用
进入msf,然后search搜索CVE-2018-7600
然后一些列的常规操作,先use,再show option,再set,最后run
这里设置一下ip和端口就可以了,端口是1898
show targets发现有很多版本,不知道选哪一个,先默认吧,直接run
直接反弹了shell,发现是www-data权限,这个权限是相当于访客权限,getsystem不行。
如果不熟悉meterpreter命令交互,那么可以在根目录下写入一句话木马,然后,利用菜刀连接。
我们查看网站根目录下面的/sites/default/settings.php文件,看其设置的配置信息
我们看到了敏感信息,数据库的用户和密码
我们用mysql登录进去查一下这个数据库的user表
先从meterpreter进入shell交互命令,也就是目标机系统的操作命令。
但是mysql好像进不去,这个shell是简易版的
然后参照别人的方式用python获取标准shell
python -c 'import pty; pty.spawn("/bin/bash")'
成功进来了,查看users的用户和密码两个字段。
第一个用户就是tiago,密码拿去在线md5一下,解密不了。
最后试来试去,想到了还有个ssh没用到,这会不会是ssh的登录账号和密码,再去看看那个setting.php文件,发现里面就Virgulino一个密码,那么想到用户应该是用的这一个通用密码。
试了试,发现登录上去了,但是权限还不是system的。
0x03脏牛提权
查看一下内核版本,发现是ubuntu 16年的
在网上去搜索一下,试了很多17年的,但是不行,再看看,发现一个16年内核版本的通杀提权,叫做脏牛提权。
去搜索一下这个漏洞,这个提权方法叫做脏牛提权,那么他的提权脚本关键字是dirty。
再kali里面搜索,或者直接用github上面的脚本,然后复制到目标机中。
网上搜索得知是这一个cpp的脚本。
在目标机上创建一个40847.cpp脚本,然后将kali里面的脏牛cpp的脚本复制过来。
然后进行编译运行:
g++ -Wall -pedantic -O2 -std=c++ -pthread -o .cpp -lutil
执行成功,root用户需要用dirtyCowFun密码登录服务器。
ssh重新连接,用户为root,密码为dirtyCowFun
成功提权获得flag。