/
Cyber Resilience

Cargas útiles de malware y balizas: cómo comienzan las comunicaciones maliciosas

Comprender las balizas de malware y saber cómo bloquearlas puede ayudar a mantener su organización más segura. Una baliza, también conocida como carga útil, es un ejecutable o programa que se comunica con un ciberatacante a través de algún canal de comunicación. Desde el punto de vista del actor de amenazas, la gestión de balizas es la base de su campaña maliciosa. Dependiendo del tipo y la capacidad de una baliza, es el medio por el cual un actor de amenazas puede obtener una línea directa en su red, mantener esa línea de comunicaciones y llevar a cabo sus propósitos y objetivos ilegales.

Por ejemplo, el ataque a la cadena de suministro de SolarWinds involucró a un actor de amenazas escurridizo que empleaba balizas o puesta en escena de carga útil. Como mostraron varios reportes de análisis posteriores al incidente, este fue un ataque sofisticado de varias etapas en el que el malware Sunspot se empleó inicialmente para comprometer al proveedor. Luego vino la puerta trasera de Sunburst en los clientes del proveedor. Después de que esto se ejecutó con éxito, se usó para entregar el cuentagotas de solo memoria Teardrop, seguido del cargador Raindrop y la baliza Cobalt Strike. Cada carga útil tenía un propósito único y un conjunto de capacidades.

Pasos comunes en una secuencia de ataque de malware

En casos de actividad maliciosa en los que se trata de alguna vulnerabilidad, ya sea del usuario final o del sistema, la secuencia de ataque suele tomar la siguiente ruta:

Ruta de ataque de malware

Es útil comprender estas fases desde la perspectiva del actor de amenazas. Al aprender cómo los atacantes obtienen sus comunicaciones maliciosas para el comando y el control, también podemos construir una defensa contra ellos. Vamos a dar cada paso por separado.

Infraestructura del atacante

Por el lado del atacante, habrá un oyente de comando y control para recibir y procesar las comunicaciones de todas las máquinas víctimas comprometidas por la carga útil correspondiente. El oyente contará con el apoyo de servidores sitio web, sistemas de correo, DNS, sistemas de alerta y servidores de ataque, que alojan las herramientas empleadas en la campaña de amenazas.

Es probable que las propias comunicaciones del atacante fuera de su infraestructura sean anónimas, es decir, rebotadas a través de un serial de servidores proxy para ocultar su verdadera identidad. Aquí hay un ejemplo:

Proxy anónimo

Para ataques más sofisticados, los actores de amenazas también pueden implementar infraestructuras distribuidas dedicadas a sus campañas específicas. Esto les permite poner en marcha o derribar rápidamente la infraestructura en múltiples ubicaciones geográficas según sea necesario. Una parte importante de esta infraestructura es el Sistema de Nombres de Dominio (DNS). Un atacante puede aprovechar el DNS para enviar comunicaciones maliciosas a su infraestructura, y también puede usar el DNS para exfiltrar (es decir, robar) datos.

Junto con la configuración de la infraestructura, es probable que estén los recursos humanos responsables de planear, implementar y gestionar la campaña maliciosa. La mayoría de las campañas de amenazas tienen todo un equipo de personas e infraestructura detrás de ellas; es poco probable que sean un espectáculo de una sola persona.

El siguiente desglose muestra un ejemplo de un equipo de campaña de ataque. Tenga en cuenta lo similar que es al equipo de una compañía típica de servicios de TI.

equipo de campaña malicioso

Para los actores de amenazas, el proceso de proteger su propia infraestructura y al mismo tiempo evadir la detección en la red de la víctima se conoce como seguridad operativa. Los actores de amenazas sofisticados tienden a favorecer una alta seguridad operativa. Y para lograrlo, emplearán una variedad de técnicas para la evasión y la ofuscación.

vulnerabilidad

Una vulnerabilidad es simplemente cualquier debilidad inherente en un sistema informático o tecnologías relacionadas que un actor de amenazas busca explotar. Esta vulnerabilidad podría provenir de la fuente (el proveedor del equipo) o del destino (generalmente un usuario final). Por ejemplo, en 2017, la vulnerabilidad SMBv1 de Microsoft fue explotada con éxito por atacantes de ransomware a escala global. Aquí hay un vistazo al reporte detallado de esa vulnerabilidad:

