Paso 1: Compilar el proyecto

cd JustC2
make all

Esto generará todos los binarios en el directorio dist/.

Paso 2: Generar certificados TLS

cd dist/
bash ssl_gen.sh

Se te pedirá información para el certificado (puedes dejar los valores por defecto presionando Enter). Se generarán:

  • server.rsa.crt — Certificado público
  • server.rsa.key — Clave privada

Paso 3: Configurar el servidor

Edita dist/profile.yaml con tus preferencias:

Teamserver:
  interface: "0.0.0.0"     # Escuchar en todas las interfaces
  port: 4321               # Puerto del servidor
  endpoint: "/myc2"        # Cambia el endpoint por defecto
  password: "MiPassSegura" # Contraseña para conectar
  only_password: true      # Solo contraseña, sin usuarios
  cert: "server.rsa.crt"
  key: "server.rsa.key"
  extenders:
    - "extenders/beacon_listener_http/config.yaml"
    - "extenders/beacon_agent/config.yaml"
    - "extenders/gopher_listener_tcp/config.yaml"
    - "extenders/gopher_agent/config.yaml"

Paso 4: Iniciar el servidor

cd dist/
./justserver

Deberías ver una salida similar a:

[*] Loading profile...
[+] Profile loaded
[*] Loading extenders...
[+] Loaded listener: BeaconHTTP
[+] Loaded agent: beacon
[+] Loaded listener: GopherTCP
[+] Loaded agent: gopher
[*] Starting teamserver on 0.0.0.0:4321
[+] Teamserver started

Si algún extender falla al cargar, el servidor continuará con los que se cargaron correctamente.

Paso 5: Conectar el cliente

Inicia el cliente desde otra terminal (o desde otra máquina):

./JustClient

Pantalla de conexión

Se abrirá el diálogo de conexión donde debes configurar:

CampoValorDescripción
Hosthttps://IP:4321Dirección del servidor
Endpoint/myc2El endpoint configurado en profile.yaml
Usernameoperador1Tu nombre de operador (informativo en modo only_password)
PasswordMiPassSeguraLa contraseña del servidor
Project Dir/ruta/local/proyectoDirectorio local para almacenar datos del proyecto

Haz clic en Connect para establecer la conexión.

Certificado autofirmado

El cliente aceptará automáticamente certificados autofirmados. No es necesario importar el certificado del servidor.

Paso 6: Verificar la conexión

Una vez conectado, el cliente se sincronizará con el servidor y mostrará la interfaz principal. Verifica que:

  1. La barra de estado muestra la conexión activa (icono verde)
  2. El panel de Listeners está vacío (aún no has creado ninguno)
  3. El panel de Sesiones está vacío (no hay agentes conectados)

Próximos pasos

  1. Crear un listener — Ve a Listeners para crear tu primer listener
  2. Generar un agente — Ve a Generación de agentes para compilar tu primer payload
  3. Ejecutar el agente — Despliega el agente en el sistema objetivo (en tu entorno de pruebas)
  4. Operar — Ve a Operaciones para aprender a interactuar con los agentes

Ejemplo completo: primera sesión

# Terminal 1: Servidor
cd dist/
bash ssl_gen.sh
./justserver

# Terminal 2: Cliente
cd dist/
./JustClient
# → Conectar al servidor
# → Crear listener BeaconHTTP en puerto 8443
# → Generar payload Beacon para Linux x64
# → Ejecutar payload en máquina de pruebas

# El agente aparecerá en la tabla de sesiones
# → Clic derecho → Interact → Se abre la consola del agente