/
Ransomware Containment

Desmitificando las técnicas de ransomware mediante ensamblajes .Net: un ataque de varias etapas

En la primera parte de este serial, analizamos ejemplos de capacidades de programación que pueden ser empleadas por ransomware en sus técnicas maliciosas. Luego, en la segunda parte, también examinamos los fundamentos del marco de software .Net de Microsoft y los ensamblados asociados de EXE y DLL para comprender cómo se hacen posibles estas capacidades.  

En esta parte final, combinaremos todo lo que se discutió hasta ahora en un conjunto de cargas útiles por etapas para demostrar los fundamentos de un ataque de carga útil de varias etapas.

Configuración de carga útil y ataque

Comenzamos diseñando las cargas útiles que se emplearán para el ataque. Todas las capacidades anteriores, incluidas las nuevas, se tendrán en cuenta para crear las cargas útiles por etapas. Esto es para demostrar en general cómo se pueden juntar las diferentes tácticas y técnicas que vimos hasta ahora, como suele ser el caso del ransomware.

Vamos a emplear las siguientes cargas útiles:

  • Aplicación EXE inicial: carga útil de Stager
  • Ransomware principal EXE: Carga útil de la etapa 1
  • DLL principal de ransomware: Carga útil de la etapa 2

El uso de múltiples cargas útiles para realizar diferentes tareas en este ejemplo de ataque constituye un ataque de varias etapas. Mirando hacia atrás en el serial anterior sobre cargas útiles de malware y balizas, la segunda parte discutió los tipos de cargas útiles maliciosas con más detalle. Allí, expliqué la diferencia entre los tipos de carga útil por etapas y los tipos de carga útil por etapas. En resumen, un stager es una aplicación ejecutable inicial a menudo más pequeña que puede actuar como descargador, dropper y/o carga útil para un archivo de carga principal más capaz y, a menudo, más grande conocido como stage. El propósito de la carga útil del stager es configurar el escenario principal. En este ejemplo de ataque, empleando el ensayo de carga útil como se describió anteriormente, las diferentes cargas útiles tendrán las diversas tareas de la siguiente manera:

La carga útil de Stager EXE hará lo siguiente:

  • Técnicas de evasión
  • Descarga dos archivos de 'texto' en el disco. Estos archivos son, de hecho, un archivo EXE y DLL.
  • Inicie el archivo EXE
  • El stager luego sale
  • El EXE en ejecución (fase-1) carga el archivo DLL (fase 2)

Las cargas útiles EXE y DLL de Stage-1 y Stage-2 realizan las siguientes acciones de ransomware maliciosas:

  • Técnicas de evasión
  • Descubrimiento
  • Manipulación de procesos
  • Enumeración de unidades y archivos
  • Cifrado de archivos

Stager: ejecutable de carga inicial (EXE)

El ataque comienza con nuestra carga útil inicial, el stager entregado a la máquina víctima. A menudo, esto se realiza a través de técnicas de ingeniería social como el phishing. Una vez que se entregue y ejecute la carga útil inicial, comenzará a ejecutar el conjunto malicioso de instrucciones.

Evasión

Primero esperará un tiempo específico sin realizar ninguna acción. Esta es una técnica de evasión diseñada para sobrevivir al análisis de amenazas de máquinas virtuales. Luego de esto, descargará un ejecutable conocido de Internet, como una aplicación de bloc de notas. Este es un señuelo y otra táctica de evasión para evitar la detección.

Secuencia de ataque de ransomware: carga útil inicial - Stager

Otras técnicas pueden incluir la comprobación de los clics del mouse o la comprobación de los directorios de documentos en busca de pruebas de archivos asociados con el uso normal de un sistema informático en lugar de una máquina virtual de espacio aislado empleada para el análisis de amenazas.

Despedidor, cuentagotas y cargador

