Investigadores de seguridad aprovecharon un fallo de Emotet para detener su propagación

El conocido malware Emotet, contenía un error que permitía a los investigadores de ciberseguridad activar un kill-switch que evitaba que el malware infectara los sistemas durante seis meses.

«Es importante tener en cuenta que el malware es software que también puede tener fallos. Así como los atacantes pueden explotar fallos en software legítimo para causar daño, los investigadores también pueden aplicar ingeniería inversa al malware para descubrir sus vulnerabilidades y luego explotarlas en su favor».

El kill-switch estuvo activo entre el 6 de febrero de 2020 y el 6 de agosto de 2020, durante 182 días, antes de que los autores parchearan la vulnerabilidad. Desde su primera identificación en 2014, Emotet ha evolucionado desde sus raíces iniciales como un malware bancario hasta una «navaja suiza» que puede servir como downloader, para robo de información y bot de spam, dependiendo de cómo se implemente. A principios de febrero, desarrolló una nueva característica para aprovechar los dispositivos ya infectados en pos de identificar y comprometer a nuevas víctimas conectadas a redes Wi-Fi cercanas.

Junto con esta actualización de funciones trajo un nuevo mecanismo de persistencia, según Binary Defense: «Se generaba un nombre de archivo para guardar el malware en cada sistema víctima, utilizando un nombre exe o dll elegido al azar del directorio system32».

El cambio en sí mismo fue sencillo: cifró el nombre del archivo con una clave XOR que luego se guardó en el valor de registro de Windows establecido en el número de serie del volumen de la víctima.

La primera versión del kill-switch desarrollado por Binary Defense, que se puso en marcha aproximadamente 37 horas después de que Emotet revelara los cambios anteriores, empleó un script de PowerShell que generaría el valor de la clave de registro para cada víctima y establecería los datos de cada valor en nulo.

De esta manera, cuando el malware verificaba el registro en busca del nombre de archivo, terminaría cargando un exe «.exe» vacío, lo que impedía que el malware se ejecutara en el sistema de destino.

«Cuando el malware intenta ejecutar ‘.exe’, no podría ejecutarse porque ‘.’ se traduce al directorio de trabajo actual para muchos sistemas operativos.»

EmoCrash para frustrar a Emotet

Eso no es todo. En una versión improvisada del kill-switch, llamada EmoCrash, Quinn de Binary Defense dijo que pudo explotar una vulnerabilidad de buffer overflow descubierta en la rutina del malware para bloquear Emotet durante el proceso de instalación, evitando así que los usuarios se infecten. Entonces, en lugar de restablecer el valor del registro, el script funciona identificando la arquitectura del sistema para generar el valor del registro de instalación para el número de serie del volumen del usuario, usándolo para guardar un búfer de 832 bytes.

«Este pequeño buffer de datos era todo lo que se necesitaba para bloquear Emotet, e incluso podría implementarse antes de la infección (como una parche) o en mitad de la infección (como kill-switch). Aparecerían dos registros de fallos con ID de evento 1000 y 1001, que podrían usarse para identificar endpoints con binarios de Emotet desactivados después de la implementación del switch de interrupción (y reiniciar el equipo)».

Para mantenerlo en secreto de cara a los ciberdelincuentes e impedir que estos parchearan el código, Binary Defense dijo que se coordinó con los Equipos de Respuesta a Emergencias Informáticas (CERT) y el Equipo Cymru para distribuir el script de explotación EmoCrash a las organizaciones susceptibles.

Aunque Emotet retiró su método de instalación basado en claves de registro a mediados de abril, no fue hasta el 6 de agosto cuando una actualización del cargador de malware eliminó por completo el código de valor de registro vulnerable.

Más información:
https://www.binarydefense.com/emocrash-exploiting-a-vulnerability-in-emotet-malware-for-defense/

Comparte en tus redes: