Beacons
Beacons
Sección titulada «Beacons»| Beacon | Plataforma | Formato | Dependencias |
|---|---|---|---|
| Python 3 | Windows · Linux · macOS | .py / ELF (PyInstaller) / EXE | Ninguna — stdlib |
| Java 11 | Windows · Linux · macOS | .jar (obfuscado con ProGuard) | JRE en el objetivo |
| Go 1.21 | Windows · Linux · macOS | ELF / EXE | Ninguna — compilado estáticamente |
| PowerShell 5.1 | Windows | .ps1 | Ninguna — integrado en Windows |
Funcionalidades comunes
Sección titulada «Funcionalidades comunes»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
Específico de PowerShell
Sección titulada «Específico de PowerShell»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
Modos de encriptación
Sección titulada «Modos de encriptación»Todos los tipos de beacon admiten tres modos de encriptación de strings, seleccionables en el generador:
| Modo | Etiqueta en UI | Cómo funciona |
|---|---|---|
| XOR | XOR (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-CTR | AES-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 servidor | Entrega 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.
Comandos disponibles
Sección titulada «Comandos disponibles»Todos los beacons responden a estos comandos desde el panel del operador:
| Comando | Descripció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__ stop | Detener proxy SOCKS5 |
__pty__ | Abrir shell PTY (solo Python/Linux) |
find [ruta] <patrón> | Buscar archivos en el objetivo |
screenshot | Capturar pantalla |
screenshot <N> | Auto-screenshot cada N minutos |
screenshot 0 | Detener schedule de screenshots |
ps | Listar procesos en ejecución |
kill <pid> | Matar un proceso |
sleep <segundos> | Cambiar intervalo de sleep |
neighbors | Descubrir hosts vecinos en la red interna |
Generar un beacon
Sección titulada «Generar un beacon»Desde la UI web, ve a Generar Beacon:
- Selecciona el tipo (Python / Java / Go / PowerShell)
- Configura tu(s) URL(s) C2 — primaria + respaldos opcionales
- Configura sleep, jitter %, kill date opcional y heartbeat timeout
- Elige modo de encriptación (XOR / AES-256-CTR / Clave desde servidor)
- Elige opciones de evasión: camuflaje de tráfico, detección de sandbox, process masquerade
- Activa persistencia si es necesario
- Establece el nombre del archivo de salida
- Haz clic en Descargar (fuente) o Compilar (binario)
Descargar vs Compilar:
| Opción | Salida | Usar cuando |
|---|---|---|
| Descargar | Código fuente (.py, .ps1, .jar) | Quieres inspeccionar, modificar o entregar via el sistema de stager |
| Compilar | Binario 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).