实验环境

攻击机(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:

文章作者: z0sen
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 z0sen's Blog
Walkthrough Linux
喜欢就支持一下吧