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 에 있는 암호화된 암호도 복호화가 가능하다