Detalles de CVE de pymes

Una vez que se descubre una vulnerabilidad del sistema o programa, puede hacer pública; en este caso, la vulnerabilidad recibe un número CVE estándar (vulnerabilidades y exposiciones comunes). O puede ser conocido solo por unos pocos privados, y sin ninguna solución disponible (también conocido como "día cero"). La fase de vulnerabilidad también puede referir a vulnerabilidades más comunes del usuario final, generalmente aprovechadas con ingeniería social, como phishing y publicidad maliciosa. En esta etapa, el objetivo general del actor de amenazas es explotar la vulnerabilidad y convertirla en una oportunidad para un ataque exitoso.

Ataque o explotación

La siguiente fase significativa en un ataque ocurre cuando el actor de amenazas obtiene acceso a algún fragmento de código que puede usar para aprovechar una vulnerabilidad mientras elude los controles de seguridad. Por ejemplo, al usar Metasploit Framework como servidor atacante, un actor de amenazas encontró tres exploits disponibles para la vulnerabilidad SMBv1 de Windows, como se muestra aquí:

Búsqueda de vulnerabilidades de Metasploit SMB

Estas vulnerabilidades son del tipo aprovechado por las infames campañas de ransomware WannaCry y NotPetya. Exploits como estos a menudo contienen tanto el código de exploit para la vulnerabilidad como un pequeño código de carga útil para comunicaciones maliciosas.

Un exploit a menudo está separado de la baliza o la carga útil. Sin embargo, los dos se juntan comúnmente como shellcode. Una vez que el exploit obtiene acceso al sistema de destino, cargará una pequeña baliza o carga útil que puede llamar al atacante para completar el ataque, un proceso conocido como puesta en escena de la carga útil.

Baliza o carga útil

Como se mencionó anteriormente, una baliza o carga útil es un ejecutable o programa que se comunica con el atacante a través de algún canal de comunicación. Esto puede proteger a través de HTTPS o usar un protocolo de texto sin formato como DNS. El atacante, empleando lo que se conoce como baliza o devolución de llamada de carga útil, puede transferir más cargas útiles, a menudo con capacidades adicionales para lograr los objetivos previstos.

En el siguiente ejemplo, puede ver una carga útil de Meterpreter como un EXE de Windows mediante msfvenom de Metasploit Framework:

Metasploit msfvenom
carga útil

Una vez que dicha carga útil se entrega y ejecuta en un sistema víctima, creará silenciosamente una conexión TCP inversa. La carga útil emplea el puerto predeterminado 4444 desde el interior de la red víctima hasta la dirección IP del atacante. Tenga en cuenta que el ejemplo de carga anterior tendría una alta probabilidad de ser detectado en el mundo real, ya que se generó con valores predeterminados y sin codificación. En realidad, es solo un ejemplo académico.

Objetivos

Una vez que un atacante ejecuta la baliza o la carga útil, puede llevar a cabo su campaña de amenazas. Esto puede implicar el robo de datos, la instalación de ransomware o la causa de algún otro tipo de interrupción.

Antes de continuar, aquí hay un resumen de los pasos que tomará un atacante para lograr su objetivo:

Paso 1: Planee la campaña y diseñe la infraestructura correspondiente, incluidos servidores sitio web, servidores de email, infraestructura DNS y servidores de ataque.

Paso 2: Realizar reconocimientos sobre los objetivos y sistemas seleccionados.

Paso 3: Seleccione el ataque o la vulnerabilidad más eficaz para explotar, empleando una combinación de humanos y sistemas.

Paso 4: Desarrollar o adquirir las herramientas de explotación correspondientes, incluidos los mecanismos de entrega.

Paso 5: Configure la infraestructura de ataque, incluida la infraestructura de comando y control (también conocida como "oyente"), para recibir comunicaciones de baliza inversa.

Paso 6: Ejecute la campaña maliciosa.

Paso 7: Gestiona la baliza y las cargas útiles para evitar la detección y llevar a cabo los objetivos de la campaña.

Recorrido por el ataque

Una vez que un actor de amenazas diseñó e implementado la infraestructura y la configuración relacionada, su campaña maliciosa está lista para comenzar. Para hacer esto, el actor de amenazas necesitará que sus balizas o cargas útiles se ejecuten dentro de la red de la víctima. Entonces pueden obtener acceso, mantener un punto de apoyo y llevar a cabo sus objetivos.

