Recuperar tu contraseña de linux desde Docker
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