Páginas

Cómo Hackear y Proteger GRUB en Linux: Bypass de Root y Medidas de Seguridad

Cómo Saltarse la Contraseña de Root en Linux Usando GRUB y Cómo Protegerse

📌 En este artículo, exploraremos una vulnerabilidad en el arranque de Linux que permite omitir la contraseña de root a través de GRUB y cómo solucionarla con medidas de seguridad efectivas.


🛑 Advertencia

Este artículo es solo para fines educativos y de seguridad ofensiva. No intentes acceder sin permiso a sistemas que no sean de tu propiedad.


🔍 Parte 1: Cómo hacer el bypass de GRUB para obtener acceso root?

💡 GRUB (Grand Unified Bootloader) es el gestor de arranque más usado en Linux. Si un atacante tiene acceso físico a la máquina, puede modificar GRUB y arrancar en un shell como root sin necesidad de autenticación.


🔥 Paso 1: Acceder a GRUB

  1. Reinicia la máquina.
  2. Cuando aparezca el menú de GRUB (imagen), presiona la tecla E para editar las opciones de arranque.











🔥 Paso 2: Modificar los parámetros de arranque

  1. Busca la línea que inicia con linux, que puede verse así:
    linux /boot/vmlinuz-6.12.13-amd64 root=UUID=07eb3124-b0e8-4834-96bf-5419ec51f12 ro quiet splash













  1. Añade init=/bin/bash al final de la línea, quitando splash, dejando algo como:
    linux /boot/vmlinuz-6.12.13-amd64 root=UUID=07eb3124-b0e8-4834-96bf-5419ec51f12 ro quiet init=/bin/bash














🔥 Paso 3: Arrancar en el shell de root

  1. Presiona Ctrl + X o F10 para arrancar con la nueva configuración.
  2. Ahora deberías tener una shell de root sin necesidad de contraseña.





🔥 Paso 4: Resetear la contraseña de root

  1. Monta el sistema en modo escritura:
    mount -o remount rw /
  2. Cambia la contraseña de root con:
    passwd root
  3. Reinicia la máquina:
    reboot -f

💥 Ahora puedes acceder con cuenta root a la nueva contraseña sin problemas.


🛡️ Parte 2: Cómo protegernos de este bypass?

Para evitar este bypass, hay varias opciones:

1️⃣ Configurar una contraseña en GRUB

Esto evita que cualquiera pueda modificar las opciones de arranque.

Paso 1: Generar una contraseña para GRUB

Ejecuta:
grub-mkpasswd-pbkdf2








Introduce una contraseña segura y copia el hash generado.


Paso 2: Configurar GRUB

  1. Edita el archivo de configuración como super usuario:
    sudo nano /etc/grub.d/40_custom
  2. Agrega lo siguiente en la linea final:
    set superusers="admin"
    password_pbkdf2 admin grub.pbkdf2.sha512.10000.ABCDEF1234XYZ...
    (Sustituye ABCDEF1234XYZ... por tu hash generado).














  1. Guarda y actualiza GRUB como sudo con:
    sudo update-grub



🔐 Ahora, GRUB pedirá usuario y contraseña antes de permitir modificaciones.


Otras opciones:

Para añadir seguridad, se podría cifrar el disco o activar el secure mode en la bios, pero estas opciones me parecen mas avanzadas por lo que las veremos en otro blog.


2 comentarios:

  1. Muy buena documentacion lo hice en casa y funciona. ¿Se puede hacer en cualquier tipo de linux o solo en kali?

    ResponderEliminar
    Respuestas
    1. ¡Gracias por tu comentario! Sí, este método funciona en cualquier distribución de Linux que utilice GRUB como gestor de arranque, no únicamente en Kali. La diferencia está en que Kali incluye GRUB por defecto, pero distribuciones populares como Ubuntu, Debian, Fedora, CentOS, entre otras, también lo utilizan y este método sería igualmente efectivo en ellas.

      Eliminar

De infraestructura on-premises a arquitectura híbrida en AWS: mi primer proyecto completo

En este proyecto personal he simulado una migración completa desde una infraestructura local (on-premises) hacia una arquitectura híbrida ...