C2: La clave oculta en las operaciones de Red Team

Dentro de un ejercicio de Red Team, el Command and Control (C2) actúa como el engranaje principal dentro de la Cyber Kill Chain, ya que permite al adversario mantener el control sobre los sistemas comprometidos y, de esta manera, facilitar la obtención del control completo de la infraestructura de una organización.

Importancia

Un C2 permite desplegar un punto de control dentro de un ejercicio donde se prioriza el sigilo, de manera que crea el entorno clave de dominio sobre los defensores, dado que otorga un sistema de comunicación encubierta sobre los sistemas infectados. De esta manera, proporciona una serie de ventajas a un atacante, dado que permite efectuar comandos, exfiltrar datos sensibles y expandir su presencia por la red sin llegar a ser detectados.

Extrapolemos los puntos claves de un C2:

  1. Persistencia, dado que permite mantener un control sobre los sistemas comprometidos a largo plazo.
  2. Exfiltración, dado que permite extraer información de las redes víctimas sin llegar a ser detectado.
  3. Pivoting, dado que permite realizar movimientos laterales para poder desplazarse y explotar sistemas de redes adyacentes.

Técnicas Implementadas

El objetivo de un C2 es mantener una comunicación continua y encubierta con los sistemas comprometidos por el Red Team. Con este objetivo en mente, implementan técnicas como las siguientes:

  • Tunelización DNS: Permite la transmisión de datos a través de la encapsulación de los mismos mediante el protocolo DNS. Abusa de la confianza de la esencialidad del tráfico DNS en las redes corporativas, que generalmente suele estar permitido por los diferentes dispositivos de seguridad.
  • C2 basado en HTTPS: Permite el establecimiento de la comunicación cifradas mediante HTTPS entre el atacante y el sistema comprometido. Con esta técnica se permite camuflar el tráfico malicioso del atacante con el tráfico web legítimo.
  • Beaconing: Permite la comunicación mediante beacons a intervalos regulares o aleatorios, desde el sistema comprometido al C2. Normalmente se debe hacer una instalación de un implante malware en el sistema comprometido, pero la ventaja que tiene es que ayuda a evitar aquellos sistemas de seguridad más avanzados que se basan en una detección por patrones.
  • C2 en Cloud: Permite la comunicación con el C2 mediante el uso de servicios cloud, como AWS, Drive, Dropbox, Azure, entre otros. La ventaja radica en que, si se ha detectado el uso de una de estas tecnologías durante la fase de reconocimiento, sería una buena aproximación utilizar está técnica para camuflar el tráfico malicioso como operaciones normales del usuario.
  • C2 Satelital[1]: Es una técnica donde se establece la comunicación entre el C2 y los sistemas comprometidos haciendo uso de enlaces satelitales. Este escenario requiere un alto nivel de sofisticación y recursos; sin embargo, proporciona un grado elevado de sigilo e indetectabilidad frente a los equipos de seguridad de las organizaciones. Este modelo tiene varias ventajas:
    • El tráfico C2 pasa a través de redes satelitales, evitando las rutas de internet convencionales. El rastreo de una dirección IP asociada a comunicaciones satelitales hacia una ubicación física resulta sumamente complejo de realizar.
    • Permite la simultaneidad en la unidireccionalidad y bidireccionalidad de la comunicación C2 según convenga. De este modo, reduce la posibilidad de ser detectado y facilita tanto el envío de comandos como la exfiltración de datos.
  • P2P: Este modelo es interesante, dado que implica la generación de redes P2P entre los sistemas comprometidos para que se comuniquen directamente entre sí, de esta manera formando una red descentralizada. Esta técnica elimina la necesidad de un servidor C2 centralizado, aumentando la resiliencia de la red maliciosa.

Herramientas de C2

En las operaciones de Red Team, suelen destacarse los siguientes Command and Control (C2): Cobalt Strike[2], Metasploit, Empire, Quasar RAT[3], PoshC2[4], Sliver, Mythic[5] y recientemente Kitsune[6].

Desglosando

Sin duda alguna, de las herramientas expuestas anteriormente, la mayoría de las personas que ya han trabajado con algún C2 saben que, en muchos casos, la mejor elección suele ser Cobalt Strike. Sin embargo, no siempre es la opción más adecuada. Existen alternativas de software libre que resultan bastante atractivas y viables para los ejercicios de Red Teaming.

Kitsune[7]:

Es un C2 que implementa capacidades como el despliegue de agentes multiplataforma, comunicaciones cifradas, una arquitectura modular, evasión de elementos de seguridad y una interfaz gráfica intuitiva. La ventaja y el punto interesante es que implementa polimorfismo en el proceso de generación de los payload.

El polimorfismo en este contexto, se refiere a la capacidad que tiene la herramienta de cambiar o modificar el código de manera dinámica cada vez que se ejecuta o se propaga por la red sin modificar su funcionalidad original.

