Clop Ransomware | Blogs de McAfee


Este nuevo ransomware fue descubierto por Michael Gillespie el 8 de febrero de 2019 y sigue mejorando con el tiempo. Este blog explicará los detalles técnicos y compartirá información sobre cómo está funcionando esta nueva familia de ransomware. Existen algunas variantes del ransomware Clop, pero en este informe, nos centraremos en la versión principal y destacaremos parte de esas variaciones. El objetivo principal de Clop es cifrar todos los archivos en una empresa y solicitar un pago para recibir un descifrador para descifrar todos los archivos afectados. Para lograr esto, observamos algunas técnicas nuevas utilizadas por el autor que no hemos visto antes. Claramente en los últimos meses hemos visto técnicas más innovadoras que aparecen en ransomware.

Descripción general de Clop

El ransomware Clop generalmente está empaquetado para ocultar su funcionamiento interno. La muestra que analizamos también fue firmada con el siguiente certificado en la primera versión (ahora revocada):

FIGURA 1. Packer firmado para evitar programas av y engañar al usuario

Firmar un binario malicioso, en este caso ransomware, puede engañar a las soluciones de seguridad para que confíen en el binario y lo dejen pasar. Aunque este certificado inicial fue revocado en unos días, apareció otra versión poco después con otro certificado:

FIGURA 2. Nuevo certificado en nueva versión

