Ransomware Maze | Blogs de McAfee


RESUMEN EJECUTIVO

El ransomware Maze, anteriormente conocido en la comunidad como "ransomware ChaCha", fue descubierto el 29 de mayo de 2019 por Jerome Segura (1).

La meta principal del ransomware es encriptar todos los archivos que puede en un sistema infectado y luego exigir un rescate para recuperar los archivos. Sin embargo, la característica más importante de Maze es la amenaza que los autores de malware dan a las víctimas que, si no pagan, publicarán la información en Internet (2).

Esta amenaza no ha sido inactiva, ya que los archivos de una compañía fueron publicados en Internet. Aunque la compañía demandó, el daño ya estaba hecho. Este es un comportamiento cada vez más observado en el nuevo ransomware (3), como Sodinokibi, Nemty, Clop y otros.

Se destacó el año pasado (4) cómo el ransomware se dirigiría en esta dirección para obtener dinero de las víctimas que pueden ser reacias a pagar por el descifrado.

MAPA DE TELEMETRÍA

FIGURA 1. MAPA DE INFECCIONES DE LAZO

INTRODUCCIÓN

El 29 de octubre se detectó una campaña de distribución del malware Maze a usuarios italianos. Históricamente, el malware ha utilizado diferentes técnicas para obtener acceso, principalmente mediante kits de exploits, conexiones de escritorio remoto con contraseñas débiles o mediante suplantación de correo electrónico o, como en el caso italiano, a través de diferentes agencias o empresas (5), es decir, la Agencia de Ingresos italiana. Estos correos electrónicos venían con un archivo adjunto de Word que usaba macros para ejecutar el malware en el sistema.

Los kits de exploits más utilizados fueron Fallout y Spelevo (6).

El malware está programado con algunos trucos para evitar su reversión y dificultar el análisis estático. Este informe cubre estas protecciones y el comportamiento del malware en un sistema infectado.

Los desarrolladores han insertado mensajes para provocar a los investigadores de malware, incluida la dirección de correo electrónico de Lawrence Abrams, propietario de "BleepingComputer", a quien contactaron directamente. Son muy activos en sitios de redes sociales como Twitter.

McAfee protege a sus clientes contra las amenazas de las que hablamos en este informe en todos sus productos, incluidos antivirus personal, punto final y puerta de enlace.

RESUMEN DE MAZE

El malware es un archivo binario de 32 bits, generalmente empaquetado como un archivo EXE o DLL. Este informe se centra en el archivo EXE.

FIGURA 2. INFORMACIÓN SOBRE EL MALWARE

En esta tabla aparece más información sobre la muestra utilizada en este informe:

DETALLES TÉCNICOS

Maze es una pieza compleja de malware que utiliza algunos trucos para frustrar el análisis desde el principio.

El malware comienza a preparar algunas funciones que parecen guardar direcciones de memoria en variables globales para usar más tarde en llamadas dinámicas, aunque en realidad no usa estas funciones más tarde. Ya sea un código residual existente en el punto de entrada del malware o un truco para engañar a los investigadores, está en debate.

FIGURA 3. GUARDE LA DIRECCIÓN DE FUNCIONES PARA USAR MÁS TARDE DE FORMA DINÁMICA

Más tarde, el malware ingresa en un gran bloque de código basura que también incluye algunos elementos para descifrar cadenas e información importante para más adelante. El malware utiliza algunos trucos para detectar depuradores en este punto.

Los más importantes son:

  • Un gran uso del campo PEB "IsDebuggerPresent". Este campo es un campo booleano que se llena desde Windows con 1 (Verdadero) si la aplicación se ejecuta dentro de un depurador o 0 (Falso) si no lo está.

FIGURA 4. ALTO USO DEL CAMPO PEB DE "ISDEBUGGERPRESENT" PARA DETERMINAR SI LA APLICACIÓN ESTÁ FUNCIONANDO EN UN DEPURADOR

Si el malware detecta un depurador, permanecerá en un bucle infinito sin hacer nada mientras desperdicia recursos del sistema.

FIGURA 5. MAZE CAPTURA EL DEPURADOR Y PERMANECE FUNCIONANDO Y DESPERDIENDO RECURSOS

El malware obtiene todos los procesos en el sistema pero ignora el primero (el "proceso inactivo" en Windows, que es simplemente una herramienta para que el usuario sepa qué porcentaje de los recursos del sistema se están utilizando). Usando el nombre de cada proceso, crea un nombre personalizado con un algoritmo personalizado, junto con un hash que se compara con una lista codificada. Si el hash se encuentra en esta lista, el proceso finalizará.

FIGURA 6. COMPROBACIÓN DE HASHES DEL NOMBRE PERSONALIZADO DE LOS PROCESOS DEL SISTEMA

Por ejemplo, el proceso del depurador "x32dbg" se detecta en este punto:

FIGURA 7. PROCESO X32DBG ATRAPADO POR EL MALWARE CON EL HASH

Puede terminar el depurador IDA, x32dbg, OllyDbg y más procesos para evitar el análisis dinámico, cerrar bases de datos, programas de oficina y herramientas de seguridad.

