MATRIX-BREAKOUT: 2 MORPHEUS
实验环境
攻击机(kali):192.168.146.128
靶机下载地址:https://download.vulnhub.com/matrix-breakout/matrix-breakout-2-morpheus.ova
kali 与靶机为同种网络模式(此处均为 NAT 模式)
信息搜集
主机探测
使用 arp-scan 进行主机探测:sudo arp-scan -l
探测结果得出靶机 IP 为192.168.146.131
端口扫描
使用 nmap 进行全端口扫描:nmap -A 192.168.146.131 -p-
发现主机开放了 22(ssh)、80(http)、81(http)
访问 80 端口:
翻译:
网站有一个黑客帝国里的角色 Trinity,让我们调查电脑,并提示我们 cypher 把我们锁在 ssh 外了。
访问 81 端口,发现需要登录:
目录扫描
使用多个字典进行扫描之后发现/usr/share/wordlists/dirbuster/directory-list-2.3-small.txt
可以扫出存在/graffiti.txt
与/graffiti.php
这两个特殊页:
gobuster dir -u http://192.168.146.130/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x php,html,txt
访问/graffiti.php
并尝试输入任意内容提交:
测试发现提交的文本信息会显示在当前页面上,且访问/graffiti.txt
发现提交的信息也被写入到了 txt 文件中。
漏洞利用
任意文件写入
既然存在写入操作,那么我们可以到 burp 抓包查看:
发现是通过 message
指定写入内容,通过 file
指定写入的文件名,那我们就可以直接写入一个 webshell 使用蚁剑等 webshell 管理工具进行连接,这里我使用的蚁剑(注意将空格替换为 +
):
蚁剑连接之后对主机各个文件夹进行查看,在根目录下发现FLAG.txt
文件,打开查看:
此文件内容要我们找出 Cypher 的密码,并告诉我们 Agent Smith 知道这个密码在哪里,另外让我们从 80 端口的 web 服务上下载 /.cypher-neo.png
文件并从中找出一个 flag。
对图片尝试解密未发现 flag 值,在 /var/nginx/html/.htpasswd
中找到加密的 Cypher 密码:
将其写入文本文件中后使用 john 尝试解密:
john p.txt --format=md5crypt-long
最后解密无果。
linpeas辅助提权
先提权,通过蚁剑上传 linpeas 到/tmp
文件夹:
添加可执行权限后运行此脚本并将结果输出到 result.txt
文件,等待片刻后查看输出内容:
chmod +x linpeas.sh
./linpeas.sh > result.txt
通过蚁剑将 result.txt
下载到本地后在终端中查看:
在 CVEs Check
部分发现存在两个 CVE:CVE-2022-0847、CVE-2022-2588
在 github 找到了这两个漏洞的 exp:
考虑到后续提权操作需要在交互式 shell 中进行,通过蚁剑再写入一个 php 反弹 nc 的 webshell:
https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php
修改用于接收反弹 shell 的主机 IP 和端口号并保存:
在浏览器访问此 shell 即可反弹到开启了 nc 监听的主机,并使用 Python 建立交互式 shell:
python3 -c "import pty;pty.spawn('/bin/bash')"
接下来通过蚁剑上传 exp 并赋予可执行权限,然后在终端反弹回来的 shell 中运行即可,推荐使用 https://github.com/Markakd/CVE-2022-2588
:
【!】此 exp 运行后会添加一个 user 用户其密码也是 user,具有 root 权限。
提权之后查看各个用户文件夹,可在 /home/cypher
和 /root
文件夹下找到 flag: