Resumen
¡Saludos amigos!
El problema con el que nuestro cliente se acercó a nosotros es un BlackMatter.
Este problema acosó al cliente una y otra vez, lo que obligó al cliente a solicitarnos servicios de auditoría de seguridad.
En este artículo, proporcionaremos un análisis técnico del ransomware BlackMatter, centrándonos en sus métodos, bibliotecas y técnicas utilizadas para infectar y cifrar sistemas objetivo.
BlackMatter es un ransomware que se vio por primera vez en julio de 2021. Es una posible nueva marca de DarkSide, un grupo de Ransomware-como-Servicio (RaaS) de habla rusa con base en Europa del Este.
El ransomware BlackMatter fue escrito en C++ y compilado para la plataforma Win32. Al igual que otras variantes de ransomware, BlackMatter utiliza la encriptación para impedir el acceso a los archivos de la víctima, exigiendo un pago de rescate a cambio de la clave de descifrado. BlackMatter usa una combinación de encriptación simétrica y asimétrica para encriptar los archivos. El ransomware primero genera una clave aleatoria de 256 bits, que luego se utiliza para encriptar los datos de la víctima. La clave entonces es encriptada utilizando una clave pública RSA, que es única para cada víctima. Esto asegura que solo los atacantes posean la clave privada necesaria para descifrar los datos.
Un aspecto destacado de BlackMatter es su uso del algoritmo Salsa20 para la encriptación simétrica.
Análisis
Para analizar el ransomware BlackMatter, utilizamos varias herramientas:
-
CFF Explorer (https://ntcore.com/?page_id=388)
-
x64Dbg (https://x64dbg.com/)
-
ProcessHacker (https://github.com/processhacker)
CFF Explorer fue utilizado para el análisis de archivos y para extraer la información necesaria del binario.
IDA se utilizó para desensamblar el código y analizar las funciones, variables y cadenas utilizadas en el ransomware.
x64Dbg se utilizó para depurar el binario y comprender el comportamiento en tiempo de ejecución del ransomware. DIE se utilizó para detectar el empaquetador utilizado en el ransomware.
ProcessHacker se utilizó para monitorear los procesos del sistema y la actividad de la red durante el análisis.
¡Exploramos cómo funciona BlackMatter!
Antes de arrancar el motor, BlackMatter realiza trabajos preparatorios y, si tiene éxito, comienza el trabajo principal:
Al principio, la aplicación BlackMatter carga bibliotecas y obtiene direcciones para las API:
Como puedes ver en la lista de módulos cargados, el encriptador utiliza los módulos bcrypt y ncrypt para la encriptación. Aquí tienes una lista de módulos cargados:
BlackMatter utiliza la técnica de hashing de API que hace el análisis de malware un poco más difícil al ocultar las APIs importadas sospechosas de Windows de la Tabla de Direcciones de Importación del Ejecutable Portátil. Cómo funciona la técnica de hashing de API se puede encontrar aquí: https://www.ired.team/offensive-security/defense-evasion/windows-api-hashing-in-malware
Antes de desencriptar el hash API:
Después de descifrar el hash API:
El ransomware BlackMatter mantiene los datos en una sección empaquetada y cifrada, y los desempaqueta y descifra al inicio del programa. Esto se hace para dificultar el análisis por parte del analista de malware en un análisis estático.
Desempaqueta y decodifica función:
Proceso de desempaquetado:
El ransomware no puede operar con países de la antigua URSS y Siria, porque fue desarrollado por un grupo de habla rusa con base en Europa del Este. Para hacer esto, realizan una verificación del idioma.
Verificaciones de idioma:
Tabla de idiomas no compatibles:
El malware utiliza la API SHTestTokenMembership para verificar que el usuario que inició el proceso es miembro del grupo de Administradores en el computador.
Verificación de token:
El siguiente paso del malware verifica la versión del sistema operativo.
Verifica la versión del sistema operativo:
Si las condiciones no se han cumplido, la aplicación intentará adquirir los privilegios de administrador, a través del exploit COM. BlackMatter utiliza la vulnerabilidad en el COM para elevar privilegios, y también enmascara nuestra aplicación como DllHost.exe mediante LdrEnumerateModulesCallback. El cambio de nombre puede engañar al depurador haciéndole pensar que se está cargando un binario diferente, lo que a su vez eliminará cualquier punto de interrupción.
Intentando adquirir los privilegios de administrador:
El exploit COM para adquirir los privilegios de administrador, utiliza la interfaz COM y el Moniker de Elevación COM:
El ransomware se disfraza de la aplicación como DllHost.exe a través de LdrEnumerateModulesCallback, que a su vez revisa todos los módulos para los cuales se llama al callback. Y si la dirección del módulo es la misma que la de nuestro proceso, entonces reemplazamos el nombre:
Prueba de concepto para renombrar el nombre:
El malware genera una extensión para los archivos, basada en el GUID de la máquina, que se almacena en “HKLMSoftwareMicrosoftCryptography”. En nuestro caso, obtuvimos la extensión: “KmyLfX2Lb”:
A continuación, el cifrador generará una extensión para el archivo README, y obtenemos esta extensión (“KmyLfX2Lb.README.txt”) en la máquina de prueba:
El malware habilita todos los privilegios necesarios. Lista de privilegios:
- SeBackupPrivilege
- SeCreatePagefilePrivilege
- SeCreateSymbolicLinkPrivilege
- SeDebugPrivilege
- SeDelegateSessionUserImpersonatePrivilege
- SeIncreaseBasePriorityPrivilege
- SeIncreaseQuotaPrivilege
- SeIncreaseWorkingSetPrivilege
- SeLoadDriverPrivilege
- SeManageVolumePrivilege
- SeProfileSingleProcessPrivilege
- SeRemoteShutdownPrivilege
- SeRestorePrivilege
- SeSecurityPrivilege
- SeShutdownPrivilege
- SeSystemEnvironmentPrivilege
- SeSystemProfilePrivilege
- SeSystemtimePrivilege
- SeTakeOwnershipPrivilege
- SeTimeZonePrivilege
- SeUndockPrivilege
Habilita privilegios:
A continuación, el cifrador aumenta la prioridad para el proceso actual, a través de la API NtSetInformationProcess. Este código está configurando la prioridad del proceso a una alta prioridad de CPU y una prioridad media de E/S, lo que puede mejorar el rendimiento del proceso en un sistema multitarea permitiéndole usar más recursos de CPU.
Aumentar la prioridad del proceso:
Si el encriptador no tiene suficientes derechos, inyectará un shellcode en el svchost.exe, lo que le permitirá elevar los derechos.
Preparación antes de inyectar:
Inyecta shellcode en el svchost.exe:
A continuación, el malware establece el estado ES_CONTINUOUS | ES_SYSTEM_REQUIRED, con el fin de deshabilitar la hibernación y la suspensión de aplicaciones.
Cambia el estado de ejecución del hilo:
Entonces el malware recopila y guarda información sobre los discos en formato JSON:
A continuación, el malware detiene y elimina los servicios que están en la lista negra. La lista es la misma que la del ransomware del grupo REvil, e incluye:
- Vss
- Sql
- Svc$
- Memtas
- Mepocs
- Sophos
- Veeam
- Respaldo
- GxVss
- GxBlr
- GxFWD
- GxCVD
- GxCIMgr
Detén y elimina servicios de la lista negra:
A continuación, el malware detiene procesos que están en la lista negra. La lista es la misma que la del ransomware del grupo REvil, e incluye:
- Sql
- Oracle
- Ocssd
- Dbsnmp
- Synctime
- Agntsvc
- Isqlplussvc
- Xfssvccon
- Mydesktopservice
- Ocautoupds
- Encsvc
- Firefox
- Tbirdconfig
- Mydesktopqos
- Ocomm
- Dbeng50
- Sqbcoreservice
- Excel
- Infopath
- Msaccess
- Mspub
- Onenote
- Outlook
- Powerpoint
- Steam
- Thebat
- Thunderbird
- Visio
- Winword
- Wordpad
- Notepad
Detén los procesos de la lista negra:
El cifrador utiliza el algoritmo Salsa20, para cifrar archivos:
Detección
Para protección puntual contra esta amenaza, utilizamos:
-
nuestra regla YARA para detectar el ransomware BlackMatter
-
nuestra solución para detectar actividad de BlackMatter
La detección basada en comportamiento puede usarse para detectar malware encriptado. Podemos establecer ganchos en los API de terminar proceso y detener servicio, para detectar BlackMatter. También es posible rastrear el trabajo con el registro, la ejecución del exploit.
El equipo de SToFU recomienda los siguientes pasos que las organizaciones pueden tomar para protegerse del ransomware BlackMatter y otras amenazas similares:
-
Auditorías de seguridad: Realiza auditorías de seguridad de tu red corporativa regularmente
-
Respaldos: Asegúrate de que todos los datos importantes se respalden regularmente y que los respaldos se almacenen fuera de línea o en un lugar externo para prevenir que sean cifrados por el ransomware.
-
Mantener el software actualizado: Actualiza todos los programas y sistemas operativos regularmente para asegurar que se corrijan las vulnerabilidades conocidas.
-
Utilizar soluciones anti-malware: Implementa soluciones anti-malware en todos los sistemas para detectar y prevenir infecciones de malware.
-
Usar controles de acceso: Restringe el acceso a sistemas y datos sensibles solo a aquellos que lo necesiten. Esto ayuda a limitar la propagación del ransomware en caso de una infección.
-
Capacitar a los empleados: Educa a los empleados sobre cómo identificar y evitar estafas de phishing, correos electrónicos sospechosos y sitios web maliciosos.
-
Tener un plan: Desarrolla y practica un plan de respuesta a incidentes para responder de manera efectiva a un ataque de ransomware.
-
Tener un socio experto en ciberseguridad: El socio te ayudará a asegurar la seguridad de la red corporativa y las máquinas corporativas, investigar problemas de seguridad existentes, proponer soluciones y prevenir la aparición de nuevos problemas de seguridad de manera oportuna, donde sea posible.
Cooperación
Amigos,
para todas las preguntas sobre cooperación en el campo de la ingeniería inversa, análisis de archivos maliciosos, auditoría de seguridad y ciberseguridad de redes corporativas, puedes contactarnos en: midgard@stofu.io
¡Estamos sinceramente contentos de cooperar y tener nuevos socios!