Cuando darle sudo a nano te convierte en root 🧨
Hoy quiero compartir un ejemplo real de cómo un mal diseño en la configuración de sudo puede llevar a una escalada completa a root en un sistema Linux.
🔍 Escenario:
Un usuario no privilegiado (joanna) puede ejecutar lo siguiente sin contraseña:
sudo /bin/nano /opt/priv
A simple vista, parece inofensivo: solo puede editar un archivo vacío que pertenece a root… ¿Qué podría salir mal?
💡 Truco #1 – Leer archivos como root desde nano
Desde nano, puedes pulsar Ctrl + R y luego Ctrl + T para abrir el navegador de archivos. Desde ahí puedes cargar cualquier archivo del sistema, como:
/root/root.txt /root/.ssh/id_rsa /etc/shadow
Y copiar su contenido directamente en /opt/priv o simplemente leerlo en pantalla.
💡 Truco #2 – Escalada con permisos SUID
Incluso puedes modificar archivos si sabes moverte un poco. En este caso:
Ctrl + R Ctrl + X
Esto te permite ejecutar comandos dentro del entorno de nano. Por ejemplo, puedes hacer:
chmod u+s /bin/bash
Y voilà:
$ ls -la /bin/bash -rwsr-xr-x 1 root root ... /bin/bash $ bash -p # whoami root
🚫 ¿Qué salió mal aquí?
Permitir sudo sobre editores de texto como nano, vi o incluso less da al usuario una shell interactiva con demasiado poder, desde la cual puede escapar, ejecutar comandos o leer archivos arbitrarios del sistema.
✅ Buenas prácticas:
-
Nunca des acceso
sudoa editores interactivos. -
Si tienes que permitir edición de archivos, usa herramientas limitadas como
visudoo scripts consudoedit. -
Revisa frecuentemente tu archivo
/etc/sudoersy las configuraciones desudo.
🔐 Seguridad no es solo aplicar parches. También es pensar en cómo se usan las herramientas básicas.