Esta muestra fue descubierta por MalwareHunterTeam (https://twitter.com/malwrhunterteam) el 26 de febrero de 2019.

Descubrimos las siguientes muestras de ransomware Clop que se firmaron con un certificado:

Este malware está preparado para evitar ejecutarse bajo ciertas condiciones, por ejemplo, en la primera versión que solicita que se instale como servicio; si eso no tiene éxito, terminará por sí mismo.

La primera acción del malware es comparar el teclado de la computadora víctima usando la función "GetKeyboardLayout" con los valores codificados.

Esta función devuelve el diseño de entrada del teclado del usuario en el momento en que el malware llama a la función.

El malware comprueba que el diseño es mayor que el valor 0x0437 (georgiano), hace algunos cálculos con el idioma ruso (0x0419) y con el idioma de Azerbaiyán (0x082C). Esta función devolverá 1 o 0, 1 si pertenece a Rusia u otro país de la CEI, o 0 en cualquier otro caso.

FIGURA 3. Verificación de la distribución del teclado

Si la función devuelve 0, irá al flujo normal del malware, de lo contrario obtendrá el contexto del dispositivo de toda la pantalla con la función "GetDC". Otra condición vendrá de la función "GetTextCharset" que devuelve la fuente utilizada en el sistema si no tiene el valor 0xCC (RUSSIAN_CHARSET). Si es el juego de caracteres utilizado, el malware se eliminará del disco y terminará con "TerminateProcess", pero si no es este juego de caracteres, continuará en el flujo normal. Esta doble verificación evita a los usuarios un lenguaje multisistema, es decir, tienen El idioma ruso instalado pero no activo en la máquina para evitar este tipo de malware.

FIGURA 4. Verifique el juego de caracteres del texto y compárelo con el juego de caracteres ruso

El código que se supone que elimina el ransomware del disco contiene un error. Llamará directamente al indicador del sistema sin esperar a que termine el malware. Esto significa que la ejecución del comando será correcta pero, como el malware todavía se está ejecutando, no lo eliminará del disco. Esto sucede porque el autor no utilizó un comando de "tiempo de espera".

FIGURA 5. Eliminación del malware en sí

La siguiente acción del malware es crear un nuevo hilo que iniciará todos los procesos. Con el controlador de este hilo, esperará una cantidad infinita de tiempo para terminar con la función "WaitForSingleObject" y luego volverá a la función winMain y saldrá.

La primera acción de este hilo es crear un archivo llamado "Favorito" en la misma carpeta que el malware. Más tarde, verificará el último error con "GetLastError" y, si el último error fue 0, esperará con la función "Suspender" durante 5 segundos.

Más tarde, el hilo hará una llamada ficticia a la función "EraseTape" con un identificador de 0, tal vez para molestar a los emuladores porque el identificador se pone a 0 en un código de operación codificado, y luego una llamada a la función "DefineDosDeviceA" con un valor no válido nombre que devuelve otro error. Estas operaciones harán un ciclo por 666000 veces.

FIGURA 6. Bucle para perturbar el análisis.

La siguiente acción es buscar algunos procesos con estos nombres:

  • SBAMTray.exe (producto antivirus Vipre)
  • SBPIMSvc.exe (producto antivirus Sunbelt AntiMalware)
  • SBAMSvc.exe (producto antivirus GFI AntiMalware)
  • VipreAAPSvc.exe (producto antivirus Vipre)
  • WRSA.exe (producto antivirus WebRoot)

Si se descubren algunos de estos procesos, el malware esperará 5 segundos usando "Suspender" y luego otros 5 segundos. Después de esos "dormir", el malware continuará con su flujo normal. Si no se detectan estos procesos, accederá a sus propios recursos y los extraerá con el nombre "OFFNESTOP1". Ese recurso está encriptado pero tiene un archivo ".bat".

FIGURA 7. Acceso al primer recurso cifrado

El descifrado es una operación XOR simple con bytes de esta cadena:

"Po39NHfwik237690t34nkjhgbClopfdewquitr362DSRdqpnmbvzjkhgFD231ed76tgfvFAHGVSDqhjwgdyucvsbCdigr1326dvsaghjvehjGJHGHVdbas".

La siguiente acción es escribir este archivo por lotes en la misma carpeta donde el malware permanece con la función "CreateFileA". El archivo creado tiene el nombre "clearsystems-11-11.bat". Más tarde lo lanzará con “ShellExecuteA”, espere 5 segundos para finalizar y elimine el archivo con la función “DeleteFileA”.

Está claro que los autores no son programadores experimentados porque están usando un archivo .bat para las siguientes acciones:

  • Elimine los volúmenes de sombra con vssadmin ("vssadmin Delete Shadows / all / quiet").
  • Cambie el tamaño del almacenamiento de sombra para todas las unidades comenzando por las letras de las unidades C a H (letras codificadas) para evitar que los volúmenes de sombra se vuelvan a crear.
  • Usar el programa bcedit para deshabilitar las opciones de recuperación en el arranque de la máquina y configurarlo para ignorar cualquier falla en el arranque que advierta al usuario.

Todas estas acciones podrían haberse realizado en el propio código de malware, sin la necesidad de un archivo externo que pueda ser detectado y eliminado.

FIGURA 8. El archivo BAT para deshabilitar los volúmenes sombra y más seguridad

La siguiente acción es crear un mutex con el nombre codificado "Fany — Fany — 6-6-6" y luego hacer una llamada a la función "WaitForSingleObject" y verificar el resultado con 0. Si el valor es 0, significa que el mutex se creó para esta instancia del malware, pero si obtiene otro valor, significa que el mutex se hizo a partir de otra instancia o vacuna y, en este caso, finalizará la ejecución del malware.

Después de esto, creará 2 subprocesos, uno para buscar procesos y el otro para encriptar archivos en los recursos compartidos de red a los que tiene acceso.

El primer hilo enumera todos los procesos del sistema y crea el nombre del proceso en mayúsculas y calcula un hash con el nombre y lo compara con una gran lista de hashes. Este algoritmo hash es un algoritmo personalizado. Es típico en el malware que intenta ocultar qué procesos están buscando. Si encuentra uno de ellos, lo terminará con la función "TerminateProcess" después de abrir con los derechos para realizar esta acción con la función "OpenProcess".

El malware contiene 61 hashes codificados de programas tales como "STEAM.EXE", programas de bases de datos, programas de oficina y otros.

A continuación, los primeros 38 hashes con los nombres de proceso asociados. Estos 38 procesos son los procesos más habituales para cerrar, como hemos observado con otras familias de ransomwares como GandCrab, Cerber, etc.

Este hilo se ejecuta en un bucle infinito con una espera usando la función "Suspender" por iteración de 30 minutos.

FIGURA 9. Hilo para matar procesos críticos para desbloquear archivos

El segundo hilo creado tiene la tarea de enumerar todos los archivos compartidos de red y criptas en ellos si el malware tiene acceso a ellos.

Para ejecutar esta tarea, utiliza las funciones API típicas del módulo "MPR.DLL":

  • WNetOpenEnumW
  • WNetEnumResourceW
  • WNetCloseEnum

Este hilo comienza a crear una reserva de memoria con la función "GlobalAlloc" para mantener la información de las funciones "MPR".

Para cada recurso compartido de red que descubra el malware, se preparará para enumerar más recursos compartidos y archivos de cifrado.

Para cada carpeta descubierta, la ingresará y buscará más subcarpetas y archivos. El primer paso es verificar el nombre de la carpeta / archivo encontrado en una lista codificada de hashes con el mismo algoritmo utilizado para detectar los procesos a cerrar.

A continuación se muestran los resultados de 12 de los 27 hashes con los nombres correctos:

Si pasa, verificará que el archivo no sea una carpeta y, en este caso, compare el nombre con una lista de nombres codificados y extensiones que están en texto plano en lugar de en formato hash:

  • ClopReadMe.txt
  • ntldr
  • NTDLR
  • boot.ini
  • BOOT.INI
  • ntuser.ini
  • NTUSER.INI
  • AUTOEXEC.BAT
  • autoexec.bat
  • .Clop
  • NTDETECT.COM
  • ntdetect.com
  • .dll
  • .DLL
  • .exe
  • .EXE
  • .sys
  • .SYS
  • .ocx
  • .OCX
  • .LNK
  • .lnk
  • desktop.ini
  • autorun.inf
  • ntuser.dat
  • iconcache.db
  • bootsect.bak
  • ntuser.dat.log
  • thumbs.db
  • DESKTOP.INI
  • AUTORUN.INF
  • NTUSER.DAT
  • ICONCACHE.DB
  • BOOTSECT.BAK
  • NTUSER.DATA.LOG
  • THUMBS.DB

Esta verificación se realiza con una función personalizada que verifica el carácter por carácter en toda la lista. Es la razón para tener los mismos nombres en mayúsculas y minúsculas, en lugar de usar la función "lstrcmpiA", por ejemplo, para evitar algún enganche en esta función que impida que el archivo se vea afectado. La verificación de la extensión al mismo tiempo es hacer que el proceso de cifrado sea más rápido. Por supuesto, el malware verifica que el archivo no tenga el nombre de la nota de rescate y la extensión que colocará en el archivo cifrado. Esas extensiones en la lista negra ayudarán al sistema a evitar fallas durante el cifrado en comparación con otras familias de ransomware.

FIGURA 10. Verificación de nombres de archivo y extensiones

Este comportamiento es normal en el ransomware, pero la comprobación previa de los hashes codificados en función del nombre del archivo / carpeta es extraña porque más tarde, como podemos ver en la imagen anterior, la siguiente comprobación es con cadenas de texto sin formato.

Si pasa esta verificación, el malware creará un nuevo hilo con una estructura preparada con un bloque de clave codificado, el nombre del archivo y la ruta donde existe el archivo. En este hilo, la primera acción es eliminar el modo de error con "SetErrorMode" a 1 para evitar que se muestre un diálogo de error al usuario si falla. Más tarde, preparará la ruta al archivo desde la estructura pasada como argumento al hilo y cambiará los atributos del archivo a ARCHIVO con la función "SetFileAttributesW", sin embargo, el malware no verifica si puede realizar esta acción con éxito o no.

Luego generará una clave AES aleatoria y encriptará cada byte del archivo con esta clave, luego colocará la marca "Clop ^ _" al final del archivo, después de la marca colocará la clave utilizada para encriptar el archivo cifrado con la clave maestra RSA que ha codificado el malware para protegerlo contra descifradores gratuitos de terceros.

El malware puede usar 2 claves RSA públicas diferentes: una exportada usando la API criptográfica en un blob público o usando el incrustado en base64 en el malware. El malware solo usará el segundo si no puede crear el contexto de cifrado o si tiene algún problema con las funciones de la API de cifrado.

El malware no es compatible con Windows XP en su uso con las funciones de cifrado, porque el CSP utilizado en Windows XP tiene otro nombre, pero si se ejecuta en otro sistema operativo que comience con Windows Vista, puede cambiar el nombre en el depurador para adquirir el contexto luego generará un blob público RSA.

Otra diferencia con otras familias de ransomware es que Clop solo cifrará el disco que es un disco físico adjunto / incrustado (tipo 3, FIJO o extraíble (tipo 2)). El malware ignora el tipo REMOTO (4)).

