jueves, 1 de febrero de 2018

Almacenamiento Inseguro de Claves en Software SCADA (Rockwell y GE)

Todos sabemos que en los ambientes SCADA se suele utilizar sofware antiguo, obsoleto, y muchas veces sin parches, ya que si las cosas funcionan bien en un ambiente industrial no se suelen tocar mas (no muchos se animan a actualizar sistemas de control, con el riesgo que conlleva para el ambiente productivo).

Haciendo un análisis en un cliente, me encontré con un software de Rockwell Automation denominado Desklock. Es un software que se utiliza, básicamente, para restringir a los operadores de los sistemas industriales de forma que solo puedan acceder a la aplicación SCADA y bloquear todo el resto (aplicaciones de windows, barra de tareas, escritorio, apagado de la maquina). También tiene la funcionalidad de autologon, para iniciar sesión automáticamente con el usuario local o de dominio que indiquemos en la configuración.

Autologon...me trae recuerdos =D imagino que las credenciales las debe estar guardando en algún lado para para poder iniciar sesión en el equipo, ya sea en un archivo o en la registry, dado que el host es un Windows 7. En conclusión, que es lo primero que voy a mirar? El archivo de configuracion DESKLOCK2000.CFG


Abriendo el archivo de configuración nos encontramos con lo siguiente:


Con el objeto de realizar pruebas, le había puesto como contraseña para poder abrir el Desklock y modificar su configuración "abcdefg". Analizando la contraseña "encriptada" claramente se esta utilizando un cifrado cesar o cifrado monoalfabetico por desplazamiento, en este caso "la clave" o el numero de espacios a desplazar es -4 que convierte por ejemplo una letra "e" en una letra "a" y una letra "a" en el símbolo "]" según la tabla de caracteres ascii imprimibles. En base a esto la clave original "abcdefg" se convierte en "]^_`abc"


Y la contraseña del usuario utilizado para el autologon? También esta guardada en el archivo de configuración, cifrada de la misma manera que la clave de desklock:


Esta clave no la puedo mostrar porque ya estaba configurada y no la había elegido yo, pero fíjense que sigue el mismo esquema que la clave anterior, la ultima coma de la clave cifrada corresponde a un 0 en la clave original.

Igualmente decidí revisar la registry a ver si la clave también se guardaba ahí, y resulta que en la key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon el autoadminlogon estaba activado y se encontraba en texto plano el nombre de usuario en DefaultUserName y su correspondiente contraseña también en texto plano en DefaultPassword. 

Entiendo que Rockwell soluciono el almacenamiento inseguro de la clave, ya que hubo un advisory con respecto a este tema en el software Rsview32 (del cual DeskLock es parte, es una de las herramientas incluidas en las tools):

En un test de intrusión interno en otro cliente nos había pasado algo parecido con el sofware de GE Proficy Ifix.

El tema es este, Ifix guarda las credenciales en un archivo de configuración denominado xtcompat.utl, aparentemente cifrado, pero la realidad es que Ifix solo realiza una operación matemática de XOR entre el valor de los campos descripción, usuario y password y tres claves estáticas predefinidas:



A continuación se puede ver en hexadecimal el archivo xtcompat.utl, los campos que nos interesan son los marcados en colores, el resto es relleno (ahora se los cuento así ligeramente, pero la verdad es que estuve un buen rato mirando los archivos hexa hasta descubrir bien donde estaba cada campo y cual era el relleno). 


Si llegan a encontrar un Ifix por ahi, ya no van a tener que hacer el análisis manualmente como hice yo en un principio, pueden utilizar la herramienta que desarrollo mi amigo lbrug que directamente lee el archivo xtcompat.utl, realiza la operacion de XOR con las claves estaticas correspondientes y muestra el usuario, password y descripción:

Entiendo que también hubo un advisory al respecto y GE soluciono este tema, pero como les dije al principio no es raro encontrar software desactualizado en entornos SCADA en el cual estas vulnerabilidades sigan presentes:

Saludos y espero que les haya gustado!

No hay comentarios.:

Publicar un comentario