Enumeración de Linux
Tras conseguir una shell en un host Linux (normalmente de bajo privilegio), el primer trabajo es entender dónde estás antes de intentar escalar. Quién eres, qué permisos tienes, qué corre, qué hay mal configurado y qué credenciales andan sueltas. Una enumeración ordenada revela el vector de escalada casi siempre; disparar exploits a ciegas es ruidoso e innecesario.
Qué responder, en orden
Sección titulada «Qué responder, en orden»¿quién soy y qué puedo? → ¿qué hay explotable local? → ¿a qué más llego (red/credenciales)?
Contexto del usuario
Sección titulada «Contexto del usuario»id ; whoami ; groups # usuario, UID/GID, grupos (¿docker? ¿sudo? ¿adm?)sudo -l # qué puedo ejecutar como root (¡clave! ver lin-sudo)cat /etc/passwd # usuarios del sistema (shells válidas)cat /etc/group # grupos (pertenencias interesantes)history ; cat ~/.bash_history # comandos previos (a veces credenciales)Grupos jugosos: sudo, wheel, docker (=root, ver Escape de contenedores y Docker), lxd, adm (logs), disk.
Sistema y kernel
Sección titulada «Sistema y kernel»uname -a # kernel y arquitectura (para kernel exploits, ver lin-kernel)cat /etc/os-release # distro y versiónhostname ; cat /etc/hostsCruza la versión del kernel con exploits conocidos (Dirty COW, Dirty Pipe, PwnKit…).
Procesos, servicios y cron
Sección titulada «Procesos, servicios y cron»ps aux --forest # procesos y como quién corren (¿root con binarios débiles?)ss -tulpn # puertos en escucha (servicios internos, pivoting)systemctl list-units --type=servicecat /etc/crontab ; ls -la /etc/cron.* # tareas (¿scripts escribibles? ver lin-cron)cat /etc/fstab # montajes (NFS, discos)Permisos y ficheros interesantes (vectores de privesc)
Sección titulada «Permisos y ficheros interesantes (vectores de privesc)»# binarios SUID/SGID (ver lin-suid)find / -perm -4000 -type f 2>/dev/nullfind / -perm -2000 -type f 2>/dev/null# capabilities (ver lin-caps)getcap -r / 2>/dev/null# ficheros/directorios escribibles por todosfind / -writable -type d 2>/dev/nullfind / -perm -o+w -type f 2>/dev/null# archivos de configuración con credencialesgrep -riE 'password|secret|api_key' /etc /var/www /opt 2>/dev/nullCredenciales sueltas (quick wins)
Sección titulada «Credenciales sueltas (quick wins)»cat ~/.ssh/id_rsa ~/.ssh/authorized_keys 2>/dev/null # claves SSHcat ~/.aws/credentials ~/.config/* 2>/dev/nullfind / -name "*.conf" -o -name "*.env" 2>/dev/null | xargs grep -l pass 2>/dev/nullcat /var/www/html/wp-config.php /var/www/*/config* 2>/dev/null # configs webmysql/psql history, .netrc, .git-credentialsRed y pivoting
Sección titulada «Red y pivoting»ip a ; ip route ; arp -a # interfaces, rutas, vecinos (¿otras subredes? ver net-pivot)ss -tulpn # servicios internos no expuestos fueraHerramientas automatizadas
Sección titulada «Herramientas automatizadas»linpeas.sh # el enumerador todo-en-uno de referencia (lo marca todo en colores)LinEnum.sh / linux-smart-enumeration (lse.sh)pspy # espiar procesos/cron sin ser root (ver procesos que lanza root)linpeas es casi obligatorio: automatiza todo lo anterior y resalta los vectores probables. pspy es oro para ver tareas cron/procesos de root sin privilegios.
Para la defensa
Sección titulada «Para la defensa»Reducir la enumerabilidad y los vectores: mínimo privilegio (sin SUID/sudo innecesarios), sin credenciales en ficheros/configs (usar secretos gestionados), permisos estrictos, logging de ejecución (auditd), kernel y paquetes al día, y EDR que detecte la ejecución de linpeas/pspy y cadenas de recon post-explotación.
Checklist de prueba
Sección titulada «Checklist de prueba»-
id,sudo -l, grupos (docker/lxd/sudo/adm) - Kernel y distro → mapear kernel exploits (Exploits de kernel en Linux)
- SUID/SGID y capabilities (Binarios SUID/SGID, Linux capabilities)
- Cron y servicios con scripts/binarios escribibles (Cron jobs y timers)
- Ficheros/directorios escribibles por todos
- Credenciales en configs, historiales, claves SSH/AWS
- Red: otras subredes alcanzables (pivoting)
- Correr linpeas + pspy para no dejarse nada