Piensa en la posibilidad que existiría si se puede diseñar un beacon que cuando se quiera eliminar del sistema, este se reprograme a sí mismo para mantenerse en la red y eludir la eliminación y posteriormente los propios sistemas de detección, debido a que ya no es el mismo malware que fue detectado, ha mutado.

Suena a ciencia ficción, pero la posibilidad existe, que sea fácil o difícil de implementar, eso queda en tus manos.

Vista de Kitsune C2

Sliver

En mi opinión, es el C2 más versátil que he utilizado hasta el momento. Ofrece capacidad de despliegue multiplataforma, protocolos de comunicación como HTTP/HTTPS, mTLS y DNS, además de cifrado avanzado con protección contra interceptación. También incluye mecanismos de evasión de detección mediante ofuscación y firmas únicas, una interfaz tanto CLI como GUI, soporte multiusuario, y extensibilidad para el desarrollo de complementos e integración con otras herramientas.

Tomando control de una infraestructura con Sliver

El primer paso suele ser el establecimiento de una sesión desde el equipo comprometido a nuestro C2 mediante un beacon, para este caso un mtls.

Estableciendo un listener y obteniendo una sesión

Una vez realizado este proceso, ya podemos interactuar con el C2 para empezar la fase de enumeración y escalada de privilegios local.

Ejecución de comandos desde el C2 a través del activo comprometido

Tras la fase de escalada de privilegios local, podemos recuperar una Shell en el contexto conseguido de la siguiente manera. Recuperando una shell con altos privilegios locales:

Shell establecida

Llegar hasta este nivel de compromiso es fundamental, dado que esto representa un foothold para poder escalar privilegios dentro del dominio.

Esta fase implica el uso de diversas técnicas y habilidades necesarias para poder obtener el control del domino, aprovechando un conjunto de deficiencias identificadas y que han sido explotadas de manera encadenada, hasta alcanzar un contexto de Domain.

Sliver nos ofrece en este sentido un conjunto de “armory” necesarias para efectuar toda esta fase de manera lo más amena posible:

Conjunto de herramientas instalables en Sliver

Todas las herramientas que vayamos implementando en nuestra operación, podrán ser fácilmente consultadas a través del comando “aliases”:

Conjunto del arsenal utilizado durante una operación de Red Team

Para finalizar, una vez conseguido el contexto de Domain Admin, podemos hacer uso de “psexec” para establecer un acceso al Domain Controller.

Activando el listener http y recuperando la sesión del DC
Diseñando un profile y usándolo para la sesión del DC

Con la sesión establecida, únicamente deberemos de solicitar a sliver que recupere una shell para que podamos interactuar con la máquina comprometida.

Acceso privilegiado sobre los DC y toma de control del Dominio de la organización

Mitigaciones PARA LOS C2

En muchas de las técnicas explicadas, es muy complicado el proceso de detección y mitigación de las actividades de un C2, puesto que requiere de una combinación de tecnologías avanzadas, prácticas de seguridad sólidas y una cultura organizacional bastante madura y que prioricen la seguridad.

Existen muchos factores a tomar en cuenta, pero para frenar este tipo de actividades deberas enfocarte en:

  1. Prevenir compromisos iniciales: Realizar una correcta segmentación de la red para limitar el movimiento lateral de los atacantes.
  2. Detectar actividades maliciosas: Desplegar IDS para monitorear el tráfico de red (principalmente HTTPS/DNS) en búsqueda de patrones sospechosos. También, implementar un sistema EDR en toda la organización para detectar actividades C2 en tiempo real.
  3. Plan de respuesta eficaz: Evaluar un escenario de compromiso, identificando los riesgos inherentes y desarrollando un plan de contingencia de la amenaza y recuperación de los sistemas afectado con la mínima interrupción.

Conclusiones

El C2 representa la piedra angular en las operaciones de Red Team y es ampliamente utilizado en los ciberataques, puesto que permite mantener un control sobre todo sistema comprometido. Comprender las técnicas y herramientas relacionadas con el C2 permite a una organización prepararse para estos posibles escenarios de explotación y, de esta manera, equiparse proactivamente para poder prevenir, detectar y responder a este tipo de compromisos. Tener conocimiento de las amenazas en un entorno de riesgos en constante evolución ayuda a identificar las posturas de seguridad y las medidas de fortificación necesarias. De este modo, al identificar la amenaza, las organizaciones pueden implementar medidas de mitigación efectivas para fortalecer la seguridad y aumentar la resiliencia frente a un panorama de amenazas crecientes que cada día es más sofisticado


[1] https://securelist.com/satellite-turla-apt-command-and-control-in-the-sky/72081/

[2] https://hstechdocs.helpsystems.com/manuals/cobaltstrike/current/userguide/content/topics/welcome_main.htm

[3] https://github.com/quasar/Quasar

[4] https://github.com/nettitude/PoshC2

[5] https://github.com/its-a-feature/Mythic

[6] https://github.com/JoelGMSec/Kitsune

[7] https://darkbyte.net/aboutme/

Speak Your Mind

*