17 may 2019

VMWare soluciona vulnerabilidad de DLL-hijacking luego de un año

Un ataque de DLL Hijacking no es nuevo. Consiste básicamente en un programa que no comprueba correctamente la ruta de carga de la DLL. Esto permitiría a un atacante con la capacidad de reemplazar o instalar una nueva DLL en alguna de las rutas, ejecutar código arbitrario cuando se lanza el programa legítimo. Este es un problema conocido (siguen apareciendo CVEs al respecto después de años de ser descubierto), sin embargo no todos los problemas de secuestro de DLL tienen la misma gravedad.

Algunos problemas son mitigados de diferentes formas de acuerdo al orden de carga de las DLL, la forma en que se establecen los permisos donde se encuentra el archivo ejecutable, etc. Este malware es consciente de ello y ha convertido los problemas del DLL Hijacking "menos graves" en una ventaja para que los atacantes eviten los sistemas de detección y, a su vez, ha convertido simples DLL hijackings en una potente herramienta para los desarrolladores de malware. Esto probablemente obligará a muchos desarrolladores a comprobar de nuevo la forma en que cargan las DLL desde el sistema, si no quieren ser utilizados como "lanzadores de malware".
Hace un año, ElevenPaths identificó un troyano bancario brasileño mejorado y evolucionado (muy probablemente procede del Kit KL Banker), que utilizaba una nueva técnica para eludir el sistema de reputación SmartScreen y evitar la detección en Windows. El troyano descarga programas legítimos y los utiliza como "malware launcher" aprovechando el DLL hijacking en el software. De este modo, el malware puede ejecutarse "ndirectamente" y eludir el sistema de reputación SmartScreen e incluso algunos antivirus.

Lo que hace que este malware sea realmente diferente es que utiliza dos etapas.
  • El downloader (primera etapa) descarga una copia desde un servidor de un programa legítimo que sufre un DLL Hijacking. Es el archivo ejecutable original, firmado y legítimo, por lo que no generará ninguna alerta.
  • Posteriormente, descarga el malware (segunda etapa) en el mismo directorio; se trata de una DLL firmada con certificados vendidos en el mercado negro. Estos certificados contienen el nombre de jóvenes empresas británicas reales, pero lo más probable es que estos certificados no sean robados, sino que se hayan creado a partir información de las empresas expuesta en fuentes públicas.
En este caso, el malware abusa de un problema de DLL Hijacking en VMnat.exe, que es un programa independiente que viene con varios paquetes de software de VMware. VMnat.exe (como muchos otros programas) intenta cargar una DLL del sistema llamada shfolder.dll (específicamente la función SHGetFolderPathw).

Primero intenta cargarlo desde la misma ruta en la que se llama a VMnat.exe; si no se encuentra, lo comprobará en la carpeta del sistema. Lo que hace el malware es colocar tanto el VMnat.exe legítimo como un archivo malicioso rebautizado como shfolder.dll (que es el propio malware firmado con un certificado) en la misma carpeta. VMnat.exe es entonces lanzado por el "malware de primera etapa", el cual primero encuentra el sfholder.dll malicioso y luego lo carga en su memoria. El sistema está ahora infectado, pero lo que el SmartScreen percibe es que lo que se ha ejecutado es un archivo con buena reputación.
A través de este innovador movimiento el atacante puede:
  • Evitar las firmas de antivirus fácilmente, pero no puede bypassear tan fácilmente la seguridad de los endpoints (heurística, hooking). El lanzamiento de vmware.exe es de hecho menos sospechoso y, por ello, el malware entra por esta vía, a través de algún tipo de ejecución de "segunda etapa" que es menos ruidosa dentro del sistema.
  • SmartScreen se basa en la reputación y es difícil de eludir para los atacantes. Por esta razón, la ejecución de un archivo ejecutable legítimo como VMware.exe y la carga de una DLL firmada (que a su vez es malware) hace que a SmartScreen le resulte mucho más difícil de detectar la potencial infección.
Ahora, un año despúes, VMWare ha publicado la versión 15.1 que soluciona la vulnerabilidad para DLL-hijacking identificada como CVE-2019-5526.

Fuente: Thing Big

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!