Entries (RSS)
Jul 5

Resetear contraseña de root con GRUB Publicada por Cortex en COMOs, GNU/Linux .


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.

Enlaces

Envíale este Articulo a Tus Amigos

14 Responses to “Resetear contraseña de root con GRUB”

  1. 1
    lucho Says:

    yo conozco otro método, al editar la linea del kernel hay que escirbir “init 1″ con ello quedamos logueados como root y podemos cambiar la contraseña del mismo modo.

  2. 2
    Cortex Says:

    @LUCHO: No funciona… además si funcionara sería como el mismo proceso :P Probé en un Debian Sarge 3.1 (Sí, demasiado vieja XD) y no funciono :(

  3. 3
    Eduardo Greenx Says:

    Mas facil que hacer todo eso, seria hacer un CHROOT a la particion,

    1. Reinicias el sistema con un live-cd

    2. mount /dev/hdaX /mnt/disco

    3. chroot /mnt/disco

    4. Una vez dentro cambias el passwor y ya.

    Es mas facil, mas rapido y no tocas ni archivos ni configuraciones, algo que siempre da un poco de riesgo!.

  4. 4
    Cortex Says:

    @EDUARDO: No me parece que sea más rápido… nunca será más rápido esperar que cargue un Live-CD. El artículo se vé un poco largo, pero en realidad serían 3 comandos y ya, nada más.

    Saludos!

  5. 5
    Jvare Says:

    La línea de grub también se puede finalizar con:
    rw init=/bin/bash
    Tal como indican en el siguiente vídeo:
    http://www.youtube.com/watch?v=hE4HNDSis7A

  6. 6
    lucho Says:

    @CORTEX: mil disculpas, lo que había que escribir era “single” en grub, y “linux 1″ o “linux single” en LILO

  7. 7
    Cortex Says:

    @LUCHO: Así sí, con single es como si iniciaras el “modo a prueba de fallos de Windows”, pero en Linux :D Gracias por el apunte!

    @JVARE: Así es… así también funciona, ya probé. Gracias por la aclaración! ;)

    Saludos!

  8. 8
    Eduardo Greenx Says:

    @Cortex

    Nunca has probado un small linux? cierto?….

  9. 9
    p51kh0 Says:

    PWD en segundo modo o estado de CLI.

  10. 10
    Cortex Says:

    @EDUARDO: Sí, sí la he usado. La cosa es que así sea un Damn Small Linux, SÍ SE DEMORA MÁS EN CARGAR que realizando la forma que yo expuse. Además, no siempre se cuenta con esa distribución a la mano, o ni siquiera con algún medio booteable (puede que nisiquiera haya Unidad CD-ROM).

    Hay muchos métodos para realizar eso, demasiados, sólamente estaba mostrando uno de los tantos y de los más sencillos. No es necesario llenar el post enumerando los métodos que conocen ;)

    Saludos!

  11. 11
    JiRuSoNu Says:

    Para este caso es fácil ya que todos los directorios están instalados en una misma partición y el grub no esta protegido, pero en la vida real cada directorio esta asignado a una partición diferente, así que en este caso tocaría empezar a montar una por una hasta de demos con el directorio /etc, es un poco mas complicado pero no imposible….En la vida real por lo general el grub esta protegido con contraseña así que esta practica solo seria posible aplicarla a algunos equipos de escritorio……..aunque fallas como estas se han visto en servidores reales …..

    Buen tuto……

    Ciaooooo!!!!! =0)

  12. 12
    Nork_MG Says:

    Excelente Cortex … como siempre con material de excelente calidad …. me sirvio para no tener que formatiar un robot de año de la pera … el cual probablemente me ubiera dado serios problemas con hw ….

    graciela ….

  13. 13
    Boletín de La Comunidad DragonJAR #0001 | La Comunidad DragonJAR Says:

    [...] Resetear contraseña de root con GRUB [...]

  14. 14
    Resetear Password de Root Says:

    [...] nuestra comunidad ya hemos visto como resetear contraseña de root utilizando GRUB, también hemos visto como evitar que otras personas cambien tu contraseña por este medio, pero [...]

Leave a Reply