Descifrando datos operativos
Descifrando datos operativos
Blue Team — Protocolo de Defensa // 04
De usuario normal a root en Linux
La escalación de privilegios explota misconfiguraciones — no vulnerabilidades de día cero. La defensa es auditoría continua y principio de mínimo privilegio.
¿Por qué importa?
Un atacante con acceso limitado puede convertirlo en root total si el sistema tiene un solo binario SUID mal configurado o un sudoers permisivo. La diferencia entre contener una brecha y perder el servidor completo está en estos detalles.
Genera una lista de binarios SUID legítimos y alerta cuando aparezcan nuevos.
# Genera la lista base:
find / -perm -u=s -type f 2>/dev/null > /etc/security/suid_baseline.txt
# Compara periódicamente:
find / -perm -u=s -type f 2>/dev/null > /tmp/suid_actual.txt
diff /etc/security/suid_baseline.txt /tmp/suid_actual.txt
# Elimina SUID de binarios que no lo necesitan:
chmod u-s /usr/bin/nmap
chmod u-s /usr/bin/vimnmap, vim, python, perl, find — ninguno necesita el bit SUID en producción.
El sudoers debe dar solo los permisos exactos necesarios — nunca (ALL) ALL a usuarios normales.
# Edita sudoers de forma segura:
visudo
# MAL:
# msfadmin ALL=(ALL) ALL
# BIEN — solo el comando específico:
# deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
# Verifica:
sudo -l -U usuarioauditd registra llamadas críticas — ejecuciones de sudo, cambios de privilegio, acceso a archivos sensibles.
# Instala auditd:
apt install auditd
# /etc/audit/rules.d/privesc.rules
-a always,exit -F arch=b64 -S execve -F euid=0 -k root_commands
-w /etc/sudoers -p wa -k sudoers_changes
-w /etc/passwd -p wa -k passwd_changes
systemctl restart auditd
ausearch -k root_commands | tail -20// Indicadores que deberías monitorear para detectar esta técnica en acción.
Ejecución de sudo por un usuario que normalmente no lo usa
Nuevo binario con bit SUID detectado fuera de la baseline
Acceso a /etc/shadow por usuarios sin privilegios
Ejecución de herramientas como linpeas.sh o linenum.sh
Cambios en /etc/sudoers o /etc/cron.d inesperados