Technical posts/Weblogic

Weblogic_Admin_boot.properties 암호 복호화 하기

ODB 2014. 9. 22. 00:26

보통 stop스크립트에 weblogic username, password가 기록되어 있지만

관리가 전혀 되어있지 않아 패스워드를 모르는 경우도 있다 이럴때 사용하도록 하자


먼저 출처 불명의 dec.py파일을 만들도록 한다


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 "Decrypted Password:" + clear

try:
    if len(sys.argv) == 3:
        decrypt(sys.argv[1], sys.argv[2])
    else:
        print "INVALID ARGUMENTS"
        print " Usage: java weblogic.WLST dec.py $domain_home $encrypted_password"
        print " Example:"
        print "    java weblogic.WLST dec.py D:/Oracle/Middleware/user_projects/domains/base_domain {AES}819R5h3JUS9fAcPmF58p9Wb3syTJxFl0t8NInD/ykkE="
except:
    print "Unexpected error: ", sys.exc_info()[0]
    dumpStack()
    raise


파일을 생성하고 해당파일을 아무곳에 두고

$DOMAIN_HOME\bin에 있는 setDomainEnv.sh or cmd 를 먼저 실행하고 아래의 명령을 수행한다


$DOMAIN_HOME\bin 

java weblogic.WLST dec.py $DOMAIN_HOME {AES}yay4B4DMurMJ0JJaQMRQWqqDimqiqp/2DzLYcNiLC2I=

위 {AES}으로 시작되는 굵은 글씨는 boot.properties 에있는 password= 이후 부분이다



명령을 날려 복호화를 진행한다


Initializing WebLogic Scripting Tool (WLST) ...


Welcome to WebLogic Server Administration Scripting Shell


Type help() for help on available commands


Decrypted Password:weblogic1


눈치빠른 분들은 아시겠지만 JDBC xml 에 있는 암호화된 암호도 복호화가 가능하다





"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."