靶机下载地址
信息收集
主机探测
sudo nmap -sn 10.10.10.0/24
得到目标靶机的IP地址10.10.10.18
初步扫描
sudo nmap -sT --min-rate 10000 -p- 10.10.10.18
可知22,80端口开放
详细信息扫描
sudo nmap -sT -sC -sV -O -p 22,80 10.10.10.18
可知
22/tcp open ssh OpenSSH 7.4p1 Debian 10+deb9u6 (protocol 2.0)
80/tcp open http Apache httpd 2.4.25
| /core/ /profiles/ /README.txt /web.config /admin/
| /comment/reply/ /filter/tips /node/add/ /search/ /user/register/
| /user/password/ /user/login/ /user/logout/ /index.php/admin/
|_/index.php/comment/reply/
Linux 3.X|4.X
漏洞脚本扫描
sudo nmap -sT --script=vuln -p 22,80 10.10.10.18
没有发现可利用的漏洞
WEB指纹识别
访问80端口,得知使用CMS为Drupal
但是经过目录扫描和版本探测,只能知道是Drupal8,没办法知道详细版本信息。
并且提示不能爆破,确实是无法爆破出来任何用户,也没有其它可利用漏洞,但是发现可以信息@DC7USER
渗透流程
获取SSH登录密码并登录
通过网上搜索,发现疑似账户密码的信息
$username = "dc7user";
$password = "MdR3xOgB7#dW";
成功登录到SSH,并且提示有new email
drupal后台登录
查看邮件,发现
一个以root权限定期执行的备份任务,执行文件/opt/scripts/backups.sh
查看/opt/scripts/backups.sh文件内容和权限,发现www-data用户用户该文件的写入权,那大概率是要获取后台账户和密码登录了。并且使用了命令drush来备份数据库
drush sql-dump --result-file=/home/dc7user/backups/website.sql
drush即drupal shell,用于管理和操作drupal站点,可以用来修改管理员密码。
查看命令权限,发现所有人都有执行权限。
使用drush命令修改后台管理员admin的密码
drush user-password admin --password=123
成功登录后台
获取www-data用户反弹shell
尝试在content写入新的内容,但是发现没有PHP代码模块,观察发现可以通过extend导入 PHP模块
下载PHP插件包并安装,注意你需要在安装成功后启用该插件。
写入反弹shell代码,成功获取反弹shell,我这里使用的是kali自带的reverse_shell
向/opt/scripts/backups.sh写入另一段反弹shell,攻击机监听,最后成功获取root权限,拿到flag