De todos modos, los recursos compartidos pueden verse afectados utilizando las funciones "MPR.DLL" sin ningún problema.

FIGURA 11. Marca de archivo en el archivo cifrado y la clave utilizada cifrada

Después de cifrar, el archivo intentará abrir en la misma carpeta la nota de rescate y, si existe, continuará sin sobrescribirla para ahorrar tiempo, pero si la nota de rescate no existe accederá a un recurso en el malware llamado " OFFNESTOP ". Este recurso está cifrado con la misma operación XOR que el primer recurso: el archivo .bat, después de descifrarlo, escribirá la nota de rescate en la carpeta del archivo.

FIGURA 12. Creación de la nota de rescate a partir de un recurso encriptado

Aquí hay una muestra de la nota de rescate de la primera versión de este malware:

FIGURA 13. Ejemplo de nota de rescate de la primera versión del malware

Después de esto, Clop continuará con el siguiente archivo con el mismo proceso, sin embargo, ahora se evita la verificación del nombre basado en el hash.

Segunda versión del malware

La segunda versión encontrada para fines de febrero tiene algunos cambios si se compara con la primera. El hash de esta versión es: "ed7db8c2256b2d5f36b3d9c349a6ed0b".

El primer cambio son algunos cambios en las cadenas en texto plano del código para que la ejecución en la llamada "EraseTape" y la llamada "FindAtomW" sean más lentas. Ahora los nombres son para la cinta: "" y el átomo "".

