Mostrando entradas con la etiqueta Grub. Mostrar todas las entradas
Mostrando entradas con la etiqueta Grub. Mostrar todas las entradas

Resetear contraseña de root con GRUB

Suele ocurrir. Ahorita me preparaba para hacer unas prácticas en una máquina virtual con Debian e intentar explotar unas vulnerabilidades en la versión del kernel instalada. Inicié VirtualBox, cargó todo corréctamente y tenía en frente mío el prompt de login, intenté loguearme como root pero me decía que los datos eran inválidos… no recordaba la contraseña. Me dispuse a resetearla.

La información que expongo a continuación no es el método de explotación de ninguna vulnerabilidad, ni tampoco ninguna técnica de hacking. Simplemente es la demostración de como haciendo uso de un parametro de GRUB podremos conseguir acceso como root a un determinado sistema para realizar las tareas que necesitemos (en este caso, resetear la contraseña del usuario root).

Después de intentarme loguear con 10mil contraseñas diferentes posibles y no tener éxito reinicié la máquina virtual, quedando frente a GRUB:

debian1r Resetear contraseña de root con GRUB

Si leemos todo, vemos que en la parte de abajo nos dice que para editar los comandos antes de bootear alguna entrada simplemente presionamos la tecla e. Lo hacemos y ahora vemos los parametros pasados para el booteo del sistema. Editemos los que contiene la línea kernel. La seleccionamos y de nuevo presionamos e. Al final de la línea agregamos:

init=/bin/bash

Nota: En algunos casos puede que no se encuentre disponible bash, simplemente reemplaza por la shell usada (por ejemplo: /bin/sh).

Presionamos ENTER y con esto quedará modificada la línea. Básicamente lo que hace el parametro init es indicarle a GRUB que archivo se debe ejecutar después de terminar de cargar el kernel, en este caso ejecutamos la shell (/bin/bash).

debian2 Resetear contraseña de root con GRUB

Presionamos la tecla b para que bootee el sistema. Recuerda que la modificación que hemos hecho aquí NO es permanente, si quieres hacer un cambio permanente debes modificar diréctamente el archivo /boot/grub/menu.lst. Después de terminar de cargar el kernel quedamos ante una shell con permisos de root:

debian3 Resetear contraseña de root con GRUB

Probablemente si intentamos modificar/crear algún archivo no podamos ya que no tenemos permisos de escritura. Debemos remontar la partición con permisos de lectura y escritura:

mount -n -o remount,rw /

Ahora tenemos dos opciones (en realidad muchas, pero con estas dos basta :) ):

  1. Cambiar la contraseña de root
  2. Eliminar la contraseña de root

1. Cambiar la contraseña de root

Para hacerlo, simplemente ejecutamos el comando passwd, escribimos la nueva contraseña y la verificamos:

debian5 Resetear contraseña de root con GRUB

2. Eliminar la contraseña de root

Bastaría con editar el archivo /etc/shadow y modificar la primera línea (root) eliminando el contenido de los primeros dos puntos y los segundos, por ejemplo:

debian6 Resetear contraseña de root con GRUB

La dejamos así:

debian7 Resetear contraseña de root con GRUB

Guardamos el archivo y reiniciamos (lo más probable es que toque reiniciar físicamente) el sistema. Ahora verifiquemos que todo haya quedado bien :P

debian8 Resetear contraseña de root con GRUB

¡Aleluya!

Al fin recuperamos el acceso a nuestra cuenta root :)

En un próximo artículo veremos como podemos protegernos de que este tipo de cosas sean realizadas sin nuestro consentimiento.

Fuente: http://www.dragonjar.org/resetear-contrasena-de-root-con-grub.xhtml

Configurar un grub "Seguro "

El objetivo de este post es aprender a configurar un grub de forma "segura" para evitar asi q un usuario no autorizado pueda modificar los valores en tiempo de ejecucion o ingresar al sistema.



Editamos el archivo de configuración del menú de arranque de GRUB (como root)
nano /boot/grub/menu.lst
Buscamos la siguiente línea:
#password topsecret
Descomentamos la linea es decir eliminamos el simbolo (#)
password topsecret

Guardamos y nos salimos del editor


Ahora la contraseña es topsecret, la podemos cambiar por la q deseemos.


Si queremos q ningun usuario lea nuestra contraseña en el archivo menu.lst tambien la podemos codificar en md5

grub update

Ahora ubicados en la consola del grub escribimos
grub> md5crypt

Introducimos la palabra que queremos q nos codifique el programa, este nos devolvera algo asi
$1$ddTCc1$8v3fWFR4m5kDfuRG5LUHo/'
Lo copiamos y nos salimos al terminal grub> quit

Ahora vamos al menu.lst y borramos la linea
# password topsecret'
La cambiamos por

password --md5 $1$ddTCc1$8v3fWFR4m5kDfuRG5LUHo/
Ya tenemos el grub con contraseña cifrada


Si queremos restringir el acceso en alguna entrada del grub solo es necesario introducir la linea de password como esta en el ejemplo.



title Debian 2.6.29
password --md5 $1$ddTCc1$8v3fWFR4m5kDfuRG5LUHo/
root (hd1,0)
kernel /boot/vmlinuz-2.6.29 root=/dev/hdb1 ro single
initrd /boot/initrd.img-2.6.29
boot

Fuente: http://comunidad.dragonjar.org/