Post

AdaptixC2

Uso y consideraciones sobre AdaptixC2

AdaptixC2

1. Adaptix C2

Hoy vamos a ver un C2 que está haciendose común y recomendando mucho últimamente que es AdaptixC2 . Voy a aprovechar que tengo que realizar algunas tareas con este C2 para comentaros algunas ventajas de este C2 de código libre.

Desktop View

Adaptix se ha hecho famoso tanto por su parecido con CobaltStrike como el que están saliendo una serie de agentes custom que permiten mejorar sus capacidades de evasión. Aún así hay que aclarar que como siempre las capacidades de evasión no vienen por defecto y que existe mucho trabajo por realizar de manera manual. Un buen ejemplo de los indicadores que despliega Adaptix es el siguiente post de Hunt.io sobre AdaptixC2 el cual profundiza en mucha de las configuraciones por defecto e infraestruturas facilmente señalables. También puedes ver este artículo de Censys que profundiza en el firgerprinting de Adaptix y es bastante reciente.

Desktop View

Para el despliegue es relavante hacer uso de la Wiki oficial de AdaptixC2 que explica con bastante detalle como realizar la instalación. Una cuestión relevante de cara a la instalación en máquinas Kali es que existe un limitado número de versiones estables . Aclaro esto porque por ejemplo en Kali en las últimas versiones al instalarlo desde el repositorio a mi me ha generado muchos problemas, entre ellos la instalación correcta pero que la máquina no sea capaz de reiniciarse. Aún así ten en cuenta que existe un Paquete oficial de Kali para la versión 1.1 de Adaptix.

Además ten en cuenta que existe un Extension Kit oficial para Adaptix que te pone a tu disposición una gran cantidad de BOFs que te facilitarán la vida.

2. Setup, Agentes y listeners

En mi caso voy a instalar un agente bastante famoso de Adaptix llamado kharon el cual es un agente con capacidades de evasión mejoraras respecto a los agentes que existen por defecto en el C2. La instalación resulta bastante sencilla.

1
2
3
4
5
6
7
8
9
10
11
12
13
/setup_kharon.sh --ax ../AdaptixC2/
[+] Action: Full installation (all)
{...}
[+] Built listener
[+] Copied agent distribution files to dist
[+] Copied listener distribution files to dist
[+] Installation completed successfully
================================================================
Action: all
Agent: agent_kharon
Listener: listener_kharon_http
Location: /opt/adaptixc2/AdaptixC2
================================================================

Además voy a preparar todos los bofs del Extension Kit

1
2
3
4
5
6
7
8
9
┌──(root㉿kali)-[/opt/adaptixc2/Extension-Kit]
└─# make
=====>>  AD-BOF
# 64-bit builds
{...}
 32-bit builds
[+] smartscan (x32)
[+] nbtscan (x32)
[+] quser (x32)

En mi caso ya que voy a utilizar Kharon tengo que configurar en el profile el extender de kharon, lo cual es básicamente añadir estas lineas.

1
2
    - "extenders/agent_kharon/config.yaml" 
    - "extenders/listener_kharon_http/config.yaml"

En los axscripts hay que añadir

1
    - "PostEx-Arsenal/kh_modules.axs"

Con esto simplemente inicio mi servidor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
./adaptixserver --profile profile.yaml 

[===== Adaptix Framework v1.2 =====]

[+] Starting server -> https://0.0.0.0:4321/endpoint [20/06 12:19:16]
[*] Restore data from Database... [20/06 12:19:16]
   [+] Restored 0 agents [20/06 12:19:16]
   [+] Restored 0 pivots [20/06 12:19:16]
   [+] Restored 0 listeners [20/06 12:19:16]
   [+] Restored 0 screenshots [20/06 12:19:16]
   [+] Restored 0 downloads [20/06 12:19:16]
   [+] Restored 0 credentials [20/06 12:19:16]
   [+] Restored 0 targets [20/06 12:19:16]
[+] The AdaptixC2 server is ready [20/06 12:19:16]

Inicias el cliente

Desktop View