El segundo cambio es el nombre de los recursos encriptados en el binario, el primer recurso que es un segundo archivo por lotes para eliminar los volúmenes sombra y eliminar las protecciones en el arranque de la máquina ya que el anterior tiene otro nombre: "RC_HTML1".

FIGURA 14. Nuevo nombre de recurso para el archivo por lotes

Sin embargo, el algoritmo para descifrar este recurso es el mismo, excepto que cambiaron la cadena grande que actúa como clave para los bytes. Ahora la cadena es: "JLKHFVIjewhyur3ikjfldskfkl23j3iuhdnfklqhrjjio2ljkeosfjh7823763647823hrfuweg56t7r6t73824y78Clop". Es importante recordar que esta cadena permanece en texto plano en el binario pero, como ha cambiado, no se puede usar para una regla de Yara. Lo mismo cuenta para el nombre de los recursos y también para el hash del recurso porque el murciélago cambia por línea en algunos casos y en otros ya que tendrá más código para detener los servicios de productos de seguridad y bases de datos.

Los contenidos del nuevo archivo BAT son:

@echo off

vssadmin Eliminar sombras / todo / quiet

vssadmin redimensionar shadowstorage / for = c: / on = c: / maxsize = 401MB

vssadmin redimensionar shadowstorage / for = c: / on = c: / maxsize = ilimitado

vssadmin cambiar el tamaño de shadowstorage / for = d: / on = d: / maxsize = 401MB

vssadmin cambiar el tamaño del almacenamiento de sombras / for = d: / on = d: / maxsize = ilimitado

vssadmin redimensionar shadowstorage / for = e: / on = e: / maxsize = 401MB

vssadmin redimensionar shadowstorage / for = e: / on = e: / maxsize = ilimitado

vssadmin cambiar el tamaño del almacenamiento de sombras / for = f: / on = f: / maxsize = 401MB

vssadmin cambiar el tamaño del almacenamiento de sombras / for = f: / on = f: / maxsize = ilimitado

vssadmin cambiar el tamaño del almacenamiento de sombras / for = g: / on = g: / maxsize = 401MB

vssadmin cambiar el tamaño del almacenamiento de sombras / for = g: / on = g: / maxsize = ilimitado

vssadmin cambiar el tamaño del almacenamiento de sombras / for = h: / on = h: / maxsize = 401MB

vssadmin cambiar el tamaño del almacenamiento de sombras / for = h: / on = h: / maxsize = ilimitado

bcdedit / set default recoveryenabled No

bcdedit / set default bootstatuspolicy ignoreallfailures

vssadmin Eliminar sombras / todo / quiet

parada neta SQLAgent $ SYSTEM_BGC / a

net stop "Sophos Device Control Service" / a

parada neta macmnsvc / a

parada neta SQLAgent $ ECWDB2 / a

parada neta "Servicio Zoolz 2" / año

parada neta McTaskManager / a

net stop "Sophos AutoUpdate Service" / a

net stop "Sophos System Protection Service" / a

tope neto EraserSvc11710 / a

net stop PDVFSService / a

parada neta SQLAgent $ PROFXENGAGEMENT / a

servicio de parada de red SAV / a

net stop MSSQLFDLauncher $ TPSAMA / a

parada neta EPSecurityService / a

parada neta SQLAgent $ SOPHOS / a

net stop "Symantec System Recovery" / año

net stop Antivirus / a

parada neta SstpSvc / a

parada neta MSOLAP $ SQL_2008 / a

parada neta TrueKeyServiceHelper / a

parada neta sacsvr / a

parada neta VeeamNFSSvc / a

parada neta FA_Scheduler / a

parada neta SAVAdminService / a

parada neta EPUpdateService / a

parada neta VeeamTransportSvc / a

parada neta "Sophos Health Service" / a

parada neta bedbg / a

parada neta MSSQLSERVER / a