Repasemos algunos de los pasos importantes desde el punto de vista de un atacante.

Para comenzar, aquí hay un vistazo a la generación de la carga útil deseada:

Reunión sitio web de carga útil

En este caso, la carga útil se genera para comunicar mediante un dominio (app12.webcoms-meetings.com, se muestra como LHOST en la primera línea completa de verde) que imita algún software de colaboración y reunión remota para el sistema operativo Windows. Una comprobación muestra que el dominio se resuelve en la dirección IP controlada por el atacante.

Comprobación de resolución DNS

A partir de aquí, el atacante elige un mecanismo de entrega para su entrada inicial en el objetivo. En este ejemplo, optaron por emplear spear phishing, un tipo de ataque de ingeniería social que hace que un usuario desprevenido descargue lo que cree que es una actualización de su software para reuniones remotas. El atacante configuró un dominio correspondiente (email y sitio web) y una infraestructura de sitio web para admitir este método de entrega de ingeniería social, como se muestra a continuación:

Email y sitio web de phishing

El atacante espera que el usuario desprevenido descargue y ejecute la carga útil. O bien, si el usuario visita el sitio de phishing, la carga útil se puede ejecutar automáticamente a través de una descarga drive-by. De cualquier manera, la carga útil disfrazada ahora está en la computadora del usuario y lista para ejecutar, como se muestra aquí:

Carga útil en descargas

Una vez que la carga útil se está ejecutando, vuelve a llamar silenciosamente al comando y control del atacante. Un oyente ya estará en funcionamiento en el lado del atacante para recibir las comunicaciones de devolución de llamada. En el siguiente ejemplo, se configuró un controlador de carga útil u oyente, exploit/multi/handler, en el lado del atacante para recibir comunicaciones de la carga útil reverse_tcp que se ejecuta en la máquina víctima a través del dominio malicioso app12.webcoms-meetings.com.

Controlador de carga útil

Una vez que la baliza llega a la infraestructura del atacante, el oyente o controlador relevante recibe la conexión, y la carga útil inicial puede descargar una carga útil principal mucho más grande, conocida como Stage. Esto se puede ver a continuación con el mensaje "enviando la etapa (175174) a 203.0.113.1". La máquina víctima está detrás de un firewall NAT con la IP externa de 203.0.113.1. La carga útil del atacante en este ejemplo es el versátil Metasploit Meterpreter.

devolución de llamada de carga útil

Una vez que la baliza inicial descarga la carga útil principal, está lista para continuar con el resto del ataque. Tras ejecutar correctamente, el control del programa se pasa a esta carga principal (Stage) para entregar un shell al atacante. Todo esto sucede en la memoria e involucra técnicas de inyección de código. La siguiente captura de pantalla muestra al atacante con acceso práctico del teclado a la máquina víctima. El atacante puede ejecutar el comando "dir" y ver todos los archivos en la carpeta de descargas del usuario.

Carcasa de MeterPreter

A partir de aquí, el atacante realiza un reconocimiento interno (también conocido como "descubrimiento") en la máquina víctima. El atacante ahora puede obtener la información de la cuenta y el directorio de la víctima. Por ejemplo, el nombre de usuario registrado para la máquina comprometida es "ama". Incluso pueden capturar una captura de pantalla del escritorio de Windows del sistema de destino, como se muestra aquí:

Carcasa de MeterPreter

En este punto, el atacante también puede escanear la red interna para descubrir otros sistemas. La siguiente captura de pantalla muestra un análisis del protocolo de resolución de direcciones (ARP) de la red interna. Esto será útil para el movimiento lateral, que se describe más adelante.

Escaneo ARP de carcasa de meterpreter

El atacante también puede realizar acciones más maliciosas, como exfiltrar (robar) un archivo Project_Progress.pdf de la máquina víctima. Como se muestra a continuación, también pueden cargar Mimikatz, una herramienta maliciosa para robar credenciales de usuario. Los atacantes necesitan credenciales con privilegios elevados para realizar acciones a nivel de sistema y movimiento lateral dentro de una red.

Progreso del proyecto MiMikatz

