Vulnhub|Lampiao Getshell到脏牛提权
前言
vulnhub中的一个靶场,使用drupal cms,涉及CVE-2018-7600RCE和脏牛提权。
靶机下载地址:https://mega.nz/#!aG4AAaDB!CBLRRYQsAhTOyPJqyjC0Blr-weMH9QMdYbPfMj0LGeM
下载完后vm读取
虚拟网络编辑器选择物理机的网卡
虚拟机网卡选择桥接
然后开启虚拟机
0x01信息收集
主机发现
使用nmap局域网探测
1 | nmap -sP 192.168.43.0/24 |
其中192.168.43.38是我物理机,192.168.43.174是我手机
锁定目标190
扫描全端口
1 | nmap -p 1-65535 --open 192.168.43.190 |
探测到22,80,1898三个端口
一般而言,爆破ssh会在目标服务器产生大量日志,不是明智的选择。虽然是靶机,但是不到无计可施那一步我也不愿去爆破ssh。
考虑从web入手
目录扫描
80是一个没有意义的页面
访问1898
是一个登陆页面,并且还得知网站cms是Drupal。
目录扫描工具有很多,这里用github上的开源项目dirsearch扫一下目录
1 | python dirsearch.py -u http://192.168.43.190:1898/ -e php |
有install.php
能否覆盖安装?
操作发现没有权限
Includes是一个目录遍历
但是只能遍历当前目录
翻了翻database,没什么有用的信息
Changelog一般是更新日志
在里边发现drupal具体版本
0x02漏洞利用
获取webshell
其他目录没有发现有用的信息
随即去搜了一下这个cms的洞,发现历史有rce漏洞
在kali中搜索
还不少,挑几个比较新的试试
先试一下2019年的
show options填写好参数后 run
发现不存在这个漏洞
返回试另一个2018年的
参数需要设置目标IP和端口,target用默认的先run一下
得到shell
发现只有web权限,看来有可能需要提权
翻一下目录发现有一张图
下载到本地看一下
发现是一张二维码
扫描显示Try harger! Muahuahuahua,没什么用。
继续翻,不过msf的shell不是交互shell,使用起来不是很方便
确认目标机有python后
我执行shell进入命令行使用python的pty模块创建一个标准终端
1 | python -c 'import pty; pty.spawn("/bin/bash")' |
找配置文件,中间绕了很多弯路,但最终还是找到了 settings.php
得到数据库账号密码
开始操作
翻drupal库的表
其中有users表
查看其中内容
有tiago用户,但是密码没有解出来
一般密码都有可能通用,既然数据库密码有了,那么很有可能这个也是用户tiago的ssh密码
获取普通用户权限
尝试使用账号tiago密码Virgulino登录
成功登录
但是权限不够
0x03提权
1、sudo误配
既然已经拿到了低权限账号的密码
那么我首先尝试sudo误配提权
它的成功率非常高,不仅对系统完全无损,并且不会像内核提权那样可能导致系统挂起。
利用方法为:查看home/用户目录下是否有.sudo_as_admin_successful文件,若有则可以输入当前低权账号的密码直接 sudo su 切换为 root 用户。
切换到/home/tiago目录下
没有此文件
没关系,尝试其他提权手法。
查看目标机内核版本
1 | uname -a |
比较老了,先看一下能利用的提权exp
使用msf传linux-exploit-suggester-2到靶机执行
但是此时并没有执行权限
赋权
1 | chmod 777 linux-exploit-suggester-2.pl |
执行
看了一下最后一个链接涵盖此内核版本
2、CVE-2017-16995
选择CVE-2017-16995
下载https://github.com/iBearcat/CVE-2017-16995
上传、赋权、执行
一顿操作,最后失败。貌似脚本问题。
3、脏牛提权
从linux-exploit-suggester-2的执行结果中看到提权漏洞涵盖脏牛
尝试脏牛提权
kali自带脏牛exp,使用searchsploit dirty搜索
上传.cpp到目标机编辑
1 | g++ -Wall -pedantic -O2 -std=c++11 -pthread -o 40847 40847.cpp -lutil |
ssh端成功执行
得到root密码dirtyCowFun
ssh切换root重新登录
得到flag。