parada neta KAVFS / a

parada neta Smcinst / a

net stop MSSQLServerADHelper100 / a

parada neta TmCCSF / a

parada neta wbengine / a

net stop SQLWriter / a

net stop MSSQLFDLauncher $ TPS / a

parada neta SmcService / a

net stop ReportServer $ TPSAMA / a

net stop swi_update / a

parada neta AcrSch2Svc / a

parada neta MSSQL $ SYSTEM_BGC / a

parada neta VeeamBrokerSvc / a

net stop MSSQLFDLauncher $ PROFXENGAGEMENT / a

parada neta VeeamDeploymentService / a

parada neta SQLAgent $ TPS / a

parada neta DCAgent / a

net stop "Sophos Message Router" / a

net stop MSSQLFDLauncher $ SBSMONITORING / a

parada neta wbengine / a

parada neta MySQL80 / a

parada neta MSOLAP $ SYSTEM_BGC / a

net stop ReportServer $ TPS / a

parada neta MSSQL $ ECWDB2 / a

net stop SntpService / a

parada neta SQLSERVERAGENT / a

net stop BackupExecManagementService / a

parada neta SMTPSvc / a

parada neta mfefire / a

net stop BackupExecRPCService / a

parada neta MSSQL $ VEEAMSQL2008R2 / a

parada neta klnagent / a

parada neta MSExchangeSA / a

net stop MSSQLServerADHelper / a

net stop SQLTELEMETRY / a

parada neta "Sophos Clean Service" / a

net stop swi_update_64 / a

net stop “Servicio de control web de Sophos” / a

parada neta EhttpSrv / a

parada neta POP3Svc / a

parada neta MSOLAP $ TPSAMA / a

parada neta McAfeeEngineService / a

net stop “Servicio de datos del catálogo de respaldo de Veeam” /

parada neta MSSQL $ SBSMONITORING / a

net stop ReportServer $ SYSTEM_BGC / a

parada neta AcronisAgent / a

parada neta KAVFSGT / a

net stop BackupExecDeviceMediaService / a

parada neta MySQL57 / a

parada neta McAfeeFrameworkMcAfeeFramework / a

parada neta TrueKey / a

parada neta VeeamMountSvc / a

parada neta MsDtsServer110 / a

stop neto SQLAgent $ BKUPEXEC / a

parada neta UI0 Detección / año

net stop ReportServer / a

net stop SQLTELEMETRY $ ECWDB2 / a

net stop MSSQLFDLauncher $ SYSTEM_BGC / a

parada neta MSSQL $ BKUPEXEC / a

parada neta SQLAgent $ PRACTTICEBGC / a

parada neta MSExchangeSRS / a

parada neta SQLAgent $ VEEAMSQL2008R2 / a

parada neta McShield / a

parada neta SepMasterService / a

net stop "Sophos MCS Client" / año

parada neta VeeamCatalogSvc / a

parada neta SQLAgent $ SHAREPOINT / a

net stop NetMsmqActivator / a

parada neta kavfsslp / a

parada neta tmlisten / a

parada neta ShMonitor / a

parada neta MsDtsServer / a

net stop SQLAgent $ SQL_2008 / a

parada neta SDRSVC / a

parada neta IISAdmin / a

parada neta SQLAgent $ PRACTTICEMGT / a

net stop BackupExecJobEngine / a

parada neta SQLAgent $ VEEAMSQL2008R2 / a

net stop BackupExecAgentBrowser / a

parada neta VeeamHvIntegrationSvc / a

parada neta masvc / a

parada neta W3Svc / a

net stop "Servicio de copia de seguridad SQLsafe" / a

parada neta SQLAgent $ CXDB / a

net stop SQLBrowser / a

net stop MSSQLFDLauncher $ SQL_2008 / a

parada neta VeeamBackupSvc / a

parada neta "Servicio Sophos Safestore" / año

net stop svcGenericHost / a

parada neta ntrtscan / a

parada neta SQLAgent $ VEEAMSQL2012 / a

parada neta MSExchangeMGMT / a

parada neta SamSs / a

parada neta MSExchangeES / a

parada neta MBAMService / a

parada neta EsgShKernel / a

parada neta ESHASRV / a

parada neta MSSQL $ TPSAMA / a

net stop SQLAgent $ CITRIX_METAFRAME / a

parada neta VeeamCloudSvc / a

net stop "Sophos File Scanner Service" / año

parada neta "Sophos Agent" / a

parada neta MBEndpointAgent / a

net stop swi_service / a

parada neta MSSQL $ PRACTICEMGT / a

