跳转至

weak_password(Weblogic弱密码)

漏洞描述

weblogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器

在weblogic搭建好之后没有修改进入后台的密码导致弱口令登录获得webshell

影响版本

与Weblogic版本无关,只与配置项有关

环境配置

  • Vulhub项目
  • Docker-compose启动

漏洞复现

Text Only
http://192.168.40.129:7001/console

Weblogic常见弱口令:

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

Weblogic弱口令集:https://cirt.net/passwords?criteria=weblogic

由于Weblogic会先进行跳转,这里选择跟随

爆破出为:weblogic:Oracle@123

之后可以Weblogic部署War包,得到shell,参考文章:https://www.cnblogs.com/DFX339/p/8515200.html

读取文件破解Weblogic密码

Question

上面我们介绍Weblogic弱密码时的渗透方式,那么如果Weblogic不是弱密码,又该如何利用呢?

前提条件:要有一个文件读取漏洞

  • weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可;

这两个文件均位于base_domain下,名为SerializedSystemIni.dat和config.xml

  • SerializedSystemIni.dat是一个二进制文件,所以一定要用burpsuite来读取,用浏览器直接下载可能引入一些干扰字符。在burp里选中读取到的那一串乱码,这就是密钥,右键copy to file就可以保存成一个文件
Text Only
http://192.168.40.129:7001/hello/file.jsp?path=/etc/passwd

Vulhub官方设置了文件读取漏洞

右键下载保存为二进制文件(dat格式)

Text Only
http://192.168.40.129:7001/hello/file.jsp?path=config/config.xml

找到<node-manager-password-encrypted>对应的值,即为管理员密码

Text Only
{AES}yvGnizbUS0lga6iPA5LkrQdImFiS/DJ8Lw/yeE7Dt0k=

解密工具:https://github.com/TideSec/Decrypt_Weblogic_Password

漏洞原理

Weblogic密文解密

weblogic目前市面上有两种加密方式3DES和AES,这两种加密都属于对称加密,所以只要有密钥就能解出密文。

先来简单了解下3DES和AES:

  • DES:Data Encryption Standard(数据加密标准)是一种经典的对称算法,其数据分组长度为64位,使用的密钥为64位,有效密钥长度为56位(有8位用于奇偶校验)。由IBM公司在70年代开,于1976年11月被美国国密局采用。该技术算法公开,在各行业有着广泛的应用。
  • 3DES:由于计算机能力的飞速发展,DES的56位密钥长度显得有些太短了,已经有可能通过暴力穷举的方式对密文进行破译,于是有了3DES。3DES相当于对统一数据块采用3次DES,3次DES使用的密钥如果完全不同,则密钥长度可以达到168位,大大延长了被暴力破解的时间。
  • AES:Advanced Encryption Standard(高级数据加密标准),NIST(美国国家标准和技术协会)挑选出的下一代加密算法,能够抵御已知的针对 DES 算法的所有攻击,而且相比于 3DES, 它的加密效率高,安全性能高。

对加密算法感兴趣的可以看看《图解密码技术》,讲的比较通俗易懂。

其实,不懂算法也没任何关系,因为我们可以通过weblogic版本号来区分加密方式。weblogic在旧版本的加密中使用的是3DES,而在WebLogic 11gR1之后的版本中就开始使用AES进行加密。有些人对weblogic版本不太清楚,总觉得10.3.6是11g之前的老版本,其实10.3.6就是属于11g的,这个只能怪oracle发布的版本号有点乱。

大家看下这个表就能轻易看懂版本号了。

Text Only
WebLogic Server 12cR2(12.2.1.4)-2019年9月27日
WebLogic Server 12cR2(12.2.1.3)-2017年8月30日
WebLogic Server 12cR2(12.2.1.2)-2016年10月19日
WebLogic Server 12cR2(12.2.1.1)-2016年6月21日
WebLogic Server 12cR2(12.2.1.0)-2015年10月23日
WebLogic Server 12cR1(12.1.3)-2014年6月26日
WebLogic Server 12cR1(12.1.2)-2013年7月11日
WebLogic Server 12cR1(12.1.1)-2011年12月1日
WebLogic Server 11gR1 PS5 (10.3.6) - 2012年2月23日
WebLogic Server 11gR1 PS4 (10.3.5) - 2011年5月6日
WebLogic Server 11gR1 PS3 (10.3.4) - 2011年1月15日
WebLogic Server 11gR1 PS2 (10.3.3) - 2010年四月
WebLogic Server 11gR1 PS1 (10.3.2) - 2009年11月

----AES和3DES加密方式分割线,上面的就是AES加密,下面的就是3DES加密----

Text Only
WebLogic Server 11g (10.3.1) - 2009年7月
WebLogic Server 10.3 - 2008年8月
WebLogic Server 10.0 - 2007年3月
WebLogic Server 9.2.4 - 2010年7月22日
WebLogic Server 9.1
WebLogic Server 9.0 - 【Diablo】2006年11月
WebLogic Server 8.1-2003年7月发行到2004年8月为成熟版本,也已不再支持
WebLogic Server 7.0-2002年6月发行但是BEA公司推荐放弃使用。
WebLogic Server 6.1 - 从November 2006不再支持
WebLogic Server 6.0 - 2001年3月,从April 2003不再支持
WebLogic Server 5.1 -(代码名:Denali)第一个支持热部署技术的版本
WebLogic Server 4.0 - 1999年
WebLogic Tengah 3.1 - 1998年6月
WebLogic Tengah 3.0.1 - 1998年3月
WebLogic Tengah 3.0 - 1998年1月
WebLogic Tengah - 1997年11月

你说看不到版本号?也没问题,其实看下配置文件里的连接字符串,一看就能看出使用的是什么加密方式。因为在每个加密字符串前都标识了{AES}或{3DES}。

比如AES一般是这样的{AES}ObwFrA5PSOW+/7+vgtZpxk/1Esw81ukoknfH4QUYjWY=

3DES一般是这样的{3DES}JMRazF/vClP1WAgy1czd2Q==

在了解了weblogic加密方式后,我们开始对其解密。

文中涉及的所有工具和脚本都打包放在了gayhub上,方便大家下载

Text Only
https://github.com/TideSec/Decrypt_Weblogic_Password

参考文章:https://www.freebuf.com/articles/web/220147.html

修复建议

  • 不要使用弱密码,保证密码复杂度