Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Hash de importaciones y sus trampas

4 tareas · 35 min · Principiante

Miércoles 9 de junio de 2027, Ediciones Caracucho. Fabián Chaparro propone agrupar la cola por el hash de importaciones, porque es rápido y lo da cualquier herramienta de análisis estático. En esta sala lees qué resume ese hash, cuándo une a dos muestras de verdad y cuándo une a medio mundo. Todo es lectura de tablas de importaciones ya extraídas; nada se ejecuta.

0 de 4 · 0%

Objetivo de la sala

Miércoles 9 de junio de 2027, Ediciones Caracucho. Fabián Chaparro propone agrupar la cola por el hash de importaciones, porque es rápido y lo da cualquier herramienta de análisis estático. En esta sala lees qué resume ese hash, cuándo une a dos muestras de verdad y cuándo une a medio mundo. Todo es lectura de tablas de importaciones ya extraídas; nada se ejecuta.

Un ejecutable de Windows declara qué funciones de qué bibliotecas del sistema va a usar: es su tabla de importaciones. El hash de importaciones (en muchas herramientas aparece como imphash) toma esa lista, la escribe como biblioteca.función en minúsculas y sin la extensión de la biblioteca, en el mismo orden en que aparece en el archivo, y calcula un MD5 del resultado.

Dos muestras con el mismo hash pidieron las mismas funciones en el mismo orden. Eso suele pasar cuando salen del mismo código compilado de la misma manera, y por eso sirve para buscar parientes aunque los bytes hayan cambiado. Pero el hash no sabe nada del código propio: solo de la lista.

Responde para continuar

¿Qué describe exactamente el hash de importaciones de una muestra?

Ver pista de ayuda

El hash se calcula sobre una sola parte del archivo.

Abre el laboratorio y ejecuta SELECT * FROM importaciones_resumen, SELECT * FROM importaciones_eca12 y SELECT * FROM hash_en_la_flota.

Un programa .NET no llama directamente a las bibliotecas del sistema: deja ese trabajo al entorno de ejecución, y su tabla de importaciones suele tener una única entrada. Todos los ejecutables .NET de ese tipo comparten, por tanto, el mismo hash de importaciones, sean maliciosos o no. Antes de usar un hash para unir dos muestras hay que mirar cuántos programas legítimos de la propia flota lo tienen.

Responde para continuar

¿Cuántos programas legítimos de la flota comparten el hash de importaciones de ECA-12?

Ver pista de ayuda

Busca el hash de ECA-12 en la tabla de la flota.

Ejecuta SELECT * FROM bloques_eca04_eca11.

ECA-04 y ECA-11 importan exactamente las mismas 57 funciones y, aun así, sus hashes son distintos. Como el hash se calcula sobre la lista en orden, basta con que el compilador o el autor coloquen un bloque de importaciones en otro sitio para que el valor cambie por completo. Un hash distinto no demuestra que dos muestras no sean parientes.

Responde para continuar

Escribe el nombre de la biblioteca cuyo bloque de importaciones cambió de lugar y quedó al final de la tabla de ECA-11.

Ver pista de ayuda

Compara las dos columnas de bibliotecas posición por posición.

Ejecuta SELECT * FROM importaciones_eca14.

ECA-14 y ECA-15 comparten hash, pero su lista tiene solo seis funciones: cargar una biblioteca, pedir la dirección de una función, reservar y proteger memoria, salir y mostrar un mensaje. Es la tabla típica de un archivo empaquetado, en el que el código real va comprimido o cifrado y se reconstruye al ejecutarse. Esa tabla la pone el empaquetador, no el autor de lo que va dentro, y la tabla de la flota dice que 37 instaladores legítimos tienen la misma.

Responde para continuar

¿Qué se anota sobre el hash compartido de ECA-14 y ECA-15?

Ver pista de ayuda

Piensa en quién escribió esa tabla de seis funciones.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad