IT/Server Information

[웹로직] 암호화된 내용 복호화하는 방법

알콩달콩아빠 2024. 9. 19. 18:14
728x90
반응형

웹로직 내 암호화된 파일 내용을 복호화하는 방법

(boot.properties / datasource.xml)

 

운영 중에 가끔 웹로직 관리콘솔 패스워드 혹은 데이터소스의 DB 접근 계정의 패스워드를 까먹는 고객이 있다.

그런 경우, 패스워드를 알 수 있는 방법이 있다.

 

아래 암호화된 내용 복호화하는 스크립트를 통해~

 

1. py 파일을 생성한다.

[weblogic@base_domain]$ vi password.py


#=======================================================================================
# This Script decrypt WebLogic passwords
#
# Usage:
#      wlst decryptPassword.py <DOMAIN_HOME> <ENCRYPTED_PASSWORD>
#
# Author: Rafael Arana
#
#=======================================================================================
#import os
import weblogic.security.internal.SerializedSystemIni
import weblogic.security.internal.encryption.ClearOrEncryptedService


def decrypt(domainHomeName, encryptedPwd):
    domainHomeAbsolutePath = os.path.abspath(domainHomeName)
    encryptionService = weblogic.security.internal.SerializedSystemIni.getEncryptionService(domainHomeAbsolutePath)
    ces = weblogic.security.internal.encryption.ClearOrEncryptedService(encryptionService)
    clear = ces.decrypt(encryptedPwd)
    print "RESULT:" + clear


try:
    if len(sys.argv) == 3:
        decrypt(sys.argv[1], sys.argv[2])
    else:
                print "INVALID ARGUMENTS"
                print " Usage: java weblogic.WLST decryptPassword.py <DOMAIN_HOME> <ENCRYPTED_PASSWORD>"
                print " Example:"
                print " java weblogic.WLST password.py /home/weblogic/wls1036/domains/base_domain {AES}/bkNqRLQ/MeXGDbG0IzqgukuLurPO0mY1hD2huTSVAU\="
except:
    print "Unexpected error: ", sys.exc_info()[0]
    dumpStack()
    raise

2. setWLSEnv.sh 또는 setDomainEnv.sh 실행

[weblogic@ bin]$ . ./setDomainEnv.sh

 

3. 명령어를 실행한다.

[weblogic@ base_domain]$ java -Dpython.cachedir=/tmp weblogic.WLST password.py /home/weblogic/wls1036/domains/base_domain {AES}/bkNqRLQ/MeXGDbG0IzqgukuLurPO0mY1hD2huTSVAU\=

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

RESULT:weblogic1

-> {AES}.. 암호화된 내용을 파라미터로 입력하면 해당 암호화된 내용을 복호화하여 RESULT값으로 보여준다.

* 스크립트 실행시 중요한 것은 반드시 암호화를 실행했던 도메인으로 실행해야 한다.

ADomain에서 암호화한 내용을 BDomain에서 해당 스크립트를 돌려 실행할 시에 복호화할 수 없다.

 

출처 : [웹로직] 암호화된 내용 복호화하는 방법 (tistory.com)

728x90
반응형