Como desencriptacion un password encriptado en Mysql con AES_ENCRYPT

editado septiembre 2012 en Servidores y Hardening
Ola a toda la comunidad, nuevamente estoy requiriendo de sus generosa colaboración para encontrar la solución a mi problema.

Problema: Tenemos una base de datos en Mysql 5.0, en la tabla usuarios tenemos un campo para el password que desde la aplicación se encripta con AES_ENCRYPT, el verdadero problema esta en que necesitamos recuperar una contraseña pero desde la aplicación no se permite (no tenemos el codigo fuente) y desde la base de datos no sabemos como desencriptarla... No podemos eliminar el usuario por que esta amarrado a varios procesos dentro de la aplicación ni tampoco actualizar la contraseña porque a nivel de aplicación utiliza el AES_deCRYPT y si lo actualizamos quedamos en las mismas porque requiere de una llave...

Que me recomiendad.. como puedo solucionar el problema

Comentarios

  • editado 11:44
    Hola.

    Podrias intentar desensamblar el binario (asumiendo que lo tienes), depurarlo y en el lugar donde se usa la funcion AES_DECRYPT obtener el key.

    Salu2
  • editado 11:44
    x4v1g escribió : »
    Hola.

    Podrias intentar desensamblar el binario (asumiendo que lo tienes), depurarlo y en el lugar donde se usa la funcion AES_DECRYPT obtener el key.

    Salu2

    Me puedes explicar mejor como hacer eso por favor..
  • editado 11:44
    Hola.
    I)
    Lo ideal es conseguir la llave con que se cifran los passwords (por si las moscas) , entonces :
    1) Analizamos el código y miramos donde se utiliza la función AES_ENCRYPT.
    2) Donde se utilice la función colocamos un breakpoint (desde ahora bp).
    3) Ejecutamos el binario (empezamos a depurar el assembler)
    4) En el programa ejecutamos la funcionalidad de crear un nuevo usuario (se supone que esta funcionalidad existe según tu explicación del problema).
    5) La ejecución se detendrá en el bp que colocamos antes.
    6) Estaríamos parados justo donde se hace uso de la función AES_ENCRYPT y en la pila deberían estar los parámetros que se le van a pasar a dicha función.
    7) Copiamos el valor del parámetro que se le pasaría como llave
    8) Listo !!!

    II) Si solo necesitas el password del usuario, seria algo parecido pero enfocándose en el uso de AES_DECRYPT.

    Salu2
Accede o Regístrate para comentar.