Una vez que se ejecutaron estas acciones de evasión iniciales, la carga útil del preparador (inicial) volverá a ejecutar una tercera acción de suspensión. Esperará nuevamente un tiempo específico antes de continuar con el siguiente conjunto de instrucciones, que será descargar los archivos de carga útil de la etapa. Estos archivos son alojados de forma remota por el atacante como se muestra a continuación.

Secuencia de ataque de ransomware: Virtual File System Downloader

Luego, el stager procede a descargar dos archivos de texto "notepadlog0120231224.txt" y "notepadlog0120231513.txt". Esta siguiente fase se muestra en texto rojo en el siguiente ejemplo.

Tenga en cuenta que los enlaces de descarga para los archivos de carga útil en realidad están ofuscados mediante la codificación base64, que se discutió como la cuarta técnica en la primera parte de este serial.

Secuencia de ataque de ransomware: carga útil inicial - Descarga de Stager

La carga útil inicial convierte el base64 internamente sobre la marcha en los enlaces de descarga originales.

Los dos archivos de texto descargados son en realidad un ejecutable (EXE) y una biblioteca de enlaces dinámicos (DLL) respectivamente, disfrazados de archivos de texto. Estas son las cargas útiles de la etapa 1 y la etapa 2 para este ejemplo de ataque de ransomware de varias etapas. Tras las descargas exitosas, estos archivos cambian de nombre a sus tipos originales.

Secuencia de ataque de ransomware: Bloc de notas

A continuación, la carga útil del stager lanza la carga ejecutable de la etapa 1 para comenzar el ataque de ransomware real. El stager ahora completó su propósito y se cierra una vez que la carga útil de stage-1 se carga en la memoria y comienza a ejecutar. Entonces, como se discutió en la primera técnica en la primera parte de este serial, esta carga útil de la etapa inicial es el descargador y el dropper para la carga útil de DLL de etapa 1 y etapa 2 y el cargador solo para la carga útil de etapa 1. La carga de DLL se cargará como una carga de fase 2 mediante la carga EXE de fase 1 que se está ejecutando ahora, por lo que se trata de un ataque de carga de varias fases.

Ejecutable de la fase 1 (EXE)

Una vez que la ejecución se pasó al ejecutable de la etapa 1, primero dormirá durante un periodo de tiempo especificado, como se muestra a continuación.

Secuencia de ataque de ransomware: Etapa 1 de carga útil EXE

A continuación, eliminará el archivo de carga útil del escalonador "payload_initial_stager.exe" del sistema de archivos como medio para eliminar cualquier evidencia. En el siguiente ejemplo, el archivo se eliminó y ya no está en el directorio.

Secuencia de ataque de ransomware: carpeta Downoad

La carga útil de la etapa 1 ahora está lista para ejecutar su conjunto de acciones para continuar con el resto del ataque.

Descubrimiento

A continuación, realizará algunas técnicas de descubrimiento en el sistema infectado. Estas técnicas de descubrimiento permiten a un actor de amenazas comprender un poco más sobre el sistema infectado. El descubrimiento ayuda al operador de amenazas a realizar ciertas consideraciones de seguridad operativa cruciales para lograr el éxito general del ataque. En este ejemplo, la carga útil de la etapa 1 realiza una verificación de la lista de procesos. Algunos procesos que pueden ser de interés serán la detección y respuesta de puntos finales (EDR), antivirus (AV) o procesos de máquina virtual. Estos ayudan a comprender la probabilidad de que se detecte la carga útil.

Secuencia de ataque de ransomware: descubrimiento de carga útil EXE

Con base en los resultados de la información de descubrimiento, un actor de amenazas puede tomar algunas decisiones importantes de seguridad operativa. Por ejemplo, si se encuentra un proceso EDR conocido en el sistema o la carga útil detecta procesos de máquina virtual, se puede indicar a la carga que salga para evitar la detección.

Secuencia de ataque de ransomware: el actor implementa EDR

Alternativamente, el actor de amenazas puede decidir emplear técnicas de evasión adicionales para evadir el EDR o incluso intentar emplear otros medios para terminar el proceso EDR por completo.

