HorseDeal Riding en The Curveball!


Tiempo estimado de lectura: 5 5 minutos

Es sorprendente ver qué tan rápido los atacantes hacen uso de nuevas vulnerabilidades en las campañas de malware. Microsoft parchó recientemente una vulnerabilidad muy interesante en su actualización mensual de Patch Tuesday para enero de 2020. Es una vulnerabilidad de suplantación de identidad en el mecanismo de validación de Windows CryptoAPI (Crypt32.dll) para los certificados de criptografía de curva elíptica (ECC). Un atacante podría aprovechar la vulnerabilidad mediante el uso de un certificado falsificado para firmar un ejecutable malicioso, haciendo que parezca que el archivo proviene de una fuente confiable y legítima. El usuario final no tendría forma de saber que el archivo era malicioso. Como casi todos los usuarios y muchos proveedores de seguridad confían en los Certificados Digitales de archivos ejecutables para validar la autenticidad y autenticidad de los archivos, esta vulnerabilidad representa una gran amenaza para el mecanismo de confianza básico. Esta vulnerabilidad se conoce como "Curveball" y "Chain of Fools".

Mientras estábamos reflexionando sobre esta vulnerabilidad, nos encontramos con ransomware: HorseDeal aprovechando esta vulnerabilidad y haciendo uso de un certificado ECC falso para evadir las detecciones.

Mientras HorseDeal pretende estar firmado por Microsoft Autoridad de certificación raíz ECC TS 2018, tiene el nombre de editor de un proveedor AV genuino. El certificado es válido por 1 año a partir del 16 de enero de 2020.

El nombre de archivo utilizado aquí es el nombre del proceso del proveedor de AV, es decir avgdiagex.exe. Aunque en este escenario, el certificado falsificado se utiliza para el proceso AV falso, los autores de malware pueden falsificar el certificado de cualquier otro software genuino, incluido el software publicado por el propio Microsoft.

Fig. 1: Certificado ECC falsificado

Comportamiento:

A partir de ahora, se desconoce el vector de infección para este ransomware. La carga útil principal está empaquetada con el empacador UPX-3.94. Tras la ejecución, la carga útil primero consulta la ID de idioma de la máquina que utiliza la API GetUserDefaultLangID (). El ID de idioma recuperado se compara con varios idiomas para identificar el país de la víctima. Estas identificaciones incluyen: kazajo (0x043F), bielorruso (0x0423), kirguiso (0x0440), tártaro (0x0444), azerbaiyano (0x082C), armenio (0x042B), tayiko (0x0428).

Una vez confirmado que la víctima no es de ninguna de las ubicaciones anteriores, elimina las instantáneas del sistema. Esto indica directa o indirectamente la posibilidad de que los autores de malware tengan nacionalidad en esta región. Se vieron tácticas similares en otros ransomware para excluir estas regiones junto con Siria y otros países. Utilizando bcedit, la carga útil deshabilita la función de reparación automática y establece la política de arranque para ignorar los errores si hay alguna falla en el proceso de arranque. Junto con eso, apaga el firewall usando netsh advfirewall. Estos pasos confirman que la víctima no podrá recuperar el estado del sistema utilizando ninguna herramienta interna de Windows.

Fig. 2: Desactivar recuperación y protección

Después de esto, la carga útil intenta verificar procesos particulares que se ejecutan en la máquina víctima. Recupera información sobre procesos en ejecución usando CreateToolhelp32Snapshot (). Los nombres de los procesos se verifican con la lista de procesos en la carga útil, y si se encuentra el proceso, se supone que termina ese proceso. Aquí, está utilizando la API lstrcmpiw () para comparar estos nombres. Pero por error, los autores de HorseDeal han puesto espacio, es decir, 0x20 para separar cadenas en buffers en lugar de usar 0x00 (byte nulo para la terminación de cadenas). Por lo tanto, cada vez que se compara cada proceso con todo el búfer de cadenas, siempre falla incluso si el nombre del proceso actual está en el búfer.

Fig. 3: Nombre del proceso Comparar

Los procesos a ser terminados incluyen:

Fig. 4: Lista de nombres de proceso

Después de esto, se genera un par de claves RSA localmente utilizando MS crypto-API CryptGenKey ().

Fig.5: CryptGenKey RSA

La carga útil en sí lleva otra clave RSA codificada en base64 dentro de sí misma. La clave privada RSA generada localmente se cifra en un búfer de 0x200 bytes con esta clave. Una vez más, los bytes iniciales de 0x5F de esta clave cifrada se cifran una vez más con la misma clave pública en otro búfer de 0x200 bytes.

Ambos buffers se codifican con codificación base64 y se escriben en el archivo _uninstalling_.png en el directorio % AppData% Roaming. Estos datos en el archivo se agregan con la clave RSA generada localmente anteriormente.

Fig.6: _uninstalling_.png Clave RSA

La nota de rescate está escrita en # Descifrado # .txt. Una imagen llamada 7F58.tmp.jpg se cae en el directorio % AppData% Local Temp. Esta imagen se usa como fondo de escritorio usando API SystemParametersInfoW () con el primer parámetro como SPI_SETDESKWALLPAPER.

Después de la ejecución, la carga útil se elimina usando el comando "/ C timeout 1 && del " C: \ Users \ Test \ Desktop \ avgdiagex.exe ">> NUL".

Cifrado de archivos:

Para cada unidad lógica, se crea un hilo separado para el cifrado. Los archivos se cifran utilizando el algoritmo Salsa para un cifrado más rápido. La clave de Salsa es diferente para cada archivo cifrado. Se generan 0x24 bytes usando CryptGenRandom (). Los primeros 0x20 bytes se usan como clave de Salsa. Solo los 0x2800 bytes iniciales de datos de archivo se cifran con Salsa. Después de los datos cifrados, un marcador de cifrado dword DEC0ADD3 está insertado.

Los bytes 0x24 generados aleatoriamente se cifran con la clave pública RSA local y se agregan a los archivos cifrados después del marcador de cifrado.

Fig. 7: Cifrado de archivos

Nota de rescate:

Fig. 8: Nota de rescate

A diferencia de otros ransomware, HorseDeal usa jabber e ICQ para la comunicación. Las instrucciones para usar jabber también se incluyen en la nota de rescate. No se menciona la cantidad de rescate y las billeteras en la nota de rescate. La identificación única mencionada en la nota de rescate es en realidad la clave privada RSA encriptada codificada en base64 que se escribió previamente en _uninstalling_.png.

Conclusión:

Como se esperaba, dentro de un período muy corto después de la divulgación de la vulnerabilidad crítica CVE-2020-0601, los autores de malware comenzaron a explotarlo agresivamente antes de que los usuarios aplicaran parches a sus sistemas. Con un nombre genuino y un certificado de confianza válido, es probable que el usuario permita que se ejecuten estos archivos. Aunque era otro ransomware sin comportamiento extravagante, el uso de esta vulnerabilidad crítica, "CurveBall" lo ha hecho especial.

COI:

716C502BA250F742FC935B3CB223CA4A

Medidas preventivas:

  1. Actualice y aplique parches a su sistema operativo y aplicaciones regularmente.
  2. No descargue los archivos adjuntos recibidos de fuentes no confiables.
  3. Realice regularmente una copia de seguridad de sus datos importantes.
  4. Instale un software antivirus confiable y manténgalo actualizado.

¿Tienes algo que agregar a esta historia? Compártelo en el



Enlace a la noticia original