El siguiente ejemplo muestra cómo el atacante puede ejecutar la herramienta de volcado de credenciales Mimikatz cargada para ver los hashes de contraseña en la máquina Windows comprometida.

Mimikatz

Otro paso crítico para el atacante es crear una ruta de regreso a la máquina víctima, incluso después de que el usuario la resetear. Aquí es donde entra en juego la técnica de la persistencia. Los atacantes tienen varias formas de lograr esto, incluidas las cargas útiles inversas de ejecución automática y las puertas traseras persistentes.

Como se muestra a continuación, el atacante elige ejecutar un módulo de persistencia posterior a la explotación, que implica un script de Visual Basic (VBScript) colocado en la carpeta Temp de Windows del usuario que inició sesión, UoPfNwo.vbs. Luego, el atacante instala una entrada del Registro de Windows para permitir que el script se ejecute automáticamente después de que se inicie la máquina.

Persistencia posterior al exploit

Ahora el atacante se cercioró de que su script de carga útil pueda volver a conectarse a su agente de escucha, incluso si se resetear la máquina. Sin embargo, los archivos en el disco ahora también pueden ser detectados por un análisis antivirus (AV) del sistema de archivos.

Finalmente, el atacante querrá limpiar todas las pruebas potenciales. Para hacer esto, pueden eliminar archivos y entradas maliciosos originales, y cifrar o incluso mezclar archivos maliciosos entre archivos legítimos del sistema. Para cubrir aún más sus huellas, también pueden eliminar instantáneas y registros del sistema.

Análisis y análisis forense del ataque

Ahora repasaré algunas respuestas iniciales a incidentes (IR) y el análisis básico de componentes específicos del ataque. Esto le dará una mejor comprensión de ciertas acciones maliciosas.

Análisis de redes y DNS

Comenzando con el análisis de comunicación de red desde la máquina víctima, la IP interna (10.1.1.81) estableció una conexión TCP en el puerto remoto 443 con el nombre DNS del atacante externo. Esta es una comunicación de comando y control.

Proceso en ejecución
Comunicación de comando y control de Netstat

A continuación, al analizar los componentes típicos involucrados en una jerarquía de resolución de DNS regular, podemos desglosar el proceso del atacante:

  • Primero, el actor de amenazas registró un dominio: webcoms-meetings.com
  • El dominio apunta a la IP externa 203.0.113.123.
  • El atacante emplea app12.webcoms-meetings.com de nombres de subdominio para dirigir el tráfico de las cargas útiles en máquinas comprometidas a su comando y control.
Estructura DNS

Los actores de amenazas también pueden intentar filtrar datos mediante DNS. Por ejemplo, pueden usar registros TXT de DNS o incluso información única codificada sobre sus víctimas como parte de una supuesta consulta de DNS saliente. Estas consultas serán recibidas por el servidor DNS autorizado bajo el control del atacante. Un servidor DNS autorizado recibe y responde consultas DNS para un dominio específico.

Los actores de amenazas también pueden usar algoritmos de generación de dominios (DGA) para generar automáticamente miles de dominios cada día. Con esta técnica, una máquina infectada tendrá código incorporado (es decir, un algoritmo) para generar y luego intentar conectarse a varios de estos dominios generados durante un periodo específico. Por ejemplo, podría intentar conectarse a 1.000 dominios generados cada 24 horas hasta que uno tenga éxito. Luego, el atacante registrará algunos de estos dominios cada día y los mantendrá activos durante periodos cortos de tiempo.

Es probable que estos dominios reciban comunicaciones maliciosas de vez en cuando. Esta técnica, popularizada por la familia de malware Conficker, dificulta la creación de una lista de denegación como interruptor de apagado. Para evadir aún más la detección y mantener la resiliencia, los actores de amenazas más sofisticados también emplean una infraestructura distribuida que combina proxies, redireccionamientos y equilibradores de carga.

Análisis del sistema

La mayoría de las operaciones típicas de carga útil o baliza posteriores a la explotación implican la manipulación de procesos de Windows, que se producen completamente en la memoria. Un atacante con una capacidad de manipulación de procesos puede iniciar nuevos procesos en la máquina víctima. Puede ser un shell interactivo nativo (Windows cmd.exe) que permite al atacante usar comandos nativos de Windows. El atacante también puede iniciar procesos de forma no interactiva, como se muestra aquí:

