Seguramente todo el mundo ha escuchado alguna vez que linux es un entorno muy seguro, y estoy de acuerdo relativamente. Es seguro siempre y cuando lo configuremos para que lo sea. Algunos administradores de sistemas solo centran sus esfuerzos en securizar linux en el entorno de redes, olvidando securizar la consola de acceso directo del servidor. En este artículo veremos como se puede arrancar linux con permisos de root sin conocer la contraseña y lo más importante como securizarlo.

Iniciar linux con permisos de root sin conocer la contraseña:

Este procedimiento sólo sirve para acceder a la consola de linux en un servidor físico sin utilizar ningún tipo de CDROM o USB autoarrancable. Si un atacante tuviera acceso a un medio auto arrancable también podría acceder a los archivos como root sin conocer la contraseña ya que estaría ejecutando su propio sistema operativo.

1. Iniciamos o reiniciamos de botonazo el linux al que queremos acceder. Veremos la pantalla del cargador grub2. (la primera versión de grub no la contemplo en este articulo, pero también registra el mismo problema).

root sin conocer la contraseña grub2

2. En la pantalla de grub2 pulsa la letra E.

root sin conocer la contraseña modificando grub2

3. Ahora aparecen los parámetros de arranque de grub. Aquí tenemos que reemplazar ro quiet por rw single init=/bin/sh tal y como se muestra en la imagen de abajo. Cuidado porque el teclado está desconfigurado y las teclas no están donde corresponden.

root sin conocer la contraseña grub2 modificado

4. Hechos los cambios pulsa Ctrl-x o F10. Como puedes ver la linea de comandos ha cambiado con el símbolo de la # que es la que tiene el usuario root. ¡Ya hemos accedido como root sin conocer la contraseña!

root sin conocer la contraseña

5. Como esta consola está muy limitada, un atacante podría cambiarle la contraseña al usuario root y reiniciar el sistema para tener un acceso completo al servidor desde consola.

root sin conocer la contraseña cambiando password root

6. Para reiniciar desde esta consola hay que ejecutar reboot -f. Si pruebas con init 6 o el comando shutdown -r now verás que no funcionan.

7. El sistema arranca de manera normal. Accede con las credenciales que hayas especificado y ya eres dueño y señor de todo el servidor!!

¿Cómo proteger grub2 de un arranque no autorizado?

Para proteger el acceso a grub y grub2 de accesos no autorizados hay que protegerlos por contraseña. En este artículo me centro solo en grub2 por ser usado en los entornos más modernos. La contraseña puede ser en texto plano o cifrada (sólo explico el método cifrado) y el usuario que la usa no tiene porque ser del sistema. Comencemos:

1. Iniciamos sesión de consola o consola remota.

2. Ejecutamos

3. Nos pregunta por un contraseña. Escríbela dos veces hasta que genere el hash que usaremos para la contraseña.

root sin conocer la contraseña hash contraseña grub2

4. Para proteger el acceso a la consola grub2 tienes que editar el fichero de configuración, pero antes copia el hash que acabas de generar.

5. Edita el fichero añadiendo:

root sin conocer la contraseña - securizando grub2

6. Para guardar los cambios ejecuta:

7. Reinicia el sistema con init 6 y comprueba apretando la letra E que cuando aparezca el menú grub2, para entrar, tendrás que introducir el usuario y contraseña. Tienes que poner la que has generado en el paso 2 de esta guía.

root sin conocer la contraseña - grub2 securizado

8. Una vez accedas, verás que los cambios que realizaste al principio de todo no son permanentes. Vuelven al estado original cada vez que reinicias el equipo.

root sin conocer la contraseña - parametros grub2

Esto es todo. ¿A que espera para securizar tus equipos linux?

Sigue visitando el blog o bien suscribe-te a la newsletter para no perderte ningún artículo.

¡Hasta el próximo artículo!

escrito por Javier Peral