parada neta SQLAgent $ TPSAMA / a

parada neta McAfeeFramework / a

net stop "Enterprise Client Service" / a

parada neta SQLAgent $ SBSMONITORING / a

parada neta MSSQL $ VEEAMSQL2012 / a

net stop swi_filter / a

net stop SQLSafeOLRService / a

net stop BackupExecVSSProvider / a

parada neta VeeamEnterpriseManagerSvc / a

parada neta SQLAgent $ SQLEXPRESS / a

parada neta OracleClientCache80 / a

parada neta MSSQL $ PROFXENGAGEMENT / a

parada neta IMAP4Svc / a

parada neta ARSM / a

parada neta MSExchangeIS / a

parada neta AVP / a

net stop MSSQLFDLauncher / a

parada neta MSExchangeMTA / a

parada neta TrueKeyScheduler / a

parada neta MSSQL $ SOPHOS / a

net stop "Copias de seguridad SQL" / a

parada neta MSSQL $ TPS / a

parada neta mfemms / a

parada neta MsDtsServer100 / a

parada neta MSSQL $ SHAREPOINT / a

parada neta WRSVC / a

parada neta mfevtp / a

parada neta msftesql $ PROD / a

parada neta mozyprobackup / a

parada neta MSSQL $ SQL_2008 / a

parada neta SNAC / a

net stop ReportServer $ SQL_2008 / a

net stop BackupExecAgentAccelerator / a

parada neta MSSQL $ SQLEXPRESS / a

parada neta MSSQL $ PRACTTICEBGC / a

parada neta VeeamRESTSvc / a

parada neta sophossps / a

parada neta ekrn / a

parada neta MMS / a

net stop "Sophos MCS Agent" / a

parada neta RESvc / a

parada neta "Acronis VSS Provider" / a

parada neta MSSQL $ VEEAMSQL2008R2 / a

net stop MSSQLFDLauncher $ SHAREPOINT / a

net stop "Servicio de filtro SQLsafe" / a

parada neta MSSQL $ PROD / a

stop neto SQLAgent $ PROD / a

parada neta MSOLAP $ TPS / a

parada neta VeeamDeploySvc / a

net stop MSSQLServerOLAPService / a

El siguiente cambio es el nombre mutex. En esta versión es "HappyLife ^ _-", por lo tanto, puede ser complejo hacer una vacuna basada en el nombre mutex porque se puede cambiar fácilmente en cada nueva muestra.

El siguiente cambio es la clave pública codificada del malware que es diferente a la versión anterior.

Otro cambio es el archivo creado; la primera versión crea el archivo con el nombre "Favorito" pero esta versión crea este archivo con el nombre "Comone".

Sin embargo, el algoritmo de cifrado de los archivos y la marca en el archivo cifrado es el mismo.

Otra diferencia está en la nota de rescate que ahora es más clara con algunos cambios en el texto y ahora tiene 3 correos electrónicos en lugar de uno para contactar a los desarrolladores de ransomware.

FIGURA 15 Ejemplo de la nueva nota de rescate

Otras muestras de malware

Clop es una familia de ransomware que sus autores o afiliados pueden cambiar de forma rápida para que sea más complejo rastrear las muestras. El código en gran medida sigue siendo el mismo, pero cambiar las cadenas puede hacer que sea más difícil detectarlo y / o clasificarlo correctamente.

Ahora hablaremos sobre los cambios de algunas muestras para ver cuán prolífico es el ransomware Clop.

La muestra 0403db9fcb37icsoftceec0afd6c3754314 tiene una fecha de compilación del 12 de febrero de 2019 y tiene los siguientes cambios si se compara con otras muestras:

  • El archivo creado tiene el nombre "you_offer.txt".
  • El nombre del dispositivo en la llamada falsa a las funciones "EraseTape" y "DefineDosDeviceA" es "..1".
  • Un átomo que no busca nada tiene el nombre de "$$$$".
  • El nombre de mutex es "MoneyP # 666".
  • Los recursos cifrados con la nota de rescate y el archivo bat se denominan "SIXSIX1" para el archivo por lotes y el otro para la nota de rescate "SIXSIX".
  • El nombre del archivo por lotes es "clearsystems-10-1.bat".
  • La clave para que la operación XOR descifre la nota de rescate y el archivo por lotes es:

"Clopfdwsjkjr23LKhuifdhwui73826ygGKUJFHGdwsieflkdsj324765tZPKQWLjwNVBFHewiuhryui32JKG"

  • El archivo por lotes es diferente a las otras versiones, en este caso no cambia la configuración de arranque de la víctima objetivo.

