viernes, 12 de enero de 2018

Acceder mediante una dork al archivo /etc/shadow y descifrar las contraseñas

En sistemas Linux, las passwords de todos los usuarios se almacenan en el documento /etc/shadow. Acceder a ese archivo podría resultar realmente peligroso pues, además de conocer los usuarios existentes en un sistema{que no es poco}, se podría conocer su password, lo que lo hace potencialmente peligroso.



Como parece algo tan peligroso, parece lógico que dejarlo por ahí a la vista de todos y todas, sería algo que sólo se le ocurriría a una cabeza alocada. Pues bueno, esto les ocurre a muchos administradores de sistemas.



La dork es bastante sencilla y podremos conseguir 72 resultados. No todos los resultados arrojan una lista con los usuarios y sus contraseñas, pero sí que hay algunos que muestran información muy interesante.


Hay algún que otro sitio web que muestra esta información de usuarios y contraseñas, y aquí viene la segunda parte que se debería realizar una vez que obtenemos esta información, y es que si nos fijamos en el usuario root, la línea que nos sale es

root:$1$XPo5vyFS$iJPfS62vFNO09QUIUknpm.:14360:0:99999:7:::

No obstante,la parte con la que nos vamos a quedar va a ser root:$1$XPo5vyFS$iJPfS62vFNO09QUIUknpm. La primera parte hace referencia al usuario, root en este caso. En esta linea el limitador es :, es decir, que los dos puntos separan el usuario de la contraseña. Sabiendo esto, vemos que la contraseña tiene una forma un poco extraña.

La contraseña está cifrada y con un salt, algo que ya os comenté en la entrada Fucking to your bullshit code y que hace unos días comenté por qué sería recomendable usarlo en entornos como unas elecciones. Así pues, tenemos la siguiente contraseña shadow hasheada con una salt.

$1$XPo5vyFS$iJPfS62vFNO09QUIUknpm.

Si destripamos cada parte de la contraseña, tendremos lo siguiente:

  • $1$ nos dice que tenemos en frente un cifrado en MD5.
  • XPo5vyFS. Es el SALT que se usa para generar el hash MD5.
  • iJPfS62vFNO09QUIUknpm. Es el hash salteado de la contraseña.
Conocer bien esto es importante para tratar de realizar el proceso inverso, ya que si sabemos cómo se genera el hash salteado, podremos disponer una lista con posibles contraseñas, realizarle el hash salteado a cada palabra y compararlas con la contraseña hasheada que sacamos del documento /etc/shadow y si coinciden, que nos diga qué palabra es la que coincide y conoceremos ya la contraseña.



Esto lo podemos hacer con John The Ripper que ya viene por defecto en Kali Linux o con un script en shell script que nos creemos. Yo lo he probado con un script en shellscript que me he creado, pero ya aviso que tarda mucho tiempo a pesar de tener un documento llamado wordlist con varias contraseñas, entre ellas una que yo mismo hasheé. Yo lo dejé toda la noche y se tiró más de 2 horas.

Como veis es relativamente sencillo poder obtener la contraseña de un usuario en sistemas Linux. Esto puede ser muy interesante en entornos de post-explotación como en el caso del Hackeo a Trinitarios en los que enviamos el shellcode por carpeta compartida en red, aunque si la empresa en cuestión tuviese un FTP montado en un Linux, esta forma de obtener contraseñas es algo ideal para entrar como administrador al FTP o incluso como admin al servidor web.

¿Hackeamos el Mundo?



No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...