A continuación se muestra una lista parcial de los procesos que se pueden descifrar utilizando una lista de diccionario terminada por el malware:

dumpcap.exe -> 0x5fb805c5
excel.exe -> 0x48780528
fiddler.exe -> 0x5e0c05b1
msaccess.exe -> 0x6a9c05ff
mysqld-nt.exe -> 0x79ec0661
outlook.exe -> 0x615605dc
pipanel.exe -> 0x5fb805c4
procexp64.exe -> 0x78020640
procexp.exe -> 0x606805d4
procmon64.exe -> 0x776e0635
procmon.exe -> 0x600005c9
python.exe -> 0x55ee0597
taskkill.exe -> 0x6c2e0614
visio.exe -> 0x49780539
winword.exe -> 0x60d805d5
x32dbg.exe -> 0x5062053b
x64dbg.exe -> 0x50dc0542

Esta breve lista muestra el nombre del proceso a matar y el hash personalizado del nombre especial generado a partir del nombre del proceso original.

FIGURA 8. FUNCIÓN DE PROCESO DE TERMINATO TOMADA DE LA TABLA DE DIRECCIONES DE EXPORTACIÓN (COMER) DE KERNEL32 Y PASANDO LA VERIFICACIÓN DE NOMBRE DE HASH

El malware matará el proceso con la función "TerminateProcess" que obtiene de la EAT (Tabla de direcciones de exportación) del módulo "kernel32.dll" para aumentar la ofuscación, comparando el nombre con un hash personalizado tomado del nombre en mayúsculas.

FIGURA 9. CONVOCATORIA PARA TERMINAR EL PROCESO DE UNA FORMA DINÁMICA PARA OFRECER ESTA LLAMADA

El malware llama a las funciones de Windows de una manera única para ayudar a la ofuscación, es decir, obtener el primer proceso en el sistema para usar la función "Process32FirstW". Sin embargo, en lugar de llamarlo directamente, coloca los parámetros necesarios para la función en la pila, seguido de una dirección de memoria con un código de operación "push" y luego realiza un salto directo a la función de Windows. Cuando finaliza la función, Windows crea un código de operación "ret" y luego obtiene la última dirección de memoria que el malware introdujo dentro de la pila, regresando a esta dirección y continuando el flujo. Un ejemplo de esto se puede ver en esta imagen:

FIGURA 10. ALTA OBFUSCACIÓN PARA INTENTAR UN ANÁLISIS LENTO Y HACERLO MÁS DIFÍCIL

Otra estratagema utilizada por el malware (dependiendo de la muestra) es obtener la función "DbgUIRemoteBreakin", utilizando la función "GetProcAddress", antes de emplear un truco para evitar tener un depurador adjunto en tiempo de ejecución (7).

FIGURA 11. OBTENGA DBGUIREMOTEBREAKIN UTILIZANDO GETPROCADDRESS PARA EVITAR QUE UN DEBUGGER LO ATAQUE

El truco utilizado aquí es "VirtualProtect" para dar permiso a la dirección de memoria de la función de "DbgUIRemoteBreakin" para escribir en ella:

FIGURA 12. DÉ PERMISOS DE ESCRITURA EN LA MEMORIA

Después de obtener el permiso, que se otorga solo por 1 byte, el malware parchea este byte con un valor 0xC3 (el código de operación de "ret") y restaura los permisos anteriores con "VirtualProtect", nuevamente en la misma dirección y byte, eliminando la escritura permiso.

FIGURA 13. PARCHE LA FUNCIÓN CON UN OPCODE RET Y RESTABLEZCA LOS PERMISOS DE MEMORIA

Esto se hace para evitar que se adjunte un depurador en tiempo de ejecución. De esta manera, cuando un depurador se conecta al proceso internamente, el sistema llama a esta función pero, en lugar de crear un hilo para iniciar la depuración, el código de operación "ret" obliga a la función a regresar sin crearla. En resumen, evita que un depurador se conecte correctamente. Se realiza antes de enumerar el proceso del sistema.

El malware comprueba el idioma de la máquina con la función "GetUserDefaultUILanguage" y guarda el valor en la pila; no se verifica automáticamente después de la llamada, pero es importante más adelante.

Maze crea un mutex con el nombre "Global x" donde x es un valor especial que es único por máquina. Por ejemplo, en la siguiente captura de pantalla (se ha eliminado alguna información para anonimizar la máquina utilizada para el análisis) es un ejemplo de este comportamiento. Se hace para evitar dos o más ejecuciones al mismo tiempo.

FIGURA 14. CREACIÓN DE UN MUTEX PARA EVITAR LA DOBLE EJECUCIÓN. ÚNICO POR MAQUINA

El malware, después de crear el mutex, realiza llamadas a la función "GetLastError" para verificar dos errores:

  • 0x05 -> ERROR_ACCESS_DENIED. Si el malware recibe este error, significa que el mutex ya existe en el sistema pero, por alguna razón, el malware no puede acceder a él (tal vez privilegios, políticas, etc.).
  • 0xb7 -> ERROR_ALREADY_EXISTS. Si el malware recibe este error, significa que el mutex ya existe en el sistema y se puede acceder a él.