Inicias sesión y te conectas al C2

Desktop View

Una cosa que me gusta de Adaptix es que puedes tener también clientes en Windows, lo cual a mi personalmente me facilita la vida para temas de evasión. Aunque tienes que tener en cuenta que muchas configuraciones no se replicarán ya que dependen del perfil del cliente y no del teamserver. Por lo que puede ser una facilidad pero en Cobalt Strike mi impresión es que se trabaja de manera un poco más ágil.

Desktop View

En este punto cargamos el AXS del extension Kit y ya tendriamos todos los BOFs disponibles en nuestra sesión actual.

Desktop View

El proceso de uso es bastante similar al de CobaltStrike. Primero debes de generar un listener y después tendrás que generar un beacon para el uso concreto que quieras hacer.

Desktop View

Personalmente he perdido más tiempo del que me gustaría reconocer por no leer la documentación oficial sobre el profile de Kharon , la cual funciona como un Malleable. He tenido bastantes errores simplemente porque el propio Adaptix me pide un perfil en json que estaba al parecer en la ruta /opt/adaptixc2/Kharon/listener_kharon_http/profiles .

Una vez configurado el listener tienes que generar tu primer agente. Ya aquí a gusto del consumidor respecto de su configuración.

Desktop View

Recuerda revisar bien el setup que has hecho de la documentación oficial sobre el profile de Kharon si no quieres tener errores.

Simplemente te llevas el agente a tu máquina windows y ahí lo tienes!

Desktop View

Una cosa chula de Adaptix es que existe la posible generar beacons para máquinas Linux. En mi caso voy a usar el agente Gopher para desplegar un beacon de text en mi propia Kali.

Desktop View

3. Evasion

Por supuesto el payload que hemos generado está cumpletamente firmado como podemos ver utilizando ThreatCheck. Este post no tiene como objetivo trabajar la metodología de evasión que ya explica Rasta Mouse en el artículo Bypassing Defender with ThreatCheck & Ghidra o con mucho más detalle en la CRTO . Simplemente, pues somos detectados con facilidad.

1
2
3
4
C:\Users\windows\Desktop\Tools>ThreatCheck.exe -f Kharon.x64.exe
[+] Target file size: 77312 bytes
[+] Analyzing...
[*] Testing 38656 bytes

Desktop View

Como es la versión por defecto podemos hasta ilustrarlo con VirusTotal ya que realmente no importa perder reputación en este binario.

Desktop View

En mi caso no me voy a liar mucho con la evasión ya que la tengo trabajada de otras ocasiones. Usaré la función de IAT hidding que tengo disponible y beatrice de cara a parchear la detección de mi binario.

Desktop View

En este punto simplemente lo analizo y…..

Desktop View

Ojo no uso la función -s por casualidad. Beatrice parchea mal algunas partes de mi binario con la solución normal.

En este punto comprobamos el funcionamiento correcto y que recibo la conectividad. Y listo! Adaptixc2 desplegado y con evasión estática de defender realizada! Desktop View

Desktop View


Apoya el contenido de ciberseguridad en castellano

Si esta publicación te ha sido útil y quieres apoyar mi trabajo para que continúe creando más contenido, aquí te dejo algunas formas de apoyar:

  1. Compartir el contenido 📲 Si crees que esta guía puede ser útil para otras personas, compartirla en tus redes sociales es una gran ayuda.

  2. Donar en Ko-fi 💖 Puedes hacer una donación rápida a través de Ko-fi para ayudarme a seguir publicando guías y tutoriales. ¡Cada aportación cuenta y es muy apreciada!

  3. Usa mi enlace de afiliado de NordVPN y NordPass para mejorar tu seguridad y apoyar la creación de contenido 🛡️ Puedes suscribirte a NordVPN con un 75% de descuento y 3 meses gratis o a NordPass con un 53% de descuento y 3 meses gratis y mejorar tu seguridad a la vez que apoyas el contenido de ciberseguridad en español.


¡Gracias por tu apoyo! 🙏 Desktop View

This post is licensed under CC BY 4.0 by the author.