Manipulación del proceso de la carcasa de MeterPreter

En el equipo víctima, un volcado de proceso (que se muestra a continuación) muestra los procesos recién creados con sus respectivos ID de proceso, 2624 y 1972, ambos en ejecución.

Vista del explorador de procesos

La capacidad de iniciar nuevos procesos es muy útil. El atacante puede iniciar un nuevo proceso desprevenido como notepad.exe y luego migrar su proceso de carga útil malicioso original mediante inyección de código / DLL. Es una técnica que hace que un proceso malicioso en el sistema parezca legítimo; Lo discutiré con más detalle en la segunda parte de este serial.

El atacante, como parte de su evasión posterior a la explotación, migra el proceso malicioso original, web1_meeting_update.exe (2472), a un nuevo proceso notepad.exe (1768), como se muestra aquí.

Proceso de migración de MeterPreter Shell

En el equipo de la víctima, el proceso malicioso original, PID 2472, se ha migrado y ahora se ejecuta como notepad.exe con el ID de proceso 1768. Como se muestra a continuación, ahora solo se está ejecutando el nuevo proceso.

Proceso migrado del Administrador de tareas

A partir de la técnica de persistencia anterior, la carpeta Temp de Windows (ver más abajo) muestra tanto el VBScript usado como las claves de ejecución automática correspondientes que se crearon en el Registro para el script malicioso.

Artefactos del Registro de persistencia

Un análisis estático inicial del archivo de carga útil ejecutable malicioso original muestra que tiene varios factores de riesgo asociados. Por ejemplo, carga algunas bibliotecas de Windows (DLL) interesantes, especialmente las que se emplean para las comunicaciones de red. Un análisis dinámico y de memoria correspondiente mostrará el comportamiento sospechoso de un proceso notepad.exe que realiza conexiones de red.

Archivo de carga maliciosa de análisis estático

Conclusiones

En este artículo discutí algunas de las consideraciones y acciones típicas involucradas en una campaña de amenazas y sus comunicaciones maliciosas asociadas. Espero que esto le dé una idea de cómo y por qué un actor de amenazas emplea ciertas técnicas.

Podemos resumir el ciclo de ataque que conduce a la comunicación maliciosa en tres fases:

  • Entrada inicial
  • Ejecución
  • Comando y control

Una buena manera de abordar las estrategias de mitigación es aplicar la filosofía de asumir incumplimiento . Es decir, supongamos que el atacante ya está dentro, y que, por lo tanto, sus objetivos clave de seguridad deben ser la detección y la contención. Además, sus resultados de seguridad deben incluir al menos visibilidad, alertas y contención automatizadas (segmentación de Zero Trust). Discutiré las técnicas de mitigación con más detalle en la tercera y última parte de este serial de blogs.

En el próximo artículo, la segunda parte de este serial, analizaré más a fondo las balizas y las cargas útiles y explicaré por qué un actor de amenazas puede elegir un tipo sobre otro. También profundizaré en algunas de las técnicas avanzadas que usan los atacantes para evadir y ofuscar.

Temas relacionados

Artículos relacionados

Temas clave en Infosecurity Europe 2023, resiliencia del sector energético y ciberamenazas de educación superior
Cyber Resilience

Temas clave en Infosecurity Europe 2023, resiliencia del sector energético y ciberamenazas de educación superior

Lea más sobre la cobertura de noticias de Illumio de junio de 2023 centrada en la contención de brechas como un camino comprobado a seguir en ciberseguridad.

Illumio se expande en América Latina para desarrollar resiliencia cibernética
Cyber Resilience

Illumio se expande en América Latina para desarrollar resiliencia cibernética

Obtenga más información sobre lo que hace que la región de América Latina sea un objetivo particular de los actores de amenazas y cómo Illumio puede ayudar.

Reenfoque en la resiliencia cibernética: 3 mejores prácticas para mejorar su resiliencia cibernética
Cyber Resilience

Reenfoque en la resiliencia cibernética: 3 mejores prácticas para mejorar su resiliencia cibernética

Descubra cómo la resiliencia cibernética puede ayudar en la desafortunada situación de que se detecte una violación activa en su red.

No items found.

Asumir incumplimiento.
Minimizar el impacto.
Aumentar la resiliencia.

¿Listo para obtener más información sobre la segmentación de confianza cero?