Zombie ZIP: la amenaza oculta tras la manipulación del header

Publicado el

Introducción a la amenaza Zombie ZIP

Los archivos ZIP son ampliamente utilizados para la distribución de software y documentos, lo que los convierte en un blanco atractivo para la distribución de malware, especialmente en campañas de phishing. Recientemente ha surgido una técnica conocida como Zombie ZIP, que permite eludir los motores antivirus mediante la manipulación de la estructura interna del archivo ZIP.

Funcionamiento del formato ZIP

Para comprender la técnica Zombie ZIP, es esencial recordar la estructura de un archivo ZIP. Este formato incluye: - Local File Header - Datos comprimidos del archivo - Central Directory - End of Central Directory Record

Dentro del header, existen campos cruciales como el Compression Method, Compressed Size, Uncompressed Size y CRC. El campo Compression Method es particularmente relevante, ya que indica cómo se deben interpretar los datos comprimidos. Los métodos más comunes son: - 0 → STORED (sin compresión) - 8 → DEFLATE (el más utilizado)

Las herramientas de descompresión confían en este campo para procesar correctamente los datos. Sin embargo, esta confianza es precisamente la que se ve explotada por la técnica Zombie ZIP.

La técnica Zombie ZIP

La estrategia detrás de Zombie ZIP consiste en modificar el header del archivo ZIP para hacer creer que no está comprimido, cuando en realidad sí lo está. Por ejemplo: - Campo: Compression Method - Valor declarado: STORED - Valor real: DEFLATE

Este engaño provoca que el antivirus analice el archivo bajo la falsa premisa de que el contenido no está comprimido. Como resultado, el antivirus intenta leer los datos directamente, que, al ser aún comprimidos, aparecen como ruido aleatorio, llevando a la no detección del malware.

Cuando un loader personalizado procesa el archivo, ignora el header manipulado y descomprime los datos correctamente, lo que permite que el payload se ejecute. Por ello, el término Zombie ZIP: el malware parece inerte durante el análisis, pero resucita al ser procesado.

Ejemplo de manipulación del header ZIP

Un Local File Header típico en hexadecimal para un archivo `payload.exe` podría verse así: ``` 50 4B 03 04 ; signature 14 00 ; version needed to extract 00 00 ; general purpose bit flag 08 00 ; compression method: DEFLATE 00 00 00 00 ; last mod file time/date ... ; CRC, compressed size, uncompressed size ```

Con la técnica Zombie ZIP, el header sería modificado a: ``` 50 4B 03 04 ; signature 14 00 00 00 00 00 00 ; compression method modificado a STORED 00 00 00 00 ... ```

Los datos siguen comprimidos en DEFLATE, pero el header indica "sin compresión", lo que provoca que: - Los parsers estándar lean datos "crudos". - Antivirus basados en firmas no detecten el malware. - Herramientas como 7-Zip o WinRAR muestren errores de CRC o de método no soportado.

Laboratorio práctico

Para ilustrar la creación de un Zombie ZIP, se pueden seguir estos pasos:

1. Generar un payload de prueba: Crear un archivo de texto o un ejecutable inofensivo. ```python # payload.py with open("payload.exe", "wb") as f: f.write(b"echo Zombie ZIP Test\n") ```

2. Crear un ZIP normal: Comprimir el archivo utilizando el método DEFLATE. ```python import zipfile with zipfile.ZipFile("payload.zip", "w", compression=zipfile.ZIP_DEFLATED) as zf: zf.write("payload.exe") ```

3. Convertir a Zombie ZIP: Modificar el Local File Header para evadir el análisis. ```python with open("payload.zip", "r+b") as f: data = bytearray(f.read()) lfh_offset = 8 # Offset típico del Compression Method data[lfh_offset] = 0 # Cambiar DEFLATE a STORED cd_offset = len(data) - 46 # Offset del Central Directory data[cd_offset + 10] = 0 # Cambiar CD Compression Method a STORED f.seek(0) f.write(data) ```

Al abrir el archivo ZIP manipulado en herramientas como 7-Zip o WinRAR, se obtendrán errores de CRC o de método no soportado, evidenciando la efectividad de la técnica Zombie ZIP.

Conclusiones

La técnica Zombie ZIP representa una amenaza significativa, ya que permite ocultar malware de manera efectiva a los antivirus. Esta manipulación del header del archivo ZIP destaca la importancia de que los analistas de seguridad sean conscientes de este tipo de técnicas para mejorar las defensas contra el malware.

Fuente

Ver noticia original