Para algunos linux es el sistema operativo más seguro de todos, lamentablemente están equivocados, ya que no existe eso de : "Seguro".
"El único sistema seguro es aquél que está apagado en el interior de un bloque de hormigón protegido en una habitación sellada rodeada por guardias armados"
-- Gene Spafford
Y es incuestionable, por eso mismo en esta ocasión vamos a ver lo sencillo que es de acceder a un sistema linux mediante GRUB2, esto sí bien no es una vulnerabilidad lógica del sistema, sí es una vulnerabilidad física, ya que cualquiera que tenga acceso al servidor y sí el GRUB2 no está cifrado con una contraseña, nos veremos bastante comprometidos.
Es posible pasar un parámetro al kernel de linux que le indique cuál es
el programa que queremos ejecutar
apenas éste se termine de cargar (Por defecto, este
programa es : ‘/sbin/init’ < --- Esto puede
conseguirse
Seleccionando la opción de arranque del menú que queremos
editar y presionando la tecla “E”.
Eso nos abrirá
el editor, que nos va a permitir modificar cualquier
opción. Una vez realizadas las modificaciones, podemos
arrancar con las
combinaciones de teclas : “ctrl+x” (Gestor de arranque GRUB2)
Como podemos observar en la linea que
empieza con ‘linux’, al final de la misma
se está definiendo el
parámetro ‘init’ como ‘/bin/bash’, lo cuál va a generar
que al cargar el sistema, obtengamos acceso root.
y total control en el sistema operativo. ¿Sencillo no?
Es gravisimo, porque esto automáticamente nos otorga una shell ROOT lo que nos da un control total sobre el sistema.
Ahora veamos ... ¿Como se puede evitar este inconveniente?
PBKDF2 : Es un algoritmo, que nos permite generar una derivación de clave PBKDF2 de una contraseña proporcionada, la cual procesa nuestra contraseña con un algoritmo de hash (En este caso, SHA512) Y un valor salt, lo cual vuelve extremadamente difícil adivinar la contraseña por cualquier técnica de cracking conocida hasta el momento.
Entonces primero ejecutamos el comando : grub-mkpasswd-pbkdf2
Lo cual nos va a preguntar cual es la contraseña que queremos definir y, una vez hecho esto, nos va a mostrar una salida parecida a esta :
Your PBKDF2 isgrub.pbkdf2.sha512.10000.32B8E03C7A0806DD5D94966DCCBDA1A295B81A874AD0FA1CAC1A611BDA85E8760EDA7B59B42C03CCA64E50952B346F4AC48A9D75991F4932588DC27E97DDFADE.4CE988BAF33E69D8543510514114459B4B22D44B2255539DDA9C9832DE0106409CC5A0628C292BA1F18A01D4C90D3AEA25EBDA5A547C1F737A2D7B38DE19B093
Debemos
crear un archivo en el directorio de configuración de GRUB2 (‘/etc/grub.d’). Vamos a
llamarlo “01_password” (el nombre del archivo debe empezar con “01”, debido al orden en
el que necesita ejecutarse).
En
nuestro caso, el archivo creado sería: “/etc/grub.d/01_password”.
El contenido del archivo debe ser el siguiente:
#!/bin/bash
cat << EOF
set superusers="root“
password_pbkdf2 root grub.pbkdf2.sha512.10000.32B8E03C7A0806DD5D94966DCCBDA1A295B81A874AD0FA1CAC1A611BDA85E8760EDA7B59B42C03CCA64E50952B346F4AC48A9D75991F4932588DC27E97DDFADE.4CE988BAF33E69D8543510514114459B4B22D44B2255539DDA9C9832DE0106409CC5A0628C292BA1F18A01D4C90D3AEA25EBDA5A547C1F737A2D7B38DE19B093
EOF
Básicamente, el
archivo es un script que va a mostrar por pantalla las configuraciones
necesarias para habilitar la protección por
contraseña.
Luego, este archivo va a ser procesado, junto con los otros
archivos de configuración y
entre todos ellos, van a formar la configuración completa de GRUB2 (Parece
complejo, pero es una forma de
configuración modular y flexible).
Luego, debemos hacer que este archivo tenga permisos de ejecución, con el
siguiente comando:
‘chmod u+x /etc/grub.d/01_password’
Para actualizar la configuración de GRUB2 y que se apliquen los cambios que
acabamos de realizar, debemos
ejecutar el siguiente comando:
update-grub2
Una vez hecho esto y reiniciado el sistema, si queremos editar alguna entrada
se nos va a solicitar el usuario (root) y
la contraseña que asignamos, como se
muestra a continuación:
¡Y eso fue todo, saludos!
Muy buen aporte 😁
ResponderBorrar