WAS/WebLogic

[Tips] 웹로직 패스워드 복호화(Decrypting)

투칼론 2017. 9. 4. 20:53
반응형

웹로직 관리자 계정과 패스워드를 분실한 경우에 새로 초기화 후 생성해도 되지만, 기존 암호화된 파일이 존재한다면 다음과 같이 패스워드를 복호화 할 수 있다.

데이터 소스 설정에 암호화되어 있는 패스워드는 아래 스크립트로 복호화(decrypt)가 되는데, 웹콘솔 관리자 계정과 암호(boot.properties 파일에 암호화되어 있음) 는 복호화가 되지 않는다.


예) decrypt.py 파일 - 복호화하는 스크립트

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 decryptWLSPwd.py  "

        print " Usage 2: decryptWLSPwd.cmd "

        print "Example:"

        print " java weblogic.WLST decryptWLSPwd.py C:\Agile\Agile933\agileDomain {AES}JhaKwt4vUoZ0Pz2gWTvMBx1laJXcYfFlMtlBIiOVmAs="

        print " decryptWLSPwd.cmd {AES}JhaKwt4vUoZ0Pz2gWTvMBx1laJXcYfFlMtlBIiOVmAs="

except:

    print "Exception: ", sys.exc_info()[0]

    dumpStack()

    raise


[실행 예시]

root@kali:~/wls12130/user_projects/domains/mydomain# java weblogic.WLST decrypt.py . "{AES}OjkNNBWD9XEG6YM36TpP+R/Q1f9mPwKIEmHxwqO3YNQ="


Initializing WebLogic Scripting Tool (WLST) ...


Welcome to WebLogic Server Administration Scripting Shell


Type help() for help on available commands


Plaintext password is:Password1 


패스워드가 출력된다.


[글참조] https://blog.netspi.com/decrypting-weblogic-passwords/