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
sudo
a editores interactivos. -
Si tienes que permitir edición de archivos, usa herramientas limitadas como
visudo
o scripts consudoedit
. -
Revisa frecuentemente tu archivo
/etc/sudoers
y las configuraciones desudo
.
🔐 Seguridad no es solo aplicar parches. También es pensar en cómo se usan las herramientas básicas.