Ir al contenido

Beacons

BeaconPlataformaFormatoDependencias
Python 3Windows · Linux · macOS.py / ELF (PyInstaller) / EXENinguna — stdlib
Java 11Windows · Linux · macOS.jar (obfuscado con ProGuard)JRE en el objetivo
Go 1.21Windows · Linux · macOSELF / EXENinguna — compilado estáticamente
PowerShell 5.1Windows.ps1Ninguna — integrado en Windows

Todos los tipos de beacon comparten:

  • Polling HTTPS — intervalo de sleep configurable (1–300 s) y jitter % (0–80%)
  • Failover multi-listener — URL C2 primaria + URLs de respaldo ilimitadas
  • Clave XOR única por generación — URLs C2, agent secret y strings sensibles son XOR-codificados con una clave aleatoria nueva; dos beacons del mismo servidor tienen contenido estático diferente
  • Encriptación XOR + nonce por petición — cada cuerpo de petición se encripta con un nonce aleatorio
  • Entrega de clave desde el servidor — modo opcional donde el beacon obtiene su clave AES en tiempo de ejecución; la clave nunca se embebe en el binario
  • Kill date — el beacon se autodestruye tras la fecha configurada
  • Heartbeat timeout — el beacon se autodestruye si el C2 no es alcanzable por N días
  • Persistencia — Windows: clave Run del Registro · Linux: crontab @reboot
  • Camuflaje de tráfico — User-Agents y cabeceras Referer de navegadores reales aleatorios
  • Detección de sandbox — detecta VMs, CPU/RAM bajos, usernames/hostnames de sandbox, herramientas de análisis, ataques de timing
  • Ejecución en segundo plano — Windows: proceso sin consola · Linux: daemon double-fork
  • Seguimiento de CWD — directorio de trabajo actual persistido entre check-ins

El beacon PowerShell agrega:

  • Bypass AMSI — deshabilita AMSI antes de cargar el payload
  • Deshabilitar ETW — parchea Event Tracing for Windows
  • Deshabilitar ScriptBlock logging — evita que PowerShell registre el código ejecutado
  • Ejecución en memoria — no se escriben archivos en disco

Todos los tipos de beacon admiten tres modos de encriptación de strings, seleccionables en el generador:

ModoEtiqueta en UICómo funciona
XORXOR (rápido, básico)URLs C2, agent secret y strings sensibles XOR-codificados con una clave aleatoria única por generación. Payload por petición también cifrado con XOR+nonce. Modo por defecto.
AES-256-CTRAES-256 / SHA-256 CTR (fuerte)Misma capa XOR para strings estáticos, pero el payload por petición se encripta con AES-256 en modo CTR. Clave derivada con SHA-256. Mayor confidencialidad del payload.
Clave desde servidorEntrega de clave desde servidor (máxima seguridad)El beacon obtiene su clave AES del C2 en el primer check-in. La clave nunca se embebe en el binario — no recuperable por análisis estático. Requiere conexión exitosa al C2 para operar.

Cuándo usar cada uno:

  • XOR — rápido, sin overhead, sin round-trip para obtener clave. Suficiente para la mayoría de engagements.
  • AES-256-CTR — usar cuando el tráfico puede ser capturado y quieres mayor confidencialidad del payload.
  • Clave desde servidor — usar cuando el análisis forense del binario es una preocupación (ej. el objetivo tiene EDR/forense de memoria). El beacon es inútil sin la clave del C2.

Dos beacons generados desde el mismo servidor siempre tienen contenido estático diferente independientemente del modo de encriptación — cada generación usa una clave aleatoria nueva.

Todos los beacons responden a estos comandos desde el panel del operador:

ComandoDescripción
<cualquier comando de shell>Ejecutar en el shell del sistema
__ls__ [ruta]Navegador de archivos
__upload__ <ruta_remota>Subir un archivo al objetivo
__b64file__ <ruta>Exfiltrar un archivo
__tunnel__ <puerto>Iniciar proxy SOCKS5 en el puerto indicado
__tunnel__ stopDetener proxy SOCKS5
__pty__Abrir shell PTY (solo Python/Linux)
find [ruta] <patrón>Buscar archivos en el objetivo
screenshotCapturar pantalla
screenshot <N>Auto-screenshot cada N minutos
screenshot 0Detener schedule de screenshots
psListar procesos en ejecución
kill <pid>Matar un proceso
sleep <segundos>Cambiar intervalo de sleep
neighborsDescubrir hosts vecinos en la red interna

Desde la UI web, ve a Generar Beacon:

  1. Selecciona el tipo (Python / Java / Go / PowerShell)
  2. Configura tu(s) URL(s) C2 — primaria + respaldos opcionales
  3. Configura sleep, jitter %, kill date opcional y heartbeat timeout
  4. Elige modo de encriptación (XOR / AES-256-CTR / Clave desde servidor)
  5. Elige opciones de evasión: camuflaje de tráfico, detección de sandbox, process masquerade
  6. Activa persistencia si es necesario
  7. Establece el nombre del archivo de salida
  8. Haz clic en Descargar (fuente) o Compilar (binario)

Descargar vs Compilar:

OpciónSalidaUsar cuando
DescargarCódigo fuente (.py, .ps1, .jar)Quieres inspeccionar, modificar o entregar via el sistema de stager
CompilarBinario nativo (ELF/EXE para Python/Go, JAR para Java)El objetivo tiene Python/JRE o quieres un ejecutable standalone

La compilación Java usa ProGuard para obfuscar el JAR. La compilación Python usa PyInstaller (compilación cruzada para Windows via Wine al construir EXE en Linux).