Consulta técnica sobre FortiEDR
Descripción
CetaRAT es un troyano de acceso remoto (RAT) que experimentó un aumento reciente en la actividad dirigida a las agencias gubernamentales indias luego de su empleo inicial como parte clave de la Operación Sidecopy dirigida a las fuerzas de defensa indias a principios de 2019. Las RAT como CetaRAT brindan a los adversarios la capacidad de controlar un sistema infectado al permitir la ejecución remota. La actividad de CetaRAT observada recientemente indica que se ha utilizado para extraer información confidencial de los sistemas infectados.
Los informes de amenazas indican que el principal método de entrega de CetaRAT es a través de un correo electrónico de phishing que utiliza un archivo adjunto malicioso. Este archivo adjunto suele tener el formato o un archivo hta (aplicación HTML). Cuando el usuario víctima lo ejecuta, el archivo hta suelta un archivo de secuencia de comandos y una carga binaria maliciosa. El archivo de secuencia de comandos abre un documento en línea como señuelo, establece la persistencia a través de los inicios de Windows y reinicia el sistema para ejecutar la carga binaria maliciosa. Cuando el sistema infectado se reinicia, los datos como el nombre de la computadora, el sistema operativo, la dirección IP, la cantidad de memoria, el tipo de procesador y otra información se filtran a los servidores de comando y control (C2) del adversario.
Post-Ejecución
Este artículo demostrará cómo FortiEDR detecta y bloquea este malware mediante el análisis de su comportamiento en modo de simulación. En el modo de simulación, FortiEDR genera eventos pero no los bloquea, lo que permite que CetaRAT se ejecute por completo, lo que nos permite demostrar el alcance de las detecciones de comportamiento y los bloqueos aplicados por FortiEDR y las capas de reglas que protegen los puntos finales defendidos.
Ejecutando el archivo HTA
La muestra de CetaRAT analizada en este artículo es un archivo HTA (aplicación HTML) tomado de un correo electrónico de phishing reciente. Después de la entrega del correo electrónico de phishing, se espera que un usuario ejecute el archivo HTA haciendo doble clic en el archivo adjunto. El archivo HTA se compone principalmente de un gran bloque de secuencias de comandos javascript que se ejecuta cuando se ejecuta el archivo HTA. El javascript contiene tres secciones clave; en primer lugar, un conjunto de variables codificadas que contienen un ejecutable y una dll; en segundo lugar, comandos para escribir y ejecutar un archivo javascript, “script56.js”, tanto en “C:ProgramData” como en “C:UsersAll Users ” y, finalmente, comandos para escribir otro archivo javascript, “script56.js” en el directorio de inicio de los usuarios en ejecución (Nota: esta sección final del código tiene un error de sintaxis y no se ejecuta correctamente).
El contenido del script colocado en la segunda sección del javascript de HTA se muestra a continuación en la Figura 1. Cuando se ejecuta, el script abre » https://ipa.co[.]in/assets/pdfs/Bihar-Regt.pdf» en el navegador predeterminado de los usuarios. Después de abrir el documento pdf, el script duerme durante 300000 milisegundos y luego reinicia el sistema.
El contenido del archivo de script soltado se muestra en la Figura 1:
Figura 1 . El script soltado que abre el pdf en línea.
En esta muestra analizada, el contenido del documento señuelo es un memorando oficial de una agencia gubernamental que coincide con el contenido del correo electrónico de phishing. Es probable que el uso de un documento señuelo de calidad de esta manera disminuya la sospecha de las víctimas para que no se den cuenta de que han sido blanco de un ataque de phishing.
Figura 2 . Captura de pantalla del documento señuelo abierto por el script Cetarat.
La tercera sección de HTA JavaScript tiene como objetivo crear el archivo «script56.js» en el directorio de inicio del usuario que ejecuta y escribir un código javascript en él. El JavaScript responsable de estas operaciones se muestra en la Figura 3 a continuación. El javascript escrito contiene una URL codificada en hexadecimal, por lo que cuando se ejecuta este código enviará una solicitud HTTP GET a hxxp://newsindia[.]ddns[.]net/hit. Esta es probablemente una devolución de llamada al adversario C2 que indica que una nueva víctima ha sido comprometida y el tráfico web histórico a este dominio es un buen IOC asociado con el acceso inicial exitoso.
Figura 3. Código JavaScript del archivo HTA de muestra que escribe un archivo .js separado en el directorio de inicio de los usuarios que ejecutan que contiene el código para devolver la llamada al adversario C2.
El análisis de esta sección del código identifica un error de sintaxis que impide que el archivo se escriba correctamente para que no se produzca esta conexión de red al dominio C2. Por esta razón, estos IOC no se han incluido al final de este artículo.
Cargando preBotHta.dll en la memoria
El archivo hta carga y ejecuta una DLL en la memoria como preBotHta.dll. El contenido de preBotHta.dll se almacena en el archivo hta como un flujo de memoria base64 que se serializa durante la ejecución. Esto se puede ver en los fragmentos de código de las Figuras 4 y 5 a continuación.
Figura 4. Bytes parcialmente codificados del script hta que contiene el preBotHta.dll deserializado
Figura 5. Código del script hta que transforma las variables preBotHta.dll deserializadas en un flujo de memoria
Esta es una forma alternativa de cargar la DLL en la memoria y ofuscar su funcionalidad. El uso de este método de deserialización indica que el actor de amenazas que generó este archivo hta probablemente aprovechó el popular proyecto de código abierto ‘DotNetToJScript’ ( https://github.com/tyranid/DotNetToJScript ) para generar su carga útil. En esta situación, un analista normalmente necesitaría deserializar manualmente el dll antes de analizar su contenido. Afortunadamente, FortiEDR detecta y alerta automáticamente sobre la carga de la biblioteca sospechosa y marca la ejecución en memoria de un ejecutable no confirmado. Esto se puede ver en la Figura 6 a continuación.
Figura 6. Un ejemplo de un evento que demuestra el evento de ejecución en memoria marcado por la regla ‘Ejecutable no confirmado’ en la política de prevención de exfiltración. En el modo Proteger, FortiEDR habría bloqueado una carga de esta biblioteca, evitando que el malware siguiera ejecutándose.
Eliminando winms.exe
Una vez decodificado y ejecutado, preBotHta.dll elimina winms.exe buscando una lista de antivirus instalados en el sistema infectado y luego decodificando el archivo winms.exe. El malware verifica si «Kaspersky», «Quick», «Avast», «Avira», «Bitdefender» o «WindowsDefender» está activo en el sistema con la función ‘PinkAgain’ (que se muestra a continuación en la Figura 7) y luego suelta el » winms.exe” ejecutable en la carpeta de inicio del host comprometido como parte de la función ‘CopyExeAsTxt’ (que se muestra a continuación en la Figura 8). En esta versión de CetaRAT, la detección de diferentes productos AV no genera ninguna diferencia en la funcionalidad, pero las versiones de la herramienta observadas anteriormente que usan el mismo nombre de dll y los mismos nombres de función indican ligeras diferencias en la funcionalidad cuando se detecta Kaspersky AV.
Figura 7. Fragmento de código de preBotHta.dll que muestra la comprobación de dll si un AV específico está activo
Figura 8. Fragmento de código de preBotHta.dll que muestra el código que coloca winms.exe en la carpeta de inicio.
Persistencia
Como se discutió anteriormente, preBotHta.dll coloca winms.exe en la carpeta de inicio para la persistencia. Permite que winms.exe se ejecute cada vez que se reinicia el sistema. Como se ve en las Figuras 9 y 10 a continuación, el archivo ejecutable descartado está firmado por un certificado «*.teamviewer.com», que ahora no es válido. Firmar un ejecutable con un certificado de TeamViewer es un método destinado a engañar a las aplicaciones de seguridad, como los antivirus, que pueden bloquear la ejecución de ejecutables sin certificados.
Figura 9 . Archivo crea el evento para winms.exe en la carpeta de inicio. Tomado de la herramienta FortiEDR Threat Hunting.
Figura 10 . Detalles del certificado para el archivo winms.exe soltado por el archivo preBotHta.dll
Archivo malicioso detectado
La regla de prevención de ejecución en FortiEDR se activa cuando el malware suelta winms.exe en la carpeta de inicio. Winms.exe fue identificado como malicioso por nuestro motor de aprendizaje automático, como se puede observar en la Figura 11 a continuación. Si FortiEDR estuviera en modo Proteger, la ejecución de este archivo se habría bloqueado evitando más actividad del adversario.
Figura 11 . El evento de intento de lectura de archivo se activa cuando el malware suelta winms.exe.
exfiltración
En la ejecución inicial, CetaRat recopila información sobre el sistema infectado. La información, incluido el nombre de la computadora, el sistema operativo, la dirección IP, la cantidad de memoria, el tipo de procesador y otra información, se recopila y almacena para luego cargarse en el servidor C2 de los adversarios una vez que se conecta con éxito. El fragmento de código de la Figura 12 a continuación resalta el código responsable extraído del archivo winms.exe.
Figura 12. Los datos de exfiltración se recopilan antes de conectarse a C2.
Comandos Remotos
CetaRat usa los comandos que se muestran en el siguiente diccionario tomados del interior de winms.exe para realizar varias acciones dentro de un host comprometido. Algunos comandos demuestran la funcionalidad dentro de la RAT que permite al adversario filtrar datos, descargar archivos ejecutables actualizados y manipular archivos y procesos existentes en el host comprometido.
Figura 13 . Los comandos se toman del código CetaRAT (winms.exe) y muestran la funcionalidad disponible para el adversario que usa la RAT.
Comando y control
El malware intenta conectarse a su dominio C2 con la dirección IP: 164[.]68[.]108[.]22; Al momento de escribir este artículo, el malware no puede establecer una conexión con el sitio. Si la conexión es exitosa, el malware extraerá información del sistema infectado como parte de las solicitudes web posteriores. El actor malicioso también se comunicará con el CetaRAT para enviar instrucciones a realizar por el malware.
Figura 14 . IP C2 codificada que se encuentra dentro del código de malware.
Figura 15 . Captura de flujo TCP cuando el malware intenta conectarse al dominio C2. En este caso, la conexión falló porque el adversario C2 ya no está activo.
FortiEDR detecta y bloquea el intento de conexión de red a la IP del dominio C2 del malware (164[.]68[.]108[.]22) como se muestra a continuación en la Figura 15. La sección de datos avanzados de la consola principal de eventos de FortiEDr se puede usar para proporcione contexto rápidamente e identifique visualmente las conexiones de red anómalas a través de la función ‘Geo Location’. Como se muestra en la figura a continuación, esta IP de CetaRAT codificada se asigna a un punto final ubicado en Alemania, probablemente anómalo para un usuario final en India.
Figura 16 . Eventos de detección de red relacionados con intentos de comunicación C2 de la muestra de CetaRAT
Figura 17 . FortiEDR bloquea la conexión cuando el malware intenta conectarse a la IP C2 conocida.
El CTS (Central Threat System) de Fortinet, que contiene fuentes de inteligencia sobre amenazas de FortiGuard Labs, muestra que la IP 164[.]68[.]108[.]22 a la que accede el malware CetaRAT está marcada como un sitio web malicioso. La información en este IOC observable a través de CTS se puede ver en la figura a continuación.
Figura 18 . Información de Fortinet CTS sobre la dirección CetaRAT C2 codificada
Evento de acceso al servicio de archivos
Cuando se ejecuta winms.exe, intenta ejecutarse utilizando una versión específica del marco .NET (ver 3.5). Si el marco .NET requerido no está instalado, el malware descarga e instala el marco .NET requerido, lo que activa el uso de Fondue.exe (características de Windows on Demand UX) y OptionalFeatures.exe (características de Windows), ambos son archivos ejecutables legítimos de Windows. .
El malware intenta acceder al Servicio de instantáneas de volumen (VSSVC.exe) a través de svchost.exe y finaliza el servicio para evitar copias de seguridad de los archivos modificados. FortiEDR bloquea y detecta el malware cuando intenta acceder al Servicio de instantáneas de volumen.
Figura 19 . El malware intenta descargar .NET Framework versión 3.5 si no está disponible actualmente en el punto final.
Figura 20 . El evento Acceso al servicio de archivos se activa cuando el malware intenta usar VSSVC.exe.
Caza de amenazas
Para buscar archivos de script caídos:
Type: ("File Create") AND Source.Process.Name: ("mshta.exe") AND Target.File.Path: ("\ProgramData\" OR "\Users\All Users\") AND Target.File.Name: ("script56.js")
Para buscar una conexión de red relacionada con el acceso al documento señuelo en línea:
Type: ("Socket Connect") AND Source.Process.Parent.Path: ("wscript.exe") AND Source.Process.CommandLine: ("--single-argument https://ipa.co.in/assets/pdfs/Bihar-Regt.pdf")
Para buscar la línea de comando que activa el reinicio de la computadora:
Type: ("Process Termination") AND Source.Process.Parent.Path: ("wscript.exe") AND Source.Process.Name: ("cmd.exe") AND Target.Process.CommandLine: ("/k shutdown /r /t 0")
Para buscar winms.exe en la carpeta de inicio (simplificado):
Type: ("File Create") AND Source.Process.Name: ("mshta.exe") AND Target.File.Name: ("winms.exe") AND Target.File.Path: ("AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup")
Para buscar winms.exe en la carpeta de inicio (con MITRE):
MITRE.Tactic: ("Persistence") AND MITRE.Techniques.Technique: ("Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder") AND Type: ("File Create") AND Source.Process.Name: ("mshta.exe") AND Target.File.Name: ("winms.exe") AND Target.File.Path: ("AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup")
MITRE ATT&CK
TA0002 – Ejecución
Identificación de la técnica | Descripción de la técnica | Actividad observada |
T1059.005 | Intérprete de comandos y secuencias de comandos: Visual Basic | El malware CetaRAT contiene código visual básico dentro del archivo hta. |
Identificación de la técnica | Descripción de la técnica | Actividad observada |
T1059.007 | Intérprete de comandos y secuencias de comandos: JavaScript | El malware CetaRAT suelta un archivo javascript para abrir un documento en línea y reiniciar el sistema. |
TA0005 – Evasión de defensa
Identificación de la técnica | Descripción de la técnica | Actividad observada |
T1218.005 | Ejecución de proxy binario firmado: Mshta | El malware CetaRAT utiliza un archivo hta malicioso como etapa inicial para infectar el sistema. |
Identificación de la técnica | Descripción de la técnica | Actividad observada |
T1553.002 | Subvertir los controles de confianza: firma de código | El malware CetaRAT suelta winms.exe, que está firmado con el certificado “*.teamviewer.com”. |
Identificación de la técnica | Descripción de la técnica | Actividad observada |
T1036.001 | Enmascaramiento: firma de código no válida | El malware CetaRAT suelta winms.exe, que está firmado con el certificado “*.teamviewer.com”. |
Identificación de la técnica | Descripción de la técnica | Actividad observada |
T1140 | Desofuscar/Decodificar archivos o información | El malware CetaRAT utiliza la codificación base64 para ocultar el contenido de preBotHta.dll. |
Identificación de la técnica | Descripción de la técnica | Actividad observada |
T1564.003 | Ocultar artefactos: ventana oculta | El malware CetaRAT oculta la ventana cuando ejecuta el archivo hta original. |
TA0010 – Exfiltración
Identificación de la técnica | Descripción de la técnica | Actividad observada |
T1041 | Exfiltración sobre el canal C2 | El malware CetaRAT puede robar datos como el nombre de la computadora, el sistema operativo, la dirección IP, la cantidad de memoria, el tipo de procesador y otra información. |
TA0003 – Persistencia
Identificación de la técnica | Descripción de la técnica | Actividad observada |
T1547.001 | Ejecución de inicio automático de inicio o inicio de sesión: claves de ejecución del registro/carpeta de inicio | El malware CetaRAT coloca winms.exe en la carpeta %Appdata%RoamingMicrosoftWindowsStart MenuProgramsStartup. |
TA0040 – Impacto
Identificación de la técnica | Descripción de la técnica | Actividad observada |
T1490 | Inhibir la recuperación del sistema | El malware CetaRAT termina el VSSVC.exe para deshabilitar la creación de instantáneas de volumen. |
TA0011 – Comando y Control
Identificación de la técnica | Descripción de la técnica | Actividad observada |
T1071.001 | Protocolo de capa de aplicación: protocolos web | El autor de malware que controla CetaRat utiliza el servidor de comando y control para enviar comandos al malware CetaRat. |
¡Déjanos cualquier duda sobre FortiEDR aquí abajo!
¿Te ha resultado útil??
0 / 0
Hola, somos Mila Jiménez y César Sánchez. Dos apasionados de la ciberseguridad con muchos años de experiencia. Hemos trabajado en muchas empresas del mundo TI y ahora nos apetece compartir nuestro conocimiento con cualquiera que lo necesite.
¡Si te gusta nuestro contenido puedes invitarnos a un café AQUÍ!