Cobalt Strike 2021 – Análisis del marco de ataque malicioso de PowerShell


Cobalt Strike es una herramienta de emulación de amenazas muy extendida. Es una de las herramientas de ataque de red más poderosas disponibles para los probadores de penetración en los últimos años utilizada para diversas capacidades de ataque y como un marco de comando y control.

Recientemente, Cobalt Strike se ha utilizado en varias campañas de ransomware como Povlsomware Ransomware, DarkSide Ransomware.

La función de compatibilidad de ataque de cobalto de Povlsomware Ransomware le permite realizar cargas y ejecuciones en memoria. En el caso de DarkSide Ransomware, los atacantes desplegaron una puerta trasera persistente de Cobalt Strike en algunos sistemas y luego adquirieron credenciales administrativas. Además, se utilizaron otras credenciales robadas para implementar Darkside Ransomware. Aunque el ataque de Cobalt es capaz de muchos tipos diferentes de ataques, los siguientes son algunos de los principales módulos de ataque.

  • Perfilador del sistema
    • Es un módulo para detectar la versión de aplicaciones y es utilizado por el objetivo.
  • Clon de sitio web
    • Crea una copia local de un sitio web y registra los datos enviados.
  • Entrega web con guión
    • PowerShell o Python one-liner, es decir, una línea de comando continua, se usa para descargar y ejecutar la carga útil de la baliza.
  • Ataque de subprograma firmado por Java
    • Inicia un servidor web que aloja un subprograma Java autofirmado. Un visitante se ve comprometido tan pronto como concede este permiso para ejecutar el subprograma.
  • Spear phishing
    • Genera mensajes de spear-phishing utilizando personalizar el mensaje como plantilla.
  • Pivoting del navegador
    • Módulo de ataque de cobalto para robar cookies y sesión del navegador del usuario objetivo.

Marco de PowerShell de “entrega web con script”.

Una de las características más utilizadas en los ataques de cobalto es un ataque con PowerShell. PowerShell es un lenguaje de secuencias de comandos y un shell de línea de comandos. PowerShell es legítimo, pero puede ejecutar un script directamente en la memoria. Al utilizar esta función, un atacante puede realizar la ejecución remota de código. Cobalt strike tiene una función de entrega web con script que le permite descargar y ejecutar la carga útil a través de PowerShell. Una vez que el atacante obtiene la sesión, un atacante puede interactuar con el sistema de la víctima, extraer la información y realizar actividades posteriores a la explotación.

Diagrama de flujo de ataque

Fig.1 Flujo de ataque

Análisis de entrega web de Cobalt Strike PowerShell:

A continuación, se muestra un ejemplo de un script de PowerShell común incrustado en documentos maliciosos.

Secuencia de comandos de PowerShell

Fig.2 Secuencia de comandos de PowerShell

Aquí se utiliza la técnica de ofuscación y los datos se codifican con codificación base64. La palabra clave "w-hidden" se utiliza para dar instrucciones a PowerShell y no para crear una ventana visible. Aquí está la forma decodificada del mismo script de PowerShell:

Secuencia de comandos de PowerShell part_1

Fig.3 Secuencia de comandos de PowerShell part_1

Script de PowerShell part_2

Fig.4 Secuencia de comandos de PowerShell part_2

Los datos decodificados se dividen en dos partes. Al principio, la información se codifica con base64 y, al final del archivo, los datos se codifican con base64 y se comprimen con "Gzip". También se captura un script ofuscado similar en el tráfico de red.

Tráfico de red capturado

Fig.5 Tráfico de red capturado

Secuencia de comandos de Python

Fig.6 Secuencia de comandos de Python

Después de decodificarlo usando el script de Python anterior para decodificar en base64 y luego descomprimirlo usando “Gzip”, resultó en algunos datos interesantes.

Secuencia de comandos de PowerShell decodificada part_1

Fig.7 Secuencia de comandos de PowerShell decodificada part_1

En la primera función, func_get_proc_address GetMethod se usa para acceder a UnsafeNativeMethods como GetModuleHandle y GetProcAddress desde system.dll. Al mirar el nombre de la primera función, podemos decir que está obteniendo la dirección del método dado. El resultado de todas estas actividades es asignar espacio en la memoria para el código de shell.

Secuencia de comandos de PowerShell decodificada part_2

Fig.8 Secuencia de comandos de PowerShell decodificada part_2

Secuencia de comandos de PowerShell decodificada part_3

Fig.9 Secuencia de comandos PowerShell decodificada part_3

Aquí, en la tercera capa de decodificación, nuevamente podemos ver algunos datos en base64 codificados en la figura 8, y estos datos están codificados / encriptados usando XOR. Para fines de descifrado, hemos utilizado XOR con la clave "35", como se muestra en la figura 9.

Datos descifrados

Fig.10 Datos descifrados

Después de descifrar, encontramos algunos datos en forma no legible. Pero cuando buscamos cadenas, encontramos la dirección IP del servidor del equipo de Cobalt Strike y algo de información sobre el usuario-agente. Podría haber establecido una conexión remota a esa IP. Para ver los datos reales, tenemos que convertir los datos no legibles a hexadecimales.

Shellcode "width =" 650 "height =" 111 "srcset =" https://blogs.quickheal.com/wp-content/uploads/2021/06/Fig.11-Shellcode-650x111.png 650w, https: // blogs.quickheal.com/wp-content/uploads/2021/06/Fig.11-Shellcode-300x51.png 300w, https://blogs.quickheal.com/wp-content/uploads/2021/06/Fig.11 -Shellcode.png 694w "tamaños =" (ancho máximo: 650px) 100vw, 650px "/>

<p id=Figura 11 Código de shell

Cuando convertimos los datos a hexadecimal, obtuvimos los datos de código de shell reales utilizados para establecer una conexión remota. Después de eso, puede post-explotación como tomar capturas de pantalla, escanear puertos y pivotar el navegador, etc. Además, el ataque Cobalt proporciona movimiento lateral usando balizas SMB y TCP una vez que el atacante obtiene acceso inicial.

Conclusión:

Esta es una descripción general del marco de ataque de PowerShell de entrega web con script de Cobalt Strike. Los atacantes siguen experimentando con el uso de nuevos trucos y técnicas para eludir la detección, como ataques que involucran archivos de documentos, archivos de script, etc. Los scripts son fáciles de modificar, ofuscar y, una vez que se ejecutan con éxito, brindan acceso inicial a los atacantes para que puedan realizar tareas posteriores. actividades de explotación fácilmente. Además, cobalt Strike se puede eliminar mediante ataques de phishing. Para mantenerse a salvo de estos ataques, los usuarios deben identificar los correos electrónicos sospechosos validando la dirección de correo electrónico del remitente y verificando los enlaces y archivos adjuntos.

Los clientes de Quick Heal están protegidos contra este tipo de ataques maliciosos. Sin embargo, se recomienda mantener actualizadas las soluciones de seguridad de sus terminales para mantenerse a salvo.

Experto en la materia:

Amruta Wagh

Saurabh Sharma