Descripción

Beacon es el agente más completo de JustC2. Está escrito en Go y se compila dinámicamente en el servidor para cada plataforma y arquitectura objetivo.

Plataformas soportadas

Sistema operativoArquitecturasFormato
Windowsx64, x86EXE, DLL
Linuxx64, x86ELF
macOSx64, ARM64Mach-O

Listeners compatibles

Beacon puede comunicarse a través de cuatro protocolos:

ListenerTipoProtocoloDirección
BeaconHTTPExternoHTTP/HTTPSAgente → Servidor
BeaconTCPInterno (bind)TCPPivote → Agente
BeaconSMBInterno (bind)Named PipesPivote → Agente
BeaconDNSExternoDNSAgente → Servidor

Single listener

A diferencia de Gopher, cada payload Beacon se configura con un solo listener (multi_listeners: false). Para redundancia, genera múltiples payloads con diferentes listeners.

Configuración del agente

Al generar un payload Beacon, puedes configurar:

ParámetroDescripción
ListenerEl listener al que conectará
PlataformaSistema operativo objetivo (Windows/Linux/macOS)
Arquitecturax64 o x86
SleepIntervalo de check-in en segundos
JitterPorcentaje de variación aleatoria del sleep
Kill DateFecha de autodestrucción del agente
Working TimeHorario operativo (el agente solo opera dentro de este rango)

Sleep y Jitter

El sleep define cada cuántos segundos el agente contacta al servidor. El jitter añade variación aleatoria:

Sleep: 60 segundos
Jitter: 20%

Check-in real: entre 48 y 72 segundos (60 ± 20%)

Un jitter más alto hace que el tráfico sea menos predecible y más difícil de detectar.

Funcionalidades

Ejecución de comandos

  • Ejecución de comandos del sistema
  • Ejecución de código en memoria
  • Carga de bibliotecas dinámicas

Sistema de archivos

  • Listado de directorios
  • Lectura y escritura de archivos
  • Descarga de archivos del objetivo al C2
  • Subida de archivos del C2 al objetivo
  • Listado de unidades de disco (Windows)

Procesos

  • Listado de procesos
  • Inyección en procesos
  • Terminación de procesos

Red

  • Tunneling SOCKS4/5
  • Port forwarding local y reverso
  • Escaneo de puertos
  • Pivoting a través de otros agentes

Credenciales

  • Recolección de credenciales
  • Acceso a almacenes de credenciales del sistema

Capturas

  • Capturas de pantalla
  • Keylogger

Persistencia

  • Mecanismos de persistencia específicos por OS
  • Autostart, servicios, tareas programadas

Watermark

Cada agente Beacon tiene un watermark (be4c0149) que identifica el tipo de agente. Este watermark se usa internamente para emparejar agentes con sus listeners compatibles durante el handshake.

Compilación

Los agentes Beacon se compilan en tiempo real usando el toolchain de Go del servidor:

GOWORK=off CGO_ENABLED=0 GOOS=<os> GOARCH=<arch> \
  go build -trimpath -ldflags="-s -w" -o <output>

El código fuente se encuentra en dist/extenders/beacon_agent/src_beacon/ y se compila con las opciones de configuración del payload seleccionadas por el operador.