Havoc C2 en Kali Linux

 https://www.onlinetis.com

Havoc C2 en Kali Linux

Hablemos de Havoc C2 en el contexto de Kali Linux.

Si estás familiarizado con herramientas como Cobalt Strike o Metasploit, Havoc te va a resultar muy interesante. Es un framework de Comando y Control (C2) de código abierto y moderno, diseñado para ser sigiloso y personalizable durante pruebas de penetración o ejercicios de Red Teaming.

Aquí tienes una guía rápida de qué es y cómo se maneja:


¿Qué hace especial a Havoc?

A diferencia de otros frameworks más antiguos, Havoc fue construido pensando en evadir las defensas actuales (EDR y antivirus).

  • Demon: Es el nombre del agente (el "malware" de prueba) que se instala en la víctima. Está escrito en C/ASM y es extremadamente ligero.

  • Interfaz Moderna: Tiene una GUI (interfaz gráfica) basada en Qt que es muy visual y fácil de usar, comparada con la línea de comandos pura.

  • Extensibilidad: Permite usar scripts en Python para automatizar tareas.

  • Evasión avanzada: Incluye técnicas como Indirect Syscalls y dormir el agente (Sleep Obfuscation) para no ser detectado por la memoria del sistema.


Instalación básica en Kali Linux

Para instalarlo, generalmente necesitas clonar su repositorio de GitHub y compilar tanto el servidor (Teamserver) como el cliente.

1. Requisitos previos

Primero, asegúrate de tener las dependencias de compilación:

Bash
sudo apt update
sudo apt install -y git build-essential cmake libfontconfig1 mesa-common-dev libglu1-mesa-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5websockets5-dev python3-dev libboost-all-dev

2. Clonar y Compilar

Bash
git clone https://github.com/HavocFramework/Havoc.git
cd Havoc

# Compilar el Teamserver
cd teamserver
go build -o teamserver main.go
cd ..

# Compilar el Cliente (GUI)
make client

Flujo de trabajo (Conceptos clave)

Para operar Havoc, sigues estos pasos:

  1. Levantar el Teamserver: Es el cerebro que recibe las conexiones. Se ejecuta con un archivo de configuración .yaotl.

  2. Conectar el Cliente: Abres la interfaz gráfica y te conectas a la IP de tu Teamserver.

  3. Configurar un Listener: Defines por qué puerto y protocolo (HTTP/HTTPS) va a escuchar el servidor.

  4. Generar el Payload (Demon): Creas el archivo .exe o .dll que enviarás al objetivo.

  5. Interacción: Una vez que el objetivo lo ejecuta, verás aparecer una "sesión" en tu consola y podrás ejecutar comandos, descargar archivos o escalar privilegios.


⚠️ Nota de Seguridad y Ética

Recuerda que Havoc es una herramienta potente. Úsala únicamente en entornos controlados o bajo contratos de auditoría de seguridad autorizados. El uso de estas herramientas contra sistemas sin permiso es ilegal.

Configurar el archivo havoc.yaotl es el paso crítico para que el Teamserver sepa cómo comportarse, quién puede conectarse y cómo deben comunicarse los agentes (Demons).

Este archivo utiliza un formato llamado YAOTL (similar a YAML o TOML). Aquí tienes un desglose de una configuración estándar y funcional para Kali Linux:


Estructura del archivo havoc.yaotl

Por lo general, encontrarás un ejemplo en la carpeta principal de Havoc. Aquí tienes una configuración comentada para que entiendas cada sección:

Terraform
Teamserver {
    Host = "0.0.0.0"     # Escucha en todas las interfaces (útil si accedes desde otra IP)
    Port = 40056         # Puerto de comunicación entre el Cliente y el Server

    Build {
        Compiler64 = "/usr/bin/x86_64-w64-mingw32-gcc"
        Compiler86 = "/usr/bin/i686-w64-mingw32-gcc"
    }

    Authentication {
        User "tu_usuario" {
            Password = "tu_password_seguro"
        }
    }
}

# Configuración del Agente (Demon)
Operators {
    User "tu_usuario" {
        Password = "tu_password_seguro"
    }
}

# Ejemplo de un Listener HTTP (lo que recibirá las conexiones de las víctimas)
Service {
    Endpoint = "http"
    Password = "service-password"
}

Puntos clave que debes ajustar:

1. Autenticación

Cambia los valores de User y Password. Estos son los datos que introducirás en la GUI (Cliente) cuando te pida conectarte al servidor. ¡No uses los valores por defecto!

2. Compiladores (Crucial en Kali)

Havoc usa mingw-w64 para compilar los agentes .exe de Windows desde Linux. Asegúrate de tenerlo instalado, de lo contrario no podrás generar payloads:

Bash
sudo apt install g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64

Verifica que las rutas en la sección Build coincidan con la salida de which x86_64-w64-mingw32-gcc.

3. El Host del Teamserver

  • 0.0.0.0: Permite conexiones desde cualquier red (útil si el servidor está en la nube o en una VM distinta).

  • 127.0.0.1: Solo permite conexiones desde la misma máquina Kali donde corre el servidor.


Cómo lanzar el servidor con tu archivo

Una vez que hayas editado y guardado el archivo (por ejemplo, como mi_config.yaotl), navega a la carpeta del teamserver y ejecútalo así:

Bash
sudo ./teamserver server --profile mi_config.yaotl -v

(El flag -v activa el modo "verbose" para que puedas ver en tiempo real si algo falla o si un agente se conecta).


Siguientes pasos:

Una vez que el Teamserver esté corriendo, debes abrir el Havoc Client y conectarte usando la IP de tu Kali, el puerto (40056) y las credenciales que pusiste en el archivo.

