← Blog

Tmux — Multiplexor de Terminal para Operaciones

Multiplexor de terminal: configuración ~/.tmux.conf, atajos de ventanas/panes, sesiones persistentes, modo copia/scrollback y logging para operaciones largas.

1. Operational Scope & Technical Objective

tmux mantiene sesiones de terminal persistentes en segundo plano: desconectarse (pérdida de la shell, cierre de la laptop) no mata los procesos, y volver a conectar restaura el estado exacto. En un engagement largo es el soporte de las tareas que no pueden morir: listeners de shells reversas, fuerza bruta, túneles SSH y envíos de datos — todo queda en una sesión que se puede reorganizar en ventanas/panes y registrar a fichero. El config ~/.tmux.conf fija el historial, el modo de búsqueda vi y el logging automático.

2. High-Impact Syntax & Command Cheatsheet

Configuración ~/.tmux.conf

set -g history-limit 50000          # líneas de scrollback por pane
set -g allow-rename off            # no renombrar la ventana si tiene nombre estático
set-window-option -g mode-keys vi  # búsqueda/copia en modo vi (default es emacs)
run-shell /opt/tmux-logging/logging.tmux   # plugin: logging y screen-capture por prefix

Teclas

  • ctrl + b: prefix key (por defecto)
  • prefix + ?: lista de todos los atajos
  • prefix + c: nueva ventana
  • prefix + ,: renombrar ventana
  • prefix + 0..N: ir a la ventana X
  • prefix + [: entrar en modo copia/scrollback
    • spacebar inicia selección en modo copia
    • prefix + ]: pegar la selección
  • prefix + alt + shift + p: guardar a un fichero de log
  • prefix + t: mostrar hora

Ventanas y panes

  • prefix + %: división vertical
  • prefix + ": división horizontal
  • prefix + : cambiar orientación horizontal/vertical
  • prefix + { / }: mover pane a la izquierda / derecha
  • prefix + flechas: cambiar el tamaño del pane

Comandos de sesión

tmux new -s $SESSION_NAME        # crear sesión con nombre
tmux ls                          # listar sesiones activas
tmux attach -t $SESSION_NAME     # re-adjuntar a una sesión

Tricks

# Fusionar dos ventanas en panes de una misma ventana
join-pane -s 1 -t :0
#   -s 1  -> sesión/ventana origen (p. ej. la 1)
#   -t :0 -> destino (ventana 0 de la sesión actual)

3. Real-World Offensive/Defensive Scenarios

Listeners que sobreviven a la desconexión. Un nc -lvnp 4444 o un ssh -R dentro de un pane de tmux no muere al cerrar la terminal: tmux attach lo devuelve intacto horas después. Es el patrón para mantener el canal C2 o el puerto de transferencia abierto mientras se pivota.

Organización de una operación en panes. Un pane con el listener, otro con la fuerza bruta (hydra), otro con el análisis de capturas y otro con los apuntes: join-pane fusiona ventanas sueltas y la navegación por prefix evita cambiar de contexto. El scrollback de 50000 líneas conserva toda la salida para el reporte posterior.

Logging como evidencia. Con el plugin logging.tmux, prefix + alt + shift + p vuelca la salida de la sesión a fichero: la traza completa (comandos, respuestas, timestamps) es directamente reutilizable como evidencia o como material del informe.

Defensa. En Blue Team, tmux permite mantener en marcha largas monitorizaciones (capturas continuas, colas de análisis) sin depender de una sesión gráfica; el historial amplio (history-limit 50000) preserva contexto cuando se investiga un incidente en vivo.