Si ocurre cualquiera de los anteriores, el malware permanece en ejecución pero no encripta ningún archivo en el sistema ni utiliza ningún recurso de la máquina. Significa que aparecerá en la lista de programas utilizando el 0% del procesador.

El valor mutex cambia por muestra o de forma periódica para evitar la posibilidad de que se realicen vacunas contra él. El malware también tiene un comando para evitar el "problema" de las vacunas que se explicará más adelante.

Después del mutex, el malware comprueba el idioma previamente guardado en la pila, por ejemplo, con el idioma 0x419 (ruso de la Federación de Rusia, ru-RU (8)).

Las comprobaciones se realizan de forma ofuscada dentro de la mezcla del código que tiene el malware (en la máquina virtual utilizada aquí se utilizó el idioma español de España (es-ES); es el código 0xC0A que aparece en la pila en el captura de pantalla):

FIGURA 15. COMPROBACIÓN DE LA LENGUA CONTRA LA LENGUA RUSA DE LA FEDERACIÓN RUSA

Si el idioma coincide con alguno de los de la lista a continuación, el malware limpiará la memoria y saldrá del hilo principal sin desperdiciar recursos ni crear ningún archivo.

  • 0x419 -> ru-RU (ruso de la Federación de Rusia)
  • 0x422 -> uk-UA (ucraniano de Ucrania)
  • 0x423 -> be-BY (bielorruso de Bielorrusia)
  • 0x428 -> tg-Cyrl-TJ (tayiko (cirílico de Tayikistán)
  • 0x42B -> hy-AM (armenio de Armenia)
  • 0x42C -> az-Latn-AZ (azerbaiyano (latín de Azerbaiyán))
  • 0x437 -> ka-GE (georgiano de Georgia)
  • 0x43F -> kk-KZ (kazajo de Kazajstán)
  • 0x440 -> ky-KG (Kirguistán de Kirguistán)
  • 0x442 -> tk-TM (turcomanos de Turkmenistán)
  • 0x443 -> uz-Latn-UZ (uzbeco (latín de Uzbekistán))
  • 0x444 -> tt-RU (tártaro de la Federación de Rusia)
  • 0x818 -> ro-MD (rumano de Moldavia, ¡NO rumano de Rumania!)
  • 0x819 -> ru-MD (ruso de Moldavia)
  • 0x82C -> az-Cyrl-AZ (azerbaiyano (cirílico de Azerbaiyán))
  • 0x843 -> uz-Cyrl-UZ (uzbeko (cirílico de Uzbekistán))
  • 0x7C1A -> sr (serbio)
  • 0x6C1A -> sr-Cyrl (serbio en cirílico)
  • 0x1C1A -> sr-Cyrl-BA (serbio (cirílico de Bosnia y Herzegovina))
  • 0x281A -> sr-Cyrl-RS (serbio (cirílico de Serbia))
  • 0x81A -> sr-Latn-CS (serbio (latín)) (este código de idioma comienza desde Windows Vista)

El malware intenta eliminar los volúmenes shadow en el sistema usando el programa "wmic.exe" con los interruptores "shadowcopy" y "delete". Antes de esto, el malware obtiene la función de "WoW64DisableWow64FsRedirection" con "GetProcAddress" y lo utiliza para evitar la redirección por defecto en los sistemas operativos de 64 bits y lo llama de forma dinámica.

El malware intenta eliminar las instantáneas dos veces, una antes de encriptar los archivos en el sistema infectado y, en segundo lugar, después de encriptarlos.

Esta ejecución se realiza con la función "CreateProcessW" pero, para aumentar el nivel de ofuscación, el malware se inicia con este comando:

FIGURA 16. ELIMINACIÓN DE COPIAS DE SOMBRA EN EL SISTEMA INFECTADO CON EL COMANDO WMIC

Como puede ver en la imagen de arriba, el malware utiliza un comando con el nombre de las carpetas que no existen por defecto en Windows, excepto "Windows", "system32" y "wbem". Entra en estas carpetas pero luego las sale rápidamente con el comando "..", lo que significa que vuelve a la carpeta anterior en la ruta.

Por ejemplo, al principio ingresa las carpetas "ydw" y "fdygg", pero luego regresa a la raíz de la unidad de instalación de Windows con dos comandos ".." que conducen a "C: " en este caso. Más tarde se concatena con la carpeta "Windows" y continúa con el mismo comportamiento para finalmente entrar en "system32" donde llama al programa "wmic.exe" con los interruptores para eliminar los volúmenes sombra. Esto se hace para intentar ofuscar esta llamada, aunque tal comportamiento sospechoso puede hacer que un programa antivirus lo detenga de todos modos, pero es una prueba de que los codificadores de malware tienen habilidades en programación y una buena comprensión del comportamiento de Windows.

Es importante comprender que esta "ruta" utilizada en el comando con carpetas inexistentes es aleatoria y no necesita usar la misma cantidad de carpetas para realizar la ofuscación.

Después del proceso de eliminación, el malware obtiene la función "Wow64RevertWow64FsRedirection" utilizando la función "GetProcAddress" y lo llama de forma dinámica para dejar el sistema en el mismo estado que antes.

FIGURA 17. RECUPERAR LA REDIRECCIÓN FS EN SISTEMAS OPERATIVOS DE 64 BITS

Maze también afecta los recursos de red, utilizando las funciones "WNetOpenEnumW", "WNetEnumResourceW", "WNetCloseEnum" y "WNetAddConnection2W".

FIGURA 18. ENUMERANDO LOS RECURSOS DE RED DEL DISCO PARA CRIPTAR ARCHIVOS DENTRO DE ELLOS

El malware usa dos algoritmos para encriptar los archivos, ChaCha que se basa en el algoritmo Salsa20 que es simétrico y, para protección, un algoritmo RSA que es asimétrico

En cada ejecución, el malware crea un BLOB público de una clave RSA que se utilizará para cifrar la parte que contiene la información para descifrar los archivos, y un BLOB privado con una clave RSA que permite descifrar la información cifrada con el blob RSA público creado previamente.

FIGURA 19. EXPORTACIÓN DEL BLOB CLAVE PÚBLICO DE RSA GENERADO EN EL TIEMPO DE EJECUCIÓN

FIGURA 20. EXPORTACIÓN DEL BLOB DE CLAVE PRIVADO RSA GENERADO EN TIEMPO DE EJECUCIÓN

Al igual que otros ransomware, este malware tiene un BLOB público RSA integrado que se importará para proteger el BLOB privado RSA de la víctima. Solo los desarrolladores de malware tienen el blob privado RSA para descifrar su Blob RSA público.

FIGURA 21. IMPORTACIÓN DEL BLOB PÚBLICO DE RSA PARA LOS DESARROLLADORES DE MALWARE

Esta clave está protegida con una criptografía usando una clave de 32 bits y iv de 8 bytes usando la función "CryptGenRandom" para evitar volcados de memoria pero, más tarde, será necesario descifrarla antes de usarla.

Después de esto, el malware inicia el procedimiento de cifrar los archivos, buscando en unidades, antes de importar la clave BLOB pública RSA generada en tiempo de ejecución. Después de esto, crea la nota de rescate preparada para esta máquina infectada en la carpeta raíz y luego comienza a buscar carpetas y archivos para encriptar.

FIGURA 22. CREACIÓN DE NOTA DE RANSOM EN CARPETA DE RAÍZ Y BUSCANDO CARPETAS Y ARCHIVOS

A continuación se muestra un ejemplo de nota de rescate, con algunos datos anonimizados:

FIGURA 23. EJEMPLO DE UNA NOTA DE RANGO DE LAZO

El procedimiento para cifrar los archivos es fácil, ya que el malware sigue los siguientes pasos:

  • Verifique la existencia del archivo con la función "SetFileAttributesW" con el atributo "FILE_ATTRIBUTE_ARCHIVE".
  • Reserve memoria para el archivo con una llamada a "Virtual Alloc" para la clave y iv.
  • Abra el archivo con permisos de lectura y escritura con la función "CreateFileW" con el indicador "OPEN_EXISTING".
  • Obtenga el tamaño del archivo con la función "GetFileSizeEx" (es importante para administrar archivos grandes, "GetFileSize" no es bueno para archivos más grandes).
  • Cree una asignación de archivo con las funciones "CreateFileMappingW" y "MapViewOfFile"
  • Genere una clave aleatoria de 32 bytes con la función "CryptGenRandom".
  • Genere un iv aleatorio de 8 bytes con la función "CryptGenRandom".
  • Reserve 264 bytes de memoria con la función "VirtualAlloc".
  • Genere una nueva extensión aleatoria para el archivo de la víctima. Cada archivo tiene una extensión diferente pero no pierde la extensión original; el nuevo se agrega al anterior. Por ejemplo, "1.zip" se convierte en "1.zip.gthf".
  • Cifre el archivo con el algoritmo ChaCha y la clave y iv con la clave pública RSA generada en tiempo de ejecución.
  • Escriba este nuevo bloque con la clave y iv para descifrar al final del archivo.
  • Cambie el nombre del archivo con la función "MoveFileExW". De esa manera, no es posible usar herramientas forenses para recuperar los archivos porque usan el mismo sector en el disco sin formato. El malware no elimina el archivo con la función "DeleteFileW" y luego crea uno nuevo con los datos cifrados. En cambio, todos los cambios se aplican en la asignación directamente, en la memoria, sin usar un puntero de archivo en el disco para leer y escribir, lo que hace que el proceso sea mucho más rápido.
  • La imagen del archivo no está asignada y se maneja cerrada.
  • El proceso se repite con nuevos archivos.

La lista de carpetas que evita el malware es:

  • Directorio principal de Windows.
  • Juegos
  • Navegador Tor
  • ProgramData
  • caché2 entradas
  • Bajo Content.IE5
  • Datos de usuario Predeterminado Caché
  • Todos los usuarios
  • Configuraciones locales
  • AppData Local
  • Archivos de programa

El malware ignora estas extensiones de archivo:

El malware también tiene una lista de nombres de archivo que no se cifrarán:

  • inf
  • ini
  • ini
  • dat
  • db
  • bak
  • dat.log
  • db
  • compartimiento
  • DECRYPT-FILES.txt

Sin embargo, encripta el archivo "ntuser.ini" para evitar que otros ransomwares lo cifren. Crea la nota de rescate en cada carpeta que puede.

Cuando el malware termina de encriptar todos los archivos, cambia el fondo de escritorio a esta imagen:

FIGURA 24. EL MALWARE CAMBIA EL FONDO DE ESCRITORIO DESPUÉS DE CRIPTAR LOS ARCHIVOS

El malware intenta realizar conexiones a direcciones IP que se han cifrado en el binario para enviar información sobre la máquina infectada, como se ve a continuación:

hxxp: //91.218.114.4/nwjknpeevx.action? pw = g1y652l & ​​kyn = 21y3vvhh & dvr = 5e & us = g25e3582a

hxxp: //91.218.114.11/forum/siaib.jspx? v = h & xyna = 0vip863 & eul = xsn3q0

hxxp: //91.218.114.26/view/ticket/pigut.jspx? o = 664quo0s & fp = ot52

hxxp: //91.218.114.25/xrr.jspx? ygad = r35e2cx & e = 6as6ta

hxxp: //91.218.114.4/j.php

hxxp: //91.218.114.11/payout/view/fa.aspx? y = y & qbx = 4 & kws = n2 & iuy = 8k7

hxxp: //91.218.114.25/lxh.asp? mtxm = l7 & r = 836wy5

hxxp: //91.218.114.26/signin/ticket/eq.action? x = yk6rr & e = 50b & q = 327dr5 & ofk = 065cdp

hxxp: //91.218.114.31/signin/rnmnnekca.jsp? kdn = 6snl5 & e = 7a50cx4hyp

hxxp: //91.218.114.31/forum/a.aspx? byx = 56 & bc = 62t0h & u = 75w6n6 & sot = 2v0l761or6

hxxp: //91.218.114.32/withdrawal/checkout/l.do? nuny = qj6 & sdv = 45g2boyf5q & dnr = rh8lk31ed

hxxp: //91.218.114.77/task/bxfbpx.jspx? nq = cge63

hxxp: //91.218.114.38/account/payout/ujwkjhoui.shtml

hxxp: //91.218.114.37/imrhhjitop.phtml? wto = 344dsc84 & sp = x & oml = c173s71u & iy = m3u2

hxxp: //91.218.114.38/auth/login

hxxp: //91.218.114.79/logout/hfwdmugdi.php? upaj = mj7g

hxxp: //91.218.114.38/sepa/juel.php? ars = 51qse4p3y & xjaq = r5o4t4dp

hxxp: //91.218.114.32/fwno.cgi? yd = 410 & o = y7x5kx371 & p = m3361672

hxxp: //91.218.114.37/sepa/signout/mjsnm.aspx? r = 7o47wri & rtew = uu8764ssy & bri = 51gxx6k5 & opms = 72gy0a

hxxp: //91.218.114.77/payout/analytics/lrkaaosp.do? y = 62h & aq = 3jq8k6 & v = 0svt

hxxp: //91.218.114.79/create/dpcwk.php? u = 28qy0dpmt & qwbh = k & f = g1ub5ei & ek = 3ee

Es importante tener en cuenta que el malware falsifica la cadena POST para hacer la conexión con una elección aleatoria de una lista de cadenas posibles como "foro", "php", "vista", etc., para dificultar la detección con IPS u otros filtros en la red.

Las direcciones IP se detectan desde la Federación de Rusia, pero eso no prueba que el malware provenga de este país; podría ser una mala dirección deliberada pero, con las verificaciones de idiomas de los países de la CEI, ciertamente parece posible.

El uso de direcciones IP en lugar de nombres de dominio es para evitar resoluciones DNS que pueden ser alteradas o redirigidas a un bucle invertido, por ejemplo, utilizando el archivo "host" en Windows. Esto hace que el rastreo de IP sea más complicado y evita que se bloquee la conexión.

El malware utiliza este agente para establecer la conexión, pero puede cambiar entre muestras:

FIGURA 25. AGENTE UTILIZADO PARA HACER CONEXIONES A LAS DIRECCIONES IP C2C

De un volcado de memoria podemos extraer las direcciones IP utilizadas por estas conexiones, así como una cadena curiosa que habla de Lawrence Abrams, el administrador del sitio web "bleepingcomputer", que fue contactado directamente por los desarrolladores. No se sabe por qué incluyeron esta dirección de correo electrónico porque no tiene relación con la nota de rescate y no se usa en ningún otro lugar. ¿Quizás es un medio de burlarse del administrador de un sitio que informa con frecuencia sobre ransomware?

FIGURA 26. DIRECCIONES IP C2C EXTRACTAS DE LA MEMORIA

Las conexiones a las direcciones IP C2C, en un pcap usando Wireshark, se pueden ver perfectamente:

FIGURA 27. CONEXIÓN EN PCAP CON LAS DIRECCIONES IP C2C

Maze tiene algunas cadenas en la memoria que son interesantes y algo que puede valer la pena analizar en el futuro:

FIGURA 28. CUERDA CURIOSA PARA INVESTIGACIÓN FUTURA

La página web para realizar el pago solicitado en la nota de rescate da un precio y verifica que todo sea correcto.

FIGURA 29. PÁGINA WEB DE PAGO DE LAZO DESPUÉS DE DESCRITAR LA NOTA DE RANGO

Maze tiene una función de chat para contactar a los operadores y recibir información sobre cómo obtener la criptomoneda requerida para realizar el pago.

Por supuesto, como con muchos tipos de ransomware, hay una oferta para descifrar tres imágenes de forma gratuita y se ha verificado que el servicio funciona:

FIGURA 30. LA ENCRIPTACIÓN GRATUITA FUNCIONA PARA QUE LA MUESTRA DE MALWARE ES CORRECTA

INTERRUPTORES

El malware tiene algunos interruptores que se pueden usar en la línea de comando para iniciar. Estos interruptores pueden deshabilitar algunos elementos o habilitar el registro.

Los interruptores son:

  • –Nomutex -> Este modificador evita comprobar el mutex para que pueda ejecutar más de una instancia en la misma máquina. También se puede usar para evitar las vacunas que se hacen antes de que el malware cree el nombre mutex en la máquina.
  • –Noshares -> Con este interruptor, el malware no cifrará los recursos compartidos de red, solo la máquina local.
  • –Path x -> Donde x es una ruta completa. En este caso, el malware cifrará todos los archivos en todas las carpetas a partir de esta ruta a menos que sean nombres en la lista negra, extensiones o nombres de carpetas. Esto es útil para que los desarrolladores de malware ataquen una ruta especial en lugar de perder tiempo yendo tras una máquina llena y hace que el ataque sea más específico.
  • –Logging -> Si este interruptor está habilitado, el malware registrará todos los pasos que realice. Útil para los desarrolladores de malware en entornos de depuración, o en la fase de ataque para saber que todo estaba bien, paso a paso. Aquí hay un pequeño ejemplo de esta información:

FIGURA 31. EJEMPLO DE LA INFORMACIÓN QUE EL MALWARE PUEDE DAR CON EL INTERRUPTOR DE REGISTRO

OTRAS MUESTRAS

En enero de 2020 apareció una nueva versión del malware con un texto especial dedicado a algunos investigadores en el campo de la seguridad. Los desarrolladores de malware parecen haber elegido a esas personas para ser provocativas y burlarse de ellas.

La muestra fue descubierta por malwrhunterteam (9) el 28 de enero de 2020. La muestra tiene algunas diferencias en comparación con la anterior que se analizó en este informe. Esas diferencias se cubrirán más adelante a través de otra muestra que Luca Nagy (10) encontró el 30 de enero de 2020.

Lo más importante aquí es que los desarrolladores parecen haber seleccionado cuidadosamente a los investigadores y esperaron a que respondieran como un truco psicológico, y funcionó, porque todos respondieron, controlando a los desarrolladores de malware sobre la versión de su malware detectado en el 28th.

Aquí hay una respuesta de un desarrollador de malware a este trolling que contiene algunos datos interesantes:

FIGURA 32. RESPUESTA DE UN DESARROLLADOR DE MALWARE

  • No se sabe si una persona está detrás del malware o no. Es curioso que dijeron "yo" en lugar de "nosotros" dos veces en su respuesta. Entonces, tal vez fue escrito por una persona para fines de trolling, o tal vez el desarrollador del malware realmente es solo una persona (o quieren que los investigadores piensen que ese es el caso).
  • Otro hecho importante en la nota es la charla sobre las herramientas utilizadas por uno de los investigadores para el análisis regular de malware. ¿Por qué mencionan análisis regulares de malware? ¿Es porque están revertiendo el malware por diversión o podría ser su trabajo diario? ¿Podría ser que quizás el desarrollador sea un investigador (por la forma en que hablan con otros y los provocan)? En segundo lugar, el análisis de malware se menciona más de una vez y, en tercer lugar, dijeron que crearon un script IDAPython para eliminar todo el código ofuscado que tiene el malware (el ransomware puede haber recibido el nombre 'Maze' debido a cómo el análisis es como caminar a través de un laberinto). Entonces, ¿puede ser un investigador que conoce muy bien IDAPro o es un desarrollador avanzado (y el código ofuscado en Maze está muy bien hecho) o tal vez es un desarrollador que tiene otro trabajo en la vida normal además de la creación de malware? Por supuesto, estas son solo posibilidades, no hechos.
  • El desarrollador de malware logró su objetivo con esta interacción ya que su audiencia objetivo vio la respuesta y habló sobre su malware, como se señaló en la línea final de su respuesta "… pero necesita saber que los amamos investigadores sin usted, nuestro trabajo también sería Fuc **** aburrido como el infierno ".

Es curioso que aquí dijeron "nosotros" en lugar de "yo" como antes, pero ¿tal vez estaban hablando de todo el desarrollo de malware?

Las diferencias que tienen estas muestras son:

  • Por lo general, viene como un archivo DLL en lugar de un archivo EXE. No se ejecuta en sistemas operativos Windows anteriores a Vista, ya que esto dificulta el análisis. Al usar el malware como una DLL, pueden inyectar este módulo en un proceso de destino más fácilmente que si usan una muestra EXE del malware.
  • En lugar de eliminar los "Volúmenes de sombra", los desarrolladores usan WMIC con el truco especial de la ruta como se mencionó anteriormente, usando clases de WMIC para controlar los Volúmenes de sombra. Un ejemplo de este uso se puede ver en la siguiente imagen.

FIGURA 33. USO DE CLASES DE WMIC SI ES NECESARIO OBTENER LOS VOLUMENES DE SOMBRA

Cada muestra de malware utiliza diferentes cadenas como PDB para enviar mensajes o hacer que la muestra sea única, por ejemplo:

  • C: somerandomsh ** sh ** obama.pdb
  • C: kill yourself chinese idio * .pdb

(En estos ejemplos, algunas cosas se eliminaron o cambiaron para eliminar información confidencial en el informe).

Las nuevas muestras descubiertas en enero de 2020 hacen estas conexiones al C2 (o intentan hacerlas):

FIGURA 34. CONEXIONES A C2 IP DE LAS NUEVAS MUESTRAS

Como podemos ver, son las mismas IP que se ven en las versiones anteriores del malware.

Las fechas de compilación de las muestras son del 24 de enero de 2020 (la primera versión con las cadenas que provocaron a los investigadores) al 28 de enero de 2020 (la versión con las respuestas a los investigadores), lo que significa que se hicieron el mismo día que Las respuestas a la versión anterior se publicaron en Twitter.

Otro hecho interesante de la muestra posterior es que, además de decir que el código de idioma utilizado para programarlo era coreano, las IP donde se conecta pertenecen a la Federación Rusa como antes, como se puede ver en las siguientes dos imágenes.

FIGURA 35. CÓDIGO DE IDIOMA "USADO" EN LA MUESTRA DEL EMPAQUE, NO EN EL MALWARE

FIGURA 36. TODOS LOS DOMINIOS C2 PERTENECEN A LA FEDERACIÓN RUSA

Es imposible saber la verdad, pero esto podría ser un truco para tratar de inducir a error a los investigadores a pensar que el malware proviene de un país cuando en realidad se origina en otro. Se sabe que los desarrolladores de malware a menudo verifican el idioma en las máquinas de las víctimas potenciales para evitar los países de la CEI, por lo que podemos suponer que la verificación del idioma "coreano" fue un truco diseñado para engañar, pero es imposible saberlo con certeza. Por supuesto, el idioma "coreano" se puede cambiar manualmente, o podría ser un empaquetador coreano, pero es imposible decirlo con certeza.

CONCLUSIÓN

Maze es un ransomware creado por desarrolladores expertos. Utiliza muchos trucos para hacer que el análisis sea muy complejo deshabilitando los desensambladores y usando complementos de pseudocódigo.

Representa un gran problema para las personas y las empresas que no pagan, ya que los desarrolladores amenazan con divulgar la información si no reciben el pago y, de hecho, mantienen su palabra al respecto. Cada vez más ransomwares exhiben el mismo comportamiento y esperamos ver más este año y tal vez más en el futuro también.

Los desarrolladores de malware están activos en los sitios de redes sociales, como Twitter, y están familiarizados con el trabajo de los investigadores de malware. También saben cómo provocarlos perfectamente y les gusta jugar al gato y al ratón con ellos.

Recomendamos realizar copias de seguridad periódicas de los archivos y mantenerlos aislados de la red y tener un antivirus siempre actualizado. También se debe aplicar el último parche de software. Se deben evitar las conexiones de escritorio remoto que no son necesarias.

Evite correos electrónicos sospechosos y no abra archivos adjuntos que provienen de personas que no conoce. Lo mismo ocurre con los enlaces en los correos electrónicos y, incluso si provienen de una fuente conocida, consulte con el remitente si tiene alguna duda. Además, deshabilite las macros en los programas de Office y nunca las habilite a menos que sea esencial hacerlo.

COBERTURA

McAfee protege contra esta amenaza en todos sus productos, incluidos antivirus personal, punto final y puerta de enlace.

Los nombres que puede tener son:

REGLA DE YARA

regla maze_unpacked Equipo McAfee ATR "

instrumentos de cuerda:

$ opcode_sequence = 5589e583ec208b450c8b4d08c745fc00

$ opcode_sequence_2 = 5589e553575683e4f883ec28c7042400

$ opcode_sequence_3 = 5589e55dc3662e0f1f84000000000090

$ opcode_sequence_4 = 5589e553575683e4f081ec600200008b

$ opcode_sequence_5 = 5589e553575683e4f081ecc00000000f

$ opcode_sequence_6 = 5589e583ec208b45108b4d0c8b550883

$ opcode_sequence_7 = 5589e5575683ec388b45108b4d0c8b55

$ opcode_sequence_8 = 5589e5575683e4f883ec088b45088b48

$ opcode_sequence_9 = 558b6c241468997a41000f84bdc50000

$ opcode_sequence_10 = 5589e553575683e4f883ec588b5d088b

$ opcode_sequence_11 = 5589e553575683e4f083ec408a42048b

$ opcode_sequence_12 = 5589e583ec188b4508837d08008945fc

$ opcode_sequence_13 = 5589e553575683e4f8b8d05b0000687f

$ opcode_sequence_14 = 5589e5508b450831c98945fc89c883c4

$ opcode_sequence_15 = 5589e553575683e4f883ec708b5d0889

$ opcode_sequence_16 = 5589e583ec308b45088b4d08894df883

$ opcode_sequence_17 = 5589e553575683e4f881ec18030000f2

$ opcode_sequence_18 = 5589e583ec188b45088b4d08894df48b

$ opcode_sequence_19 = 5589e583ec2056be74c14400566a0068

$ opcode_sequence_20 = 5589e553575683e4f081ec900000008b

$ opcode_sequence_21 = 5589e583e4f083ec208b4d108b450c0f

$ opcode_sequence_22 = 5589e55383e4f883ec108b4d0c8b4508

$ opcode_sequence_23 = 558b8e150409133f03fd08f81b0c4f22

$ opcode_sequence_24 = 5589e553575683e4f883ec7031f68379

$ opcode_sequence_25 = 5589e553575683e4f881ec3001000089

$ opcode_sequence_26 = 5589e553575683e4f881ece00000000f

$ opcode_sequence_27 = 558b589608361d1943a57d0ba6492beb

$ opcode_sequence_28 = 5589e553575683e4f883ec1089ce6a00

$ opcode_sequence_29 = 5589e5575683e4f883ec688b75088b7d

$ opcode_sequence_30 = 5589e553575683e4f883ec386a006a00

$ opcode_sequence_31 = 558b7c240868dca8440057683d484300

$ opcode_sequence_32 = 5589e55683e4f881ec2801000089ce8d

$ opcode_sequence_33 = 5589e583ec188b450831c98b5508c704

$ opcode_sequence_34 = 5589e583ec308b450c8b4d088b55088b

$ opcode_sequence_35 = 5589e583ec348b450831c983c1188b55

$ opcode_sequence_36 = 5589e553575683e4f881ec78040000f2

$ opcode_sequence_37 = 5589e583ec108b4508837d08008945f8

$ opcode_sequence_38 = 5589e583ec348b4508837d08008945dc

$opcode_sequence_39 = 5589e55683ec548b45088b4d08894df0

$opcode_sequence_40 = 558bec5de9a48efeffe9ef8efeffcccc

$opcode_sequence_41 = 5589e553575683ec108b45108b4d0c8b

$opcode_sequence_42 = 5589e5575683ec348b4508c745f40100

$opcode_sequence_43 = 558bec8325a0c345000083ec1c5333db

$opcode_sequence_44 = 5589e553575683e4f083ec208b750c0f

$opcode_sequence_45 = 5589e583ec348b450c8b4d088b55088b

$opcode_sequence_46 = 558b6fd8d843ef516154e2526781aecd

condition:

( uint16(0) == 0x5a4d) and 38 of them

IOCs

Network

Domain          mazedecrypt.top

IP                     91.218.114.11

IP                     91.218.114.25

IP                     91.218.114.26

IP                     91.218.114.31

IP                     91.218.114.32

IP                     91.218.114.37

IP                     91.218.114.38

IP                     91.218.114.4

IP                     91.218.114.77

IP                     91.218.114.79

MITRE ATT&CK COVERAGE

  • CommonlyUsedPort
  • StandardApplicationLayerProtocol
  • SecuritySoftwareDiscovery
  • SystemTimeDiscovery
  • CommandLineInterface
  • DataEncrypted
  • DataEncryptedForImpact
  • Query registry
  • Hooking

(1) https://twitter.com/jeromesegura/status/1133767240686288896

(2) https://www.bleepingcomputer.com/news/security/maze-ransomware-demands-6-million-ransom-from-southwire/

(3) https://www.bleepingcomputer.com/news/security/nemty-ransomware-to-start-leaking-non-paying-victims-data/

(4) https://twitter.com/McAfee_Labs/status/1206651980086685696

(5) https://www.bleepingcomputer.com/news/security/new-threat-actor-impersonates-govt-agencies-to-deliver-malware/

(6) https://securityintelligence.com/news/spelevo-ek-exploits-flash-player-vulnerability-to-deliver-maze-ransomware/

(7) https://github.com/revsic/AntiDebugging

(8) https://ss64.com/locale.html

(9) https://twitter.com/malwrhunterteam/status/1222253947332841472

(10) https://twitter.com/luca_nagy_/status/1222819371644522500





Enlace a la noticia original