Requisitos previos

Antes de generar un payload necesitas:

  1. Servidor JustC2 en ejecución con Go 1.26.5+ instalado
  2. Al menos un listener activo del tipo compatible con el agente
  3. Código fuente del agente presente en el directorio del extender (src_beacon/ o src_gopher/)

Generar un payload

Desde el cliente

  1. En JustClient, ve al menú o usa la opción de generar agente
  2. Selecciona el tipo de agente (Beacon o Gopher)
  3. Configura los parámetros del payload
  4. Haz clic en Generate
  5. El servidor compila el agente y te devuelve el binario

Parámetros comunes

ParámetroDescripciónEjemplo
Agent TypeTipo de agentebeacon o gopher
Listener(s)Listener(s) al que conectaráhttp-main
OSSistema operativo objetivowindows, linux, darwin
ArchArquitecturaamd64, 386
SleepIntervalo de check-in (segundos)60
JitterVariación aleatoria (%)20
Kill DateFecha de autodestrucción2026-12-31
Working TimeHorario operativo08:00-18:00

Proceso de compilación

Cuando solicitas un payload, el servidor:

1. Recibe la configuración del payload desde el cliente
2. Genera los perfiles de transporte del listener seleccionado
3. Inyecta la configuración en el código fuente del agente
4. Compila el agente con las opciones de cross-compilation:

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

5. Devuelve el binario compilado al cliente
6. El cliente ofrece guardarlo en disco

Flags de compilación

FlagPropósito
GOWORK=offIgnora archivos go.work para compilación aislada
CGO_ENABLED=0Compilación estática sin dependencias C
-trimpathElimina rutas del sistema del binario
-ldflags="-s -w"Strip de símbolos y debug info

Build Log

El cliente muestra un Build Log durante la compilación que informa del progreso:

[*] Build process start
[*] Configuring agent parameters...
[+] Listener profiles generated
[*] Compiling for linux/amd64...
[+] Build successful
[+] File saved: /ruta/local/gopher_linux_x64
----- Build process finished -----

Los mensajes tienen códigos de color:

  • Azul [*] — Información
  • Rojo [-] — Error
  • Amarillo [+] — Éxito

Payloads por tipo de agente

Beacon

Plataformas: Windows, Linux, macOS
Arquitecturas: x64, x86 (según OS)
Listeners: uno solo (HTTP, TCP, SMB o DNS)
Formatos: ejecutable nativo por plataforma

Gopher

Plataforma: Linux
Arquitecturas: x64, x86
Listeners: uno o más GopherTCP (multi-listener)
Formato: ELF ejecutable

Solución de problemas

“Build failed”

Posibles causas:

  • Go no disponible — Go 1.26.5 debe estar en el PATH del sistema donde corre el servidor
  • Código fuente ausente — Verifica que src_beacon/ o src_gopher/ existen en el directorio del extender dentro de dist/extenders/
  • Error de compilación — Revisa el Build Log para detalles del error

Verificar que Go está disponible

# En el servidor
go version
which go

Verificar código fuente

ls dist/extenders/beacon_agent/src_beacon/
ls dist/extenders/gopher_agent/src_gopher/

Si los directorios src_* no existen, vuelve a compilar los extenders:

make extenders