Agente Beacon
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 operativo | Arquitecturas | Formato |
|---|---|---|
| Windows | x64, x86 | EXE, DLL |
| Linux | x64, x86 | ELF |
| macOS | x64, ARM64 | Mach-O |
Listeners compatibles
Beacon puede comunicarse a través de cuatro protocolos:
| Listener | Tipo | Protocolo | Dirección |
|---|---|---|---|
| BeaconHTTP | Externo | HTTP/HTTPS | Agente → Servidor |
| BeaconTCP | Interno (bind) | TCP | Pivote → Agente |
| BeaconSMB | Interno (bind) | Named Pipes | Pivote → Agente |
| BeaconDNS | Externo | DNS | Agente → 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ámetro | Descripción |
|---|---|
| Listener | El listener al que conectará |
| Plataforma | Sistema operativo objetivo (Windows/Linux/macOS) |
| Arquitectura | x64 o x86 |
| Sleep | Intervalo de check-in en segundos |
| Jitter | Porcentaje de variación aleatoria del sleep |
| Kill Date | Fecha de autodestrucción del agente |
| Working Time | Horario 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.