Una vez que tienes el Teamserver corriendo y te has conectado con el Havoc Client (la interfaz gráfica), el siguiente paso es crear un Listener. Sin un listener, el servidor es como un teléfono que no tiene número: nadie puede llamarlo.

Aquí tienes los pasos para configurar tu primer Listener HTTP/HTTPS:


1. Acceder al menú de Listeners

En la interfaz de Havoc (el cliente):

  1. Ve al menú superior y haz clic en View.

  2. Selecciona Listeners. Se abrirá una pestaña en la parte inferior de la pantalla.

  3. Haz clic en el botón Add (esquina inferior izquierda de esa pestaña).


2. Configuración del Listener (Panel de Control)

Se abrirá una ventana emergente. Aquí es donde defines "las reglas del juego":

  • Name: Ponle un nombre descriptivo (ej: HTTP_Listener_Demo).

  • Payload: Normalmente seleccionarás Service (HTTP/HTTPS).

  • Hosts: Aquí debes poner la IP de tu máquina Kali (la que recibirá la conexión).

    • Tip: Si estás en una red local, usa tu IP privada (ej: 192.168.1.50).

  • Port: El puerto por el que escuchará el tráfico de la víctima (comúnmente el 80, 443 u 8080).

  • Beacons (Sleep): Define cada cuánto tiempo el agente "despierta" para pedir órdenes.

    • Sleep: 5 (segundos).

    • Jitter: 10% (esto añade una variación aleatoria al tiempo para que el tráfico no parezca un robot y evada detecciones).


3. Configuración de Evasión (Headers y User-Agent)

Para que el tráfico parezca navegación web normal y no "tráfico de hacking":

  1. Busca la sección de Headers.

  2. Havoc suele traer un User-Agent por defecto (como el de un navegador Chrome o Firefox). Asegúrate de que parezca real.

  3. Puedes añadir cabeceras como Host: google.com para intentar engañar a algunos firewalls básicos.


4. Guardar y Activar

Haz clic en Save. Verás que el listener aparece en la lista con un estado (Status).

  • Si aparece en verde/running, ¡felicidades! Tu Kali ya está escuchando.

  • Si da error, suele ser porque el puerto ya está siendo usado por otro servicio (como Apache o Nginx). Prueba con un puerto distinto como el 8081.


¿Qué sigue ahora?

Ahora que el "oído" está abierto, necesitas crear el "mensaje". El siguiente paso lógico es generar el Payload (Demon) que se conectará a este listener específico.

Ahora vamos a fabricar el "agente" (el archivo ejecutable) que enviará la información de vuelta a tu Kali Linux. En el mundo de Havoc, este agente se llama Demon.

Sigue estos pasos en la interfaz gráfica (Client) de Havoc:


1. Abrir el Generador de Payload

  1. En el menú superior, haz clic en Attack.

  2. Selecciona Payload. Se abrirá una ventana llamada Payload Generator.

2. Configuración del Demon

Aquí es donde personalizas cómo se comportará el archivo:

  • Listener: Selecciona el listener que acabas de crear (el que configuramos en el paso anterior).

  • Arch (Arquitectura): Elige x64 (es lo estándar para sistemas Windows modernos).

  • Format: Tienes varias opciones:

    • Windows EXE: Un ejecutable común.

    • Windows DLL: Útil para técnicas de inyección.

    • Service EXE: Si planeas instalarlo como un servicio del sistema.

    • Recomendación: Empieza con Windows EXE para tus primeras pruebas.

  • Config (Evasión):

    • Sleep: Aquí defines cada cuánto tiempo el Demon "despierta" para recibir órdenes. (Ej: 2 o 5 segundos).

    • Jitter: Pon un 10% o 20% para que el intervalo de tiempo sea irregular y no parezca un patrón robótico.

    • Indirect Syscalls: ¡Activa esto! Es una de las mejores funciones de Havoc para saltarse la detección de muchos EDR modernos.

3. Generar y Guardar

  1. Haz clic en el botón Generate.

  2. Havoc compilará el código en tiempo real usando los compiladores mingw que instalamos al principio.

  3. Te pedirá una ruta para guardar el archivo (ej: Demon.x64.exe). Guárdalo en tu carpeta de descargas o escritorio en Kali.


4. Ejecución (El momento de la verdad)

Para probarlo, debes llevar ese archivo .exe a tu máquina de pruebas (una VM con Windows, por ejemplo).

Nota importante: Como Havoc es una herramienta de código abierto muy conocida, es probable que Windows Defender detecte el archivo si no has aplicado técnicas de ofuscación adicionales (como empaquetadores o cryptors). Para esta prueba inicial, te sugiero desactivar temporalmente el antivirus en tu VM de destino para confirmar que la conexión funciona.

Una vez que hagas doble clic en el .exe en la víctima:

  1. Vuelve a tu Havoc Client en Kali.

  2. Verás que aparece una nueva entrada en la lista de Sessions.

  3. ¡Felicidades! Ya tienes control remoto sobre esa máquina.


5. Interactuar con la víctima

Haz clic derecho sobre la nueva sesión que apareció y selecciona Interact. Se abrirá una consola donde puedes escribir comandos. Algunos comandos básicos de Demon son:

  • checkin: Fuerza al agente a conectarse ahora mismo.

  • shell whoami: Ejecuta un comando en la terminal de Windows.

  • ls: Lista los archivos de la carpeta actual.

  • screenshot: Toma una captura de pantalla de la víctima.

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Hacking y ciberseguridad en kali linux con atk6-thcping6

Como utilizar Fierce en kali linux