martes, 15 de junio de 2021

Vulnerabilidad zero day en Primion-Digitek EVALOS Secure 8

 

Durante un ejercicio de hacking ético industrial a uno de nuestros clientes, detectamos una vulnerabilidad zero day crítica en una aplicación de control de accesos y personal de planta. En este caso se trata de la aplicación Evalos8 (Primion-Digitek), en concreto en la versión v1.0.1.55 del módulo Secure8. No hemos podido acceder a otras versiones anteriores de este producto para verificar si se reproduce la vulnerabilidad, por lo que estas podrían verse igualmente afectadas.

Primion-Digitek se especializa en implantación de controles de acceso, fichaje, control de personal, etc. Tienen implantados sus sistemas tanto en infraestructuras críticas, como pueden ser aeropuertos, industrias eléctricas, hospitales, así como en edificios de administración pública, entre otros.

En este caso, hemos descubierto una vulnerabilidad de tipo Blind SQL Injection en el módulo de autenticación contra el gestor administrativo de la aplicación. Mediante esta vulnerabilidad, es posible la extracción de usuarios y hashes SHA-1 de las contraseñas. A la vez, sería posible la extracción de cualquier otro dato almacenado en la base de datos.

A esta vulnerabilidad de Blind SQL Injection se le ha asignado el código CVE-2021-3604

Todo comenzó cuando empezamos a evaluar posibles vectores de ataque que bien nos permitieran realizar un bypass de la autenticación (SQL Injection), nos ofrecieran un resultado booleano diferente dependiendo del payload introducido (Blind SQL Injection), u ofreciesen un retraso de tiempo dependiendo del payload introducido (Time Based SQL Injection).

En este caso, conseguimos resultados diferentes con los siguientes payloads, indicando que el parámetro introducido estaba siendo inyectado y ejecutado en una consulta SQL:

·         admin‘ or ‘a’=’a

·         admin’ or ‘a’=’b

 




 

Una vez que verificamos la posibilidad de evaluar consultas booleanas, es posible la obtención de datos mediante la evaluación de una consulta de tipo ‘prueba y error’:

·         ‘ or (<campo> LIKE ‘xxx%’)#

Dado que los campos son desconocidos, podemos extraer la información que necesitamos consultando la información contenida en las tablas INFORMATION_SCHEMA.TABLES y INFORMATION_SCHEMA.COLUMNS de SQLServer. De esta manera se han conseguido los nombres de columna ‘usuario’ y ‘ClaveAcceso’ de la tabla de usuarios referenciada en la consulta de autenticación.

Una vez tenemos estos datos en nuestro poder, es posible la extracción de la información de usuarios. Para ello desarrollamos un exploit que comprueba todos los caracteres del diccionario hasta obtener un usuario válido.

A continuación, se repite este proceso, pero con la columna ‘ClaveAcceso’.

Los datos obtenidos como password son una serie numérica de 120 dígitos de longitud, y la frecuencia de los números 0, 1 y 2 es mayor al resto. De aquí podemos deducir que puede tratarse de una serie de números menores de 255, y concatenados en grupos de tres. Tras comprobar que, tomando los números en tríos de dígitos, ninguno es mayor a 255, probamos a pasarlos a hexadecimal, obtenido un posible hash de 40 caracteres. Inmediatamente, nos viene a la cabeza el tipo de hash SHA-1, el cual tiene una longitud de 40 caracteres.

Finalmente probamos a crackear el hash, obteniendo la contraseña en claro en menos de 1 segundo, ya que tenía una longitud de 1 carácter.

A partir de aquí, es trivial la construcción de un exploit válido que extraiga todos los usuarios y hashes del sistema.

Una vez dentro del sistema, es posible la edición los permisos acceso, pudiendo generar nuevos usuarios, revocar la entrada a otros, control de zonas críticas de la planta, etc. De esta manera, la seguridad física de una infraestructura crítica quedaría comprometida por completo, permitiendo el acceso a la infraestructura y a las zonas más críticas a cualquier usuario que tomase el control de esta aplicación.



Podemos obtener dos conclusiones importantes de este caso:

La primera es que es muy importante no conformarse únicamente en el análisis de vulnerabilidades conocidas durante una fase de pentest, ni con el uso de herramientas automáticas. Existen componentes que, al no ser usados de una manera más extendida, pueden tener vulnerabilidades fácilmente explotables, ya que, por desgracia, muchos desarrollos no han contemplado un desarrollo seguro de la aplicación.

La otra es que, desde una simple vulnerabilidad en un componente de software, se puede poner en grave riesgo una infraestructura crítica al completo, comprometiendo la seguridad física de la misma, por lo que es fundamental identificar estos componentes críticos en las aplicaciones a desplegar en dichas infraestructuras e, idealmente, evaluar su seguridad antes de su despliegue, con empresas como Titanium Industrial Security, que disponen de los medios humanos y materiales para hacer esto.

Enlace a la publicación de INCIBE:

https://www.incibe-cert.es/alerta-temprana/avisos-sci/vulnerabilidad-inyeccion-sql-primion-digitek-secure-8

Para finalizar, agradecer a INCIBE por la ayuda prestada en la notificación y gestión de la vulnerabilidad y felicitarlos por su reciente nombramiento como Root CNA.

miércoles, 18 de noviembre de 2020

Full Stack Developers para León


 

 

 

 

 

 

 

Estamos buscando 5 Full Stack Developers para nuestro centro de desarrollo de software que acabamos de inaugurar en León.
Si eres un apasionado de la tecnología, tienes dominio y experiencia y quieres formar parte de un proyecto de largo recorrido y referencia en su sector, no esperes más y apúntate!

 

https://www.infojobs.net/leon/full-stack-developers/of-i8d45e0facf412f98f93d0c6ad2a579

 

lunes, 16 de noviembre de 2020

DSTREAMS- INVESTIGACIÓN Y DESARROLLO DE METODOLOGÍA EN LA INTELIGENCIA ARTIFICIAL (ML) ORIENTADO A CASOS INDUSTRIALES DE USO DE DATOS CONTÍNUOS DE ULTRA-ALTA VELOCIDAD

 



INVESTIGACIÓN Y DESARROLLO DE METODOLOGÍA EN LA INTELIGENCIA ARTIFICIAL (ML) ORIENTADO A CASOS INDUSTRIALES DE USO DE DATOS CONTÍNUOS DE ULTRA-ALTA VELOCIDAD

 

  • Organismo Público de Financiación: Ministerio de Ciencia e Innovación
  • Programa: Retos RTC2019-0006871-1
  • Beneficiarios: Aingura IIoT, S.L. (líder), Titanium Industrial Security, S.L., Universidad Politécnica de Madrid, Universidad de la Iglesia de Deusto, Barcelona Supercomputing Center.
  • Presupuesto total: 771.963,70€

 

jueves, 29 de octubre de 2020

Invitación evento Fireeye: Cyber Defense Live 2020

 

 Os invitamos al evento anual en EMEA el 3 de Noviembre y en España el 11 de Noviembre, con interesantes presentaciones y nuestra participación en el booth virtual.

 

Si quereis asistir, registraros en el siguiente enlace: https://www.fireeye.com/company/events/cyber-defence-live-emea/spain.html

Os esperamos