红队渗透项目vulnhub-MinUv1打靶
环境
靶机项目地址https://www.vulnhub.com/entry/minu-1,235/
使用vm导入靶机需要关掉网卡2,再重新dhclinent
靶机:172.16.17.144
攻击机kali:172.16.17.140
目标
拿到root下的flag
信息收集
nmap收集
1 | nmap -A -sV -sS -T5 172.16.17.144 |
中间件为Apache2.4.27,服务器为ubuntu
目录爆破
打开发现只有一个apache首页,丢到dirb爆破
几乎都是403,应该是有限制,要么是脚本要么是waf,继续加大力度爆破
发现一个test.php
Exploit
命令执行
发现关键字,一般file=xx可能会存在命令执行,文件包含,文件下载,文件读取等漏洞
尝试读取文件403,应该是存在waf
- 尝试命令执行,成功回显
ls,cat等命令被拦截
waf绕过
手工fuzz发现使用?或者*可以绕过waf,同样会被解析
1 | 原payload /bin/cat /ect/passwd |
尝试写马失败
1 | 原payload |
在本地kali测试成功,但是在靶机上失败,不知道原因可能被waf拦截了
写马不行那就试试nc反弹
反弹shell
本地监听5555端口
1 | 原payload |
需要注意的是,base64编码过后会出现=或者==,会被waf拦截,可以末尾添加空格
用python反弹一个交互式shell
1 | python3 -c 'import pty; pty.spawn("/bin/bash")' |
这里要注意的是,要根据靶机python变量来,可能是python可能是python3
找到线索
JWT
一开始以为是编码或者加密,没解出来,仔细看发现,是以.
分割的三段字符串,标准的JWT
1 | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.pn55j1CFpcLjvReaqyJr0BPEMYUsBdoDxEP Ft9cwg |
JWT在线解析 https://jwt.io/#debugger-io
前面两部分是base64编码,最后一部分需要秘钥
- 使用工具爆破
项目地址 https://github.com/brendan-rius/c-jwt-cracker1
2
3
4
5
6
7cd c-jwt-cracker-master
apt-get install libssl-dev
make
./jwtcrack key
等待几分钟爆出密码,根据最开始的提示应该是root密码
getflag
登录root