Lista OPSEC
Lista OPSEC
Sección titulada «Lista OPSEC»Lista de configuraciones y prácticas de XoloC2 que reducen tu exposición durante un engagement real. No todas aplican a cada escenario — usa las que correspondan.
Servidor
Sección titulada «Servidor»- Ejecutar detrás de un redirector — nunca expongas tu IP C2 real. Usa Apache, nginx o Caddy para proxear solo las URIs válidas del beacon. Ver el tutorial de Redirectores.
- Usar un certificado TLS válido — los certificados autofirmados generan alertas AV/proxy y son fácilmente identificables. Usa Let’s Encrypt en el redirector.
- Activar whitelist de IPs — restringe el acceso al panel a tus IPs de operador. Los endpoints de beacon siempre omiten la whitelist.
- Activar MFA — requiere TOTP para todas las cuentas de operador. Ver Configuración de MFA.
- Activar alertas webhook — recibe notificaciones de logins inesperados o intentos de autenticación fallidos. Ver Notificaciones Webhook.
- Rotar el agent secret después de cada engagement — ve a Configuración > Seguridad > Rotar Secret. Los beacons anteriores de engagements previos dejarán de funcionar.
- Hacer copia de seguridad de la base de datos antes de rotar el secret o actualizar:
cp server/xoloc2.db server/xoloc2.db.bak
Configuración del beacon
Sección titulada «Configuración del beacon»- Establecer un kill date — el beacon se autodestruye tras el período del engagement. Evita implantes persistentes.
- Establecer un heartbeat timeout — el beacon se autodestruye si el C2 no es alcanzable por N días. Evita implantes huérfanos si tu servidor se cae.
- Activar camuflaje de tráfico — User-Agents de navegadores reales aleatorios y cabeceras Referer mezclan el polling del beacon con el tráfico HTTPS normal.
- Activar detección de sandbox — el beacon verifica indicadores de VM, usernames/hostnames de sandbox y herramientas de análisis antes de ejecutarse. Reduce detonaciones en sandboxes.
- Ajustar sleep + jitter — sleep alto (60–300 s) + jitter alto (40–80%) reduce la frecuencia de polling y dificulta la detección basada en timing. Usa valores más bajos solo durante interacción activa.
- Usar clave desde servidor — si el análisis forense del binario es un riesgo, usa el modo de encriptación de clave desde servidor para que la clave AES nunca esté embebida en el beacon.
- Establecer URLs C2 de respaldo — agrega una URL secundaria de C2 o redirector para que el beacon pueda reconectarse si el redirector primario cae.
- Activar persistencia solo cuando sea necesario — la persistencia (clave de registro run / crontab) es ruidosa. Actívala solo si el engagement lo requiere.
Entrega
Sección titulada «Entrega»- Usar el sistema de stager — entrega via un one-liner de token de un solo uso en lugar de copiar archivos. El token expira y es revocable. Ver Entrega con Stager.
- Tokens de uso único — establece máximo de usos en
1para que la URL del payload quede inválida tras la primera descarga. - Expiración corta — establece una ventana de expiración ajustada (1–2 horas) en los tokens stager.
- Revocar tokens inmediatamente después de la entrega — no dejes URLs de stager activas más tiempo del necesario.
Durante el engagement
Sección titulada «Durante el engagement»- Etiquetar sesiones — usa los campos de tags y notas para registrar hostnames, roles y qué has hecho. Más fácil de rastrear que la memoria y aparece en los reportes.
- Marcar sesiones como detectadas si son capturadas — el campo de detección registra el nombre del EDR/AV. Útil para el reporte y para rotar a un tipo de beacon diferente.
- Exportar historial de tareas — usa el botón de exportar en cada sesión para guardar la salida de comandos antes de eliminar una sesión.
- Generar un reporte antes de la limpieza — captura el timeline completo, comandos y listado de exfiltración mientras los datos aún están en la base de datos.
Limpieza
Sección titulada «Limpieza»- Eliminar sesiones después del engagement — elimina los registros de agentes de la base de datos. No mata el proceso del beacon en el objetivo (eso requiere un comando
killoexitprimero). - Rotar el agent secret — invalida todos los beacons generados previamente.
- Eliminar persistencia — envía el comando de limpieza apropiado antes de matar el beacon:
# Windows (registro)reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v WindowsUpdate /f# Linux (crontab)crontab -l | grep -v xolo | crontab -
- Limpiar el audit log (solo admin, opcional) — Configuración > Audit Log > Limpiar. Hazlo solo después de exportar los registros que necesites.