Skip to content
SecForge
Ilustración principal de: Fundamentos de Linux para seguridad.
NIVEL 2 CIBERSEGURIDAD

Fundamentos de Linux para seguridad, el subconjunto que de verdad usas.

Los 25 comandos que teclearás cada día, los cinco que teclearás con prisas y los permisos de archivo que deciden quién manda en la máquina.

13 min de lectura SecForge Research

La mayoría del material de «introducción a Linux» te enseña Linux como sistema Unix. Nosotros vamos a enseñarte Linux como estación de trabajo de seguridad: lo que de verdad haces frente al teclado durante el reconocimiento, el triaje y la post-explotación.

La shell, en un párrafo

La shell es un programa que lee una línea, la ejecuta e imprime la salida. Tres caracteres especiales hacen casi todo el trabajo: | envía la salida a otro programa, > la envía a un archivo y && encadena dos comandos de forma que el segundo solo se ejecuta si el primero tiene éxito. A partir de ahí puedes construir cualquier cosa.

Los 25 comandos

Si sabes usar estos sin pensar, puedes leer el 80 % de los flujos de trabajo de seguridad del mundo real.

ComandoQué hacePara qué se usa
ls -laListar archivos con detalleReconocimiento, auditoría de permisos
cd / pwdMoverse / dónde estoySiempre
cat / lessLeer un archivoConfiguraciones, logs
grep -rBuscar texto de forma recursivaEncontrar secretos, errores
findBuscar por nombre / tamaño / fechaLocalizar archivos soltados
chmod / chownCambiar permisos / propietarioFortificación, movimiento lateral
ps -efListar procesosQué se está ejecutando
top / htopVista de procesos en vivoTriaje
netstat -tulpnPuertos abiertos + procesoQué está escuchando
ss -tulpnReemplazo modernoLo mismo
curl -vHTTP desde la CLIPruebas de API
wgetDescargar archivosTraer herramientas
ssh / scpShell remota / copiaMovimiento lateral
tarEmpaquetar / desempaquetar archivosExfiltración, despliegue
systemctlControl de serviciosPersistencia, auditoría
journalctlLeer logs de systemdTriaje
tail -fSeguir un logMonitorización en vivo
historyQué se tecleóAnálisis forense
sudoEjecutar como rootUso / auditoría de privilegios
id / whoamiQuién soy, en qué grupos estoyReconocimiento sobre ti mismo
uname -aInformación del kernelSelección de exploits
iptables -LReglas del firewallMapeo de salida
dig / hostConsulta DNSReconocimiento
scp / rsyncMover archivos de forma fiableCopias de seguridad, exfiltración
tmux / screenSesiones persistentesTrabajos largos

Permisos en cinco minutos

Cada archivo tiene tres tripletes de permisos: propietario, grupo y todos. Cada triplete tiene tres bits: lectura, escritura y ejecución.

$ ls -l /etc/shadow
-rw-r----- 1 root shadow 1832 May  6 14:01 /etc/shadow
   ^ propietario=root  grupo=shadow
   rw- = lectura+escritura para el propietario
   r-- = lectura para el grupo shadow
   --- = sin acceso para todos los demás

Forma numérica: cada triplete es un dígito de 0 a 7. chmod 750 file significa propietario=rwx, grupo=r-x, mundo=nada. Los números son lectura=4, escritura=2, ejecución=1.

SUID, la única nota al pie que importa

Un archivo con el bit SUID activado se ejecuta como su propietario, no como tú. find / -perm -4000 -type f 2>/dev/null los lista todos. En una máquina comprometida, este es el primer sitio donde miras.

Los cinco comandos «con prisas»

Cuando la alerta acaba de saltar y el ingeniero sénior está en una reunión, estos son los que echas mano.

  1. last -a | head -20 — quién ha iniciado sesión hace poco y desde dónde.
  2. w — quién está en la máquina ahora mismo y qué está ejecutando.
  3. ss -tunap — sockets activos y el proceso detrás de cada uno.
  4. ls -lat /tmp /var/tmp /dev/shm | head — archivos recientes en los vertederos habituales.
  5. journalctl --since "1 hour ago" -p warning — avisos recientes en el log del sistema.

Tuberías: la jugada que duplica tu vocabulario efectivo

Dos comandos que ya conoces se pueden combinar en un tercero. Algunos ejemplos que merece la pena memorizar:

# Los 10 procesos que más memoria RSS consumen
ps -eo pid,rss,cmd --sort=-rss | head -11

# Encontrar todos los archivos escribibles por cualquiera bajo /etc
find /etc -type f -perm -o=w 2>/dev/null

# Inicios de sesión SSH fallidos recientes, agrupados por IP de origen
journalctl -u ssh | grep "Failed" | awk '{print $NF}' | sort | uniq -c | sort -rn

Memorizarlos no es lo importante. Lo importante es interiorizar la forma: listarfiltraragruparcontar. Una vez que la ves, escribirás las tuyas propias.