2011-02-28 如何破解WebLogic管理密码?

作者: BeanSoft@126.com 网站: http://www.beansoft.biz/ 日期: 2011-02-28

有时候, 也许管理员会忘记WebLogic域的管理用户名和密码, 那么如何恢复这些密码呢? 在本文将会演示如何通过一个简单的Java程序在几秒内恢复遗忘的用户名和密码, 适用于WebLogic Server版本8,9,10,11.

步骤一: 创建一个单独的目录, 例如 C:\DecryptionDemo.

步骤二: 创建一个Java文件Decrypt.java, 代码内容如下:

import java.io.PrintStream; import weblogic.security.internal.*; import weblogic.security.internal.encryption.*; public class Decrypt { static EncryptionService es = null; static ClearOrEncryptedService ces = null; public static void main(String args[]) { String s = null; if(args.length == ) s = ServerAuthenticate.promptValue("Password: ", false); else if(args.length == 1) s = args[]; else System.err.println("Usage: java Decrypt [ password ]"); es = SerializedSystemIni.getExistingEncryptionService(); if(es == null) { System.err.println("Unable to initialize encryption service"); return; } ces = new ClearOrEncryptedService(es); if(s != null) System.out.println("\nDecrypted Password is:"+ces.decrypt(s)); } }

</div>

步骤三: 运行相关命令解密位于D:\bea\user_projects\domains\1034\servers\AdminServer\security\boot.properties文件中的字符串:

call D:\bea\wlserver_10.3\server\bin\setWLSEnv.cmd

copy D:\bea\user_projects\domains\1034\security\SerializedSystemIni.dat .\

javac Decrypt.java

java -cp .;%CLASSPATH% Decrypt {AES}QxP9vMIXw7g39iRfGNlZ76TOoHq9bLhwnTjlBWopGBw=

pause

此时可以看到密码原文为 weblogic1 . 效果如下图所示:

安全隐患:

如果任何人知道您的domain的名称, 那么他就可以创建一个相同名称的domain, 来获得文件SerializedSystemIni.datboot.properties, 然后就可以破解到原始的密码明文, 也许这是一个安全漏洞!

本文内容改编自 http://middlewaremagic.com/weblogic/?p=5806.

转载请注明:WebLogic Android 博客 » 如何破解WebLogic管理密码?