Desencriptar Password Weblogic
Desencriptar Password Weblogic
CATEGORIA ADMINISTRACION
DESCRIPCION Como desencriptar contraseña de weblogic, ya sea de dominio, nodemanager o datasource. También es válido para Java Keystore.
FECHA CREACION 2020-02-13
VALIDO HASTA 2030-01-03
AUTOR CUEVA MOLINA, CELEDONIO
NIVEL DE EJECUCION 2
PERIODICIDAD A Demanda
TIEMPO ESTIMADO 0horas y 30 minutos
PROCEDIMIENTO:
PREREQUISITOS
Deberemos poder acceder a uno de los nodos donde se ejecuta Weblogic, disponiendo del usuario de sistema operativo propietario del software y del usuario de administración del dominio Weblogic.
3. Introducimos las siguientes lineas de comandos, sustituyendo la ruta de nuestro dominio, y la password a desencriptar (Campos marcados en rojo).
wls:/offline> domain="/u01/app/gestion/Middleware/user_projects/domains/dominioGestion"
wls:/offline> service = weblogic.security.internal.SerializedSystemIni.getEncryptionService(domain)
wls:/offline> encryption = weblogic.security.internal.encryption.ClearOrEncryptedService(service)
wls:/offline> print encryption.decrypt("{AES}f27DQTtyGEd6xQYNwgwFR78PUrBZboZJNljmpLd36x4=")
w@BL0g7c
wls:/offline> exit()
METODO 2:
Ejecución de Script
1. Debemos obtener la password encriptada que queremos desencriptar.
Por ejemplo:
[oraeva@se41vap701sheva ~]$ cd /u01/app/oraeva/domain/evacole/servers/evacole-admin/security/
[oraeva@se41vap701sheva security]$ cat boot.properties
#Wed Feb 05 12:22:50 CET 2020
password={AES}Aitv4AQEa5fqmWN4pZV4PSzI1RvA19aAg0vfU+ykz6o\=
username={AES}yWT0bgZbojlX1lWu1dl+JTLS9BJDS9+iY+zcAXf2vQU\=
2. Creamos nuestro script por ejemplo en el $HOME. De igual forma que en el metodo anterior, cambiamos los campos marcados en rojo por la ruta de nuestro dominio y la contraseña a descifrar.
[oraeva@se41vap701sheva bin]$ cd
[oraeva@se41vap701sheva ~]$ vi decryptpwd.py
from weblogic.security.internal import *
from weblogic.security.internal.encryption import *
password = "{AES}Aitv4AQEa5fqmWN4pZV4PSzI1RvA19aAg0vfU+ykz6o="
path = "/u01/app/oraeva/domain/evacole"
encryptionService = SerializedSystemIni.getEncryptionService(path)
cService = ClearOrEncryptedService(encryptionService)
print "password: " + cService.decrypt(password)
3. Cargamos las variables de weblogic y ejecutamos el script de phyton que hemos creado.
[oraeva@se41vap701sheva bin]$ cd /u01/app/oraeva/domain/evacole/bin
[oraeva@se41vap701sheva bin]$ . ./setDomainEnv.sh
[oraeva@se41vap701sheva evacole]$ java weblogic.WLST /home/oraeva/decryptpwd.py
password: pr3w3bl0g1c
*Nota: Si la contraseña presenta una "\" en el final, nos dará un error, y será necesario borrar dicho caracter para extraer la contraseña.
wls:/offline> print encryption.decrypt("{AES}Aitv4AQEa5fqmWN4pZV4PSzI1RvA19aAg0vfU+ykz6o\=")
Traceback (innermost last):
File "<console>", line 1, in ?
at weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptBytes(JSafeEncryptionServiceImpl.java:144)
at weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptString(JSafeEncryptionServiceImpl.java:192)
at weblogic.security.internal.encryption.ClearOrEncryptedService.decrypt(ClearOrEncryptedService.java:99)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
Como podemos observar, borrando el simbolo \ nos devolverá la contraseña sin problemas.
COMPROBACIONES POSTERIORES
Podemos probar la contraseña que hemos obtenido del AdminServer, o también, en la conexión al nodemanager (que sabemos que es la misma).
wls:/offline>
wls:/offline> nmConnect('nodemanager', 'pr3w3bl0g1c', 'evacole-machine1.junta-andalucia.es', '5556', 'evacole', '/u01/app/oraeva
/domain/evacole','plain')
Connecting to Node Manager ...
Successfully Connected to Node Manager.
wls:/nm/evacole>