Recuperar tu contraseña de linux desde Docker

Programación 30 de jul. de 2020

Hay varias formas de recuperar una contraseña de Linux, reiniciando en modo rescate por ejemplo, pero existe una forma muy curiosa usando Docker.

Aquí os dejo una receta para hacerlo.

Requisitos:

  • Tener instalado Docker
  • Acceso por SSH con tu cable pública en el fichero authorized_keys

Encuentra la IP del Host

Lo primero que debemos hacer es entrar en la shell de nuestro contenedor Docker y averiguar la IP del host.

Para ello podemos usar nmap para escanear nuestra red local y encontrar la IP.

Por ejemplo:

nmap -sP 192.168.0.0/24

Como reseteamos la contraseña

Lo interesante es que no es necesario conocer la contraseña de root de antemano, tan solo nos vale con tener la clave SSH copiada en nuestra máquina remota.

Para copiar la cable SSH pública en un ordenador remoto, tenemos que usar el comando ssh-copy-id. Este comando añadirá nuestro fichero $HOME/.ssh/id_rsa.pub en el fichero $HOME/.ssh/authorized_keys de la máquina remota. Para ello lo usamos de la siguiente forma:

ssh-copy-id user@remote-host

Ahora arrancamos un container Docker de Ubuntu que usaremos para cambiar la clave de root.

docker run -v /etc/:/etc/ -ti ubuntu

  • --v /etc/:/etc/ - Con esto montamos el fichero passwd en nuestro contenedor

Y por ultimo entramos en la shell de nuestro contenedor y cambiamos la contraseña:

$ passwd user
Changing password for user
New password:
Retype password:
passwd: password for user changed by root