El descubrimiento también ayuda a determinar qué tan valioso podría ser el sistema comprometido. Por ejemplo, ¿es un servidor de base de datos de producción o un sistema de pago con datos valiosos de los clientes? Cuanto más crítico sea el sistema para una compañía, más probable es que se pague un rescate por él.

Manipulación de procesos: binarios de Living-off-the-Land (LotL)

Otro conjunto de información útil es la información relacionada con el sistema, como el sistema operativo, la configuración regional del idioma y las revisiones y actualizaciones instaladas o faltantes en el sistema. Este tipo de información puede ayudar a planear ataques adicionales, como vulnerabilidades de seguridad.

Suponiendo que no se encontró el proceso EDR, la carga útil continuará porque el actor de amenazas puede estar seguro de tratar con otros. Por lo tanto, luego de verificar la información del proceso, la carga útil ejecutable de la etapa 1 emplea una técnica Living-off-the-Land e inicia un símbolo del sistema de Windows separado como se muestra en el ejemplo a continuación.

Secuencia de ataque de ransomware: el actor implementa procesos de máquina virtual EDR

Luego de iniciar el símbolo del sistema, la carga útil le pasa algunos comandos de Windows para que se ejecuten. Este comando generará información del sistema, como el tipo de sistema, la información del procesador, el tiempo de actividad y las revisiones. En el ejemplo siguiente se muestra una instantánea de la salida en texto rojo.

Secuencia de ataque de ransomware: Fase 1 Binarios de LotL

Biblioteca de vínculos dinámicos (DLL) de la fase 2

Como se discutió en los artículos anteriores, un archivo DLL contiene código de computadora que no se puede ejecutar por sí mismo. Entonces, en nuestro ejemplo, el EXE de etapa 1 también usa código en la DLL de etapa 2 para terminar el resto del ciclo de ataque.

Carga útil de DLL de etapa 1 EXE de etapa 2

Una vez que la carga EXE de la fase 1 completa sus acciones, procede a cargar la carga de la DLL de la fase 2. La carga útil de DLL contiene el código que se usará para las etapas finales del ataque, que consiste en buscar las unidades en el sistema y luego cifrar los archivos seleccionados en esas unidades.

Secuencia de ataque de ransomware: CMD iniciado

El código DLL primero ejecuta una verificación de unidad para encontrar las unidades en el sistema infectado, enumerando información útil sobre cada una. En la pantalla anterior, de particular interés es la información sobre las unidades del sistema que están listas para acceder frente a las que no lo están. Esto ayuda a apuntar a los archivos en las unidades correctas para el cifrado y evitar errores al intentar operar en unidades que son de solo lectura o a las que no se puede acceder.

Encriptación

En este punto, el cifrado para el rescate ya está listo para seguir adelante. El código de cifrado de la DLL de fase 2 comprueba primero si hay una lista de archivos de texto en el directorio. Esto se debe a que cifraremos solo archivos de texto en esta última demostración. A continuación, la carga útil muestra todos los archivos de texto que se encontraron.

Secuencia de ataque de ransomware: DLL de etapa 2

A continuación, la carga útil cifra los archivos detectados. Las extensiones de archivo también se cambian a ".encrypted" para mostrar los archivos de texto cifrados.

Secuencia de ataque de ransomware: DLL cifrada

A continuación, también podemos ver las imágenes de antes y luego del directorio donde se encuentran los archivos de texto, mostrando los cambios luego del cifrado.

Secuencia de ataque de ransomware: archivos cifrados en la carpeta de descargas

Finalmente viene la nota de rescate: esto generalmente alerta al usuario sobre el hecho de que sus archivos fueron cifrados. También les indica cómo pagar el rescate y obtener la clave de descifrado para descifrar los archivos. En muchos casos, pagar el rescate no garantiza automáticamente el acceso a la clave de descifrado.

Secuencia de ataque de ransomware: rescate de carga útil de varias etapas

