[Tips] 웹로직 패스워드 복호화(Decrypting)
웹로직 관리자 계정과 패스워드를 분실한 경우에 새로 초기화 후 생성해도 되지만, 기존 암호화된 파일이 존재한다면 다음과 같이 패스워드를 복호화 할 수 있다.
데이터 소스 설정에 암호화되어 있는 패스워드는 아래 스크립트로 복호화(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/