FIGURA 16. Otra versión del archivo por lotes

  • Las direcciones de correo electrónico para contactar son: icarsole@protonmail.com y unlock@eaqltech.su.
  • Como curiosidad, esta nota de rescate tiene una línea que otra no tiene: "Cada día de retraso le costará +0.5 BTC adicionales" (alrededor de 1500-1700 $).

La muestra 3ea56f82b66b26dc66ee5382d2b6f05d tiene los siguientes puntos de diferencia:

  • El nombre del archivo creado es "popup.txt".
  • El nombre DefineDosDeviceA es "1234567890"
  • El mutex es "CLOP # 666".
  • La fecha de compilación de esta muestra es el 7 de febrero.
  • El nombre del archivo bat es "resort0-0-0-1-1-0-bat".
  • Este ejemplo no tiene soporte para Windows XP debido a una API que no existe en Windows XP.
  • La cadena Atom es "27".

La muestra 846f93fcb65c9e01d99b867fea384edc tiene estas diferencias:

  • El nombre del archivo creado es "HotGIrls".
  • El nombre de DosDevice es "GVSDFDS".
  • Nombre del átomo: KLHJGWSEUiokgvs.
  • Nombre de archivo por lotes "clearnetworksdns-11-22-33.bat".
  • La dirección de correo electrónico de contacto: unlock@eqaltech.su, unlock@royalmail.su y lestschelager@protonmail.com.
  • La nota de rescate no tiene la cadena anterior de aumentar el precio, pero el número máximo de archivos que se pueden descifrar es 7 en lugar de 6.

Como el lector puede entender, Clop cambia muy rápidamente las cadenas y el nombre de los recursos para que sea más complejo detectar el malware.

También observamos que los archivos .BAT no estaban presentes en versiones anteriores de ransomware Clop.

Difusión mundial

Según las versiones de Clop, descubrimos que detectamos golpes de telemetría en los siguientes países:

  • Suiza
  • Gran Bretaña
  • Bélgica
  • Estados Unidos
  • Los países bajos
  • Croacia
  • Puerto rico
  • Alemania
  • Turquía
  • Rusia
  • Dinamarca
  • Mexico
  • Canadá
  • República Dominicana

Vacuna

La función para verificar el nombre de un archivo o una carpeta utilizando el algoritmo de hash personalizado puede ser un problema para la ejecución de malware debido a que si se encuentra uno de ellos en ejecución, el malware lo evitará. Si esto sucede con una carpeta, también se omitirán todos los archivos dentro de esa carpeta.

Como el algoritmo y el hash se basan en 32 bits y solo en mayúsculas, es muy fácil crear una colisión, ya que conocemos los hashes objetivo y el algoritmo

No se puede usar como vacuna en sí misma, pero puede ser útil para protegerse contra el malware si los archivos más críticos están dentro del nombre de una carpeta de colisión.

FIGURA 17. Colisión de hashes

En la captura de pantalla, "BOOT" es un nombre correcto para el hash, pero los otros son colisiones.

Este malware tiene muchos cambios por versión que evitan hacer una vacuna normal usando mutex, etc.

El extraño en la familia

Que no todo el ransomware se crea por igual, especialmente para Clop. Anteriormente en este blog, hemos resaltado algunas elecciones interesantes que los desarrolladores hicieron cuando se trataba de detectar configuraciones de idioma, procesos y el uso de archivos por lotes para eliminar las instantáneas de volumen. Encontramos en el análisis algunas funciones únicas en comparación con otras familias de ransomware.

Sin embargo, Clop adopta algunos de los procedimientos que hemos visto con otras familias de ransomware al no enumerar la cantidad del rescate o mencionar una dirección de bitcoin.

Las víctimas deben comunicarse por correo electrónico en lugar de con un comando central y servidor de control que aloja las claves de descifrado. En las versiones más recientes de Clop, las víctimas deben indicar el nombre y el sitio de su empresa en las comunicaciones por correo electrónico. No estamos absolutamente seguros de por qué, pero podría ser un esfuerzo para mejorar el seguimiento de las víctimas.

Mirando la nota de rescate de Clop, comparte TTP con otras familias de ransomware; p.ej. imita el ransomware Ryuk y contiene similitudes con BitPaymer, sin embargo, el código y las funciones son bastante diferentes entre ellos.

Cobertura

