Escalación De Privilegios Con El Fichero Passwd

Escalación De Privilegios Con El Fichero Passwd

Cuando se compromete una máquina, ya sea en un CTF, en plataformas de hacking como HackTheBox, TryHackme, etc, o sencillamente en una auditoria a una empresa, usualmente vas a obtener un primer acceso como usuario y deberás escalar privilegios, para esto existen muchas posibilidades, desde buscar ficheros SUID, ver los cronjobs, ver que comandos se pueden ejecutar como sudo, reutilización de contraseñas, entre otras muchas.

Hoy veremos una forma de ellas que es muy sencilla, se trata de aprovecharnos del fichero passwd ubicado en /etc si se llegase a dar el caso de que tuviésemos permisos de escritura en él con el usuario con el que hemos obtenido acceso el sistema.

En este fichero es donde se registran los usuarios del sistema y se ve algo así:

Tiene distintos valores separados por dos puntos, la sintaxis es así:

(usuario):: (contraseña) :: (uid) :: (gid) :: (directorio) :: (shell)

Si te fijas, en el segundo valor debería de salir la contraseña del usuario, pero sale una “x” esto se debe a que antiguamente en Linux si se guardaba la contraseña en el fichero passwd, pero ahora ya no, ahora se guardan en el fichero shadow que está en /etc al que, normalmente un usuario sin privilegios no debería tener acceso y si se tiene se podría hacer una labor de cracking de contraseñas pero eso es otro tema:

Ahora bien, suponiendo que, en la máquina que hemos comprometido tenemos permisos de escritura en el fichero /etc/passwd:

Podemos aprovecharnos de esto para escalar privilegios. Como viste, en el fichero passwd tenemos de primero al usuario root y nos pone en el campo de la contraseña una “x”, pero si esa “x” la quitamos y en su lugar ponemos un hash correspondiente a una contraseña y guardamos los cambios, podremos acceder como root con esa contraseña.

Primero, lo que hay que hacer es convertir una contraseña, la que sea, en un formato entendible para el fichero passwd, para ello usa:

openssl passwd

Luego de eso, te pedirá que escribas la contraseña en cuestión, escribela y confirmala, al hacerlo obtendrás el hash:

Luego, copia y pega ese hash sustituyendo la “x” en la línea del usuario root:

Guarda los cambios y ahora solo cambia de usuario a root, usa por ejemplo “su root” y escribe la contraseña que pusiste:

Y listo.

Solución a la vulnerabilidad:

Lo primero es intentar tener al máximo las mejores medidas de seguridad posibles para evitar que alguien acceda a tu sistema, eso lo más importante, pero si pasa, para evitar que escalen privilegios de esta forma, lo mejor es restringir los permisos de la siguiente forma (hazlo con el usuario root):

 chmod 644 /etc/passwd

Con este comando estás haciendo que solo el usuario propietario del archivo pueda leerlo y escribirlo y que su grupo y los otros solamente puedan leerlo pero no escribir en él. De manera que si hacemos un (ls -l) al archivo, podemos ver se aplican los permisos y que si intentamos abrirlo por ejemplo con nano, escribir algo e intentar guardar esa modificación no nos dejará.

Una buena página para calcular permisos para el comando chmod es: https://chmod-calculator.com/

ATENCIÓN. Todas las prácticas que se vieron anteriormente han sido realizadas en entornos controlados y con debida autorización para ello, hacer uso de alguna herramienta, técnica o procedimiento que se vió anteriormente sobre un sistema, aplicación, servicio u otro activo sin una autorización para ello puede llevar a cometer delitos graves, no nos hacemos responsables por el uso que le des al conocimiento que viste anteriormente. Por favor, sé ético.

Anuncio

Sobre el Autor

Martin Frias

Founder of Coldd Security

REDES SOCIALES

Newsletter

Estadísticas

  • 106.291
  • 51

TheHackerSnow

0

Share This