Agente Gopher
Descripción
Gopher es un agente ligero escrito en Go, diseñado específicamente para sistemas Linux. A diferencia de Beacon, Gopher se centra en la eficiencia y el bajo perfil, con un binario más pequeño y menor huella en memoria.
Plataformas soportadas
| Sistema operativo | Arquitecturas | Formato |
|---|---|---|
| Linux | x64, x86 | ELF |
Listener compatible
| Listener | Tipo | Protocolo |
|---|---|---|
| GopherTCP | Externo | TCP |
Multi-listener
Una característica destacada de Gopher es el soporte multi-listener: un solo payload puede configurarse con múltiples listeners GopherTCP. El agente intentará conectar a cada uno en orden, proporcionando redundancia automática:
Listeners configurados:
1. gopher-primary → 10.0.0.1:9443
2. gopher-secondary → 10.0.0.2:9443
3. gopher-fallback → 10.0.0.3:9443
Si #1 falla → intenta #2
Si #2 falla → intenta #3
Si todos fallan → espera y reintenta desde #1Configuración del agente
Al generar un payload Gopher:
| Parámetro | Descripción |
|---|---|
| Listeners | Uno o más listeners GopherTCP |
| Arquitectura | x64 o x86 |
| Sleep | Intervalo de reconexión en segundos |
| Jitter | Variación aleatoria del sleep |
| Kill Date | Fecha de autodestrucción |
| Working Time | Horario operativo |
Funcionalidades
Gopher incluye funcionalidades esenciales para operaciones en Linux:
Ejecución
- Ejecución de comandos de shell
- Ejecución de scripts
Sistema de archivos
- Listado de directorios (con permisos Unix: modo, usuario, grupo)
- Lectura y escritura de archivos
- Descarga y subida de archivos
Procesos
- Listado de procesos (PID, PPID, TTY, usuario, comando)
- Terminación de procesos
Red
- Tunneling SOCKS4/5
- Port forwarding
- Pivoting
Diferencias con Beacon
| Característica | Beacon | Gopher |
|---|---|---|
| Plataformas | Win/Linux/macOS | Solo Linux |
| Protocolos | HTTP/TCP/SMB/DNS | Solo TCP |
| Multi-listener | No | Sí |
| Tamaño de binario | Mayor | Menor |
| Funcionalidades | Completo | Esencial |
| Casos de uso | Objetivo principal | Servidores Linux, pivotes |
Cuándo usar Gopher
- Servidores Linux — Cuando el objetivo es un servidor Linux y necesitas un implante ligero
- Pivotes internos — Para agentes intermedios en redes internas
- Redundancia — El multi-listener da resiliencia sin payloads adicionales
- Bajo perfil — Cuando necesitas minimizar la huella en disco y memoria
Watermark
El watermark de Gopher es 904e5493, diferente al de Beacon. Esto permite al servidor identificar el tipo de agente durante el handshake inicial.
Compilación
Los agentes Gopher se compilan en tiempo real:
GOWORK=off CGO_ENABLED=0 GOOS=linux GOARCH=<arch> \
go build -trimpath -ldflags="-s -w" -o <output>El código fuente se encuentra en dist/extenders/gopher_agent/src_gopher/.