Tenga en cuenta que en nuestro ejemplo, elegimos poner todo el código de cifrado en un archivo DLL que se convirtió en nuestra carga útil de la etapa 2. Esto se debe principalmente a que, como se discutió en los artículos anteriores, un archivo DLL es un archivo de biblioteca, lo que significa que se puede reutilizar. Por ejemplo, si como atacante elegimos usar una carga útil EXE de etapa 1 completamente diferente, tal vez debido a nuevas mejoras de evasión en el futuro, no tenemos que volver a escribir la parte de cifrado de nuestro código de carga útil para finalizar esa nueva campaña de ataque. Simplemente podemos emparejar nuestra nueva carga útil con el archivo DLL de etapa 2 existente y hacer que el nuevo EXE cargue la DLL para cifrar los archivos.

Mitigación contra ransomware

En última instancia, el ransomware empleará tres fronteras principales de infección, ejecución y persistencia.

Estos se pueden clasificar ampliamente como:

  • Sistema de archivos
  • Registro
  • Memoria
  • Red (remota y local – movimiento lateral)

Por lo tanto, los defensores deben buscar la creación de los conjuntos de herramientas adecuados y emplearlos de la manera correcta para una mitigación efectiva de la seguridad. En la tercera parte del serial anterior sobre cargas útiles y balizas de malware, hay un recorrido más detallado de la mitigación de defensa en profundidad basada en la filosofía de asumir la violación y la resiliencia cibernética.

Este serial de tres partes demostró cómo pueden surgir las diferentes tácticas y técnicas empleadas por el malware y, específicamente, el ransomware. Al comprender estas diferentes tácticas y técnicas, los defensores pueden estar en mejores condiciones para evaluar sus políticas y defensas cibernéticas existentes para contramedidas efectivas.

¿Desea obtener más información sobre cómo proteger su organización contra ransomware e infracciones? Contáctenos hoy.

Temas relacionados

No items found.

Artículos relacionados

El ransomware duele: así es como la confianza cero puede ayudar a mitigar el riesgo
Ransomware Containment

El ransomware duele: así es como la confianza cero puede ayudar a mitigar el riesgo

Cómo la segmentación de Zero Trust de Illumio, basada en una visibilidad integral, puede ayudar a la hora de mitigar los riesgos de ransomware.

Comprender el ransomware: el patrón de ataque más común
Ransomware Containment

Comprender el ransomware: el patrón de ataque más común

Descubra el patrón común de ataque de ransomware, desde la persistencia oculta hasta el movimiento lateral, y por qué la microsegmentación basada en la visibilidad en tiempo real lo detiene.

Ransomware: cómo las pequeñas y medianas organizaciones pueden detener su propagación
Ransomware Containment

Ransomware: cómo las pequeñas y medianas organizaciones pueden detener su propagación

Descubra cómo la segmentación de Confianza cero ayuda a las organizaciones pequeñas y medianas a visualizar los flujos de tráfico, cerrar rutas y detener la propagación lateral del ransomware.

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

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

Las balizas de malware son la forma en que un atacante puede ejecutar malware a través de un script. Reconocerlos ayuda a desarrollar estrategias de detección y contención.

Cargas útiles de malware y balizas: tipos de cargas útiles maliciosas
Cyber Resilience

Cargas útiles de malware y balizas: tipos de cargas útiles maliciosas

Comprender los distintos tipos de cargas útiles y revisar un ejemplo de código malicioso que pueden emplear.

Cargas útiles de malware y balizas: técnicas para mitigar el impacto
Cyber Resilience

Cargas útiles de malware y balizas: técnicas para mitigar el impacto

En la parte final de este serial, nos centramos en algunas de las técnicas de ofuscación empleadas para disfrazar las cargas útiles de malware y examinamos las técnicas de mitigación que pueden emplear las organizaciones.

Asumir incumplimiento.
Minimizar el impacto.
Aumentar la resiliencia.

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