Los clientes de los productos de McAfee Gateway y Endpoint están protegidos contra esta versión.

  • Genérico RXHA-RK! 3FE02FDD2439
  • Genérico RXHA-RK! 160FD326A825
  • Trojan-Ransom
  • ¡Ransom-Clop! 73FBFBB0FB34
  • Ransom-Clop! 0403DB9FCB37
  • Ransom-Clop! 227A9F493134
  • ¡Ransom-Clop! A93B3DAA9460
  • GenericRXHA-RK! 35792C550176
  • Genérico RXHA-RK! 738314AA6E07
  • RDN / Generic.dx
  • bub
  • BAT / Ransom-Clob
  • BAT / Ransom-Blob

Los clientes de McAfee ENS pueden crear reglas expertas para evitar la ejecución de comandos por lotes por parte del ransomware. A continuación se dan algunos ejemplos para referencia.

La siguiente regla experta se puede utilizar para evitar que el malware elimine los volúmenes de sombra con vssadmin ("vssadmin Delete Shadows / all / quiet").

Cuando la regla experta se aplica en el punto final, la eliminación del volumen oculto falla con el siguiente mensaje de error:

El malware también intenta detener los servicios de McAfee usando el comando "net stop McShield / y". La siguiente regla experta se puede utilizar para evitar que el malware detenga los servicios de McAfee:

Cuando la regla experta se aplica en el punto final, el intento de detener el servicio de McAfee utilizando el comando net falla con el siguiente mensaje de error:

Indicadores de compromiso

Las muestras utilizan las siguientes técnicas MITER ATT & CK ™:

  • Ejecución a través de API (archivo por lotes, por ejemplo).
  • La aplicación procesa el descubrimiento con algunos procedimientos como los hashes del nombre y directamente para el nombre del proceso.
  • Descubrimiento de archivos y directorios: para buscar archivos para encriptar.
  • Cifrar archivos.
  • Descubrimiento de procesos: enumerando todos los procesos en el punto final para eliminar algunos especiales.
  • Crea archivos.
  • Crea mutantes.

Conclusión

Clop ransomware muestra algunas características de que las empresas son sus objetivos previstos en lugar de los consumidores finales. Los autores mostraron algunas soluciones técnicas creativas para detectar la configuración de idioma de la víctima y los programas instalados. Por otro lado, también notamos algunas decisiones extrañas a la hora de codificar ciertas funcionalidades en el ransomware. Desafortunadamente, no es la primera vez que los delincuentes ganarán dinero con malware mal programado.

Clop está en constante evolución y, aunque no sabemos qué nuevos cambios se implementarán en el futuro, McAfee ATR seguirá de cerca.

COI

  • bc59ff12f71e9c8234c5e335d48f308207f6accfad3e953f447e7de1504e57af
  • 31829479fa5b094ca3cfd0222e61295fff4821b778e5a7bd228b0c31f8a3cc44
  • 35b0b54d13f50571239732421818c682fbe83075a4a961b20a7570610348aecc
  • e48900dc697582db4655569bb844602ced3ad2b10b507223912048f1f3039ac6
  • 00e815ade8f3ad89a7726da8edd168df13f96ccb6c3daaf995aa9428bfb9ecf1
  • 2f29950640d024779134334cad79e2013871afa08c7be94356694db12ee437e2
  • c150954e5fdfc100fbb74258cad6ef2595c239c105ff216b1d9a759c0104be04
  • 408af0af7419f67d396f754f01d4757ea89355ad19f71942f8d44c0d5515eec8
  • 0d19f60423cb2128555e831dc340152f9588c99f3e47d64f0bb4206a6213d579
  • 7ada1228c791de703e2a51b1498bc955f14433f65d33342753fdb81bb35e5886
  • 8e1bbe4cedeb7c334fe780ab3fb589fe30ed976153618ac3402a5edff1b17d64
  • d0cde86d47219e9c56b717f55dcdb01b0566344c13aa671613598cab427345b9
  • cff818453138dcd8238f87b33a84e1bc1d560dea80c8d2412e1eb3f7242b27da
  • 929b7bf174638ff8cb158f4e00bc41ed69f1d2afd41ea3c9ee3b0c7dacdfa238
  • 102010727c6fbcd9da02d04ede1a8521ba2355d32da849226e96ef052c080b56
  • 7e91ff12d3f26982473c38a3ae99bfaf0b2966e85046ebed09709b6af797ef66
  • e19d8919f4cb6c1ef8c7f3929d41e8a1a780132cb10f8b80698c8498028d16eb
  • 3ee9b22827cb259f3d69ab974c632cefde71c61b4a9505cec06823076a2f898e





Enlace a la noticia original