Ingeniería inversa

Averiguando la contraseña de un zip – fcrackzip

La entrada de hoy es todo un clásico, pero la hago ya que un profesor de mi facultad usa un método para entregar los trabajos algo pecualiar, consiste en compartir un zip con el trabajo a través de una plataforma con la condición de que lleve de password el DNI del autor, para que nadie pueda acceder a sus datos ni a su trabajo… ¿el DNI? Sí, y sin incluir letra. Vamos a comprobar cuantos segundos se puede tardar en crackear y obtener el trabajo de cualquier compañero.

Podríamos usar cantidad de programas, y distitos sistemas operativos, pero en este caso yo usaré kali (para variar…) y concretamente un programa de los que ya nos trae kali de casa, fcrackzip. Pondría la web del autor (Marc Lehmann) pero lleva ya un tiempo offline, así que dejaré por aquí en link para windows y para linux.

Si consultamos la ayuda del programa esto es lo que nos encontramos:

Imagen

Ahí tenemos la lista de comandos y opciones que podemos utilizar para crackear nuestro zip. Vamos a expicarlas un poco:

  • -b: brute force, para utilizar brute force para crackear la contraseña, es decir, probar con contraseñas hasta acertar la correcta.
  • -D: usar un diccionario, es decir, en vez de dejar que el programa genere cadenas y las pruebe (a partir de los parámetros que le hemos dados), seremos nosotros los que indiquemos la lista de palabras a probar desde un archivo de texto.
  • -B: Hacer un pequeño punto de diferencia, según he leído la diferencia es muy pequeña, así que tampoco le veo mucha utilidad a este comando.
  • -c: Establecer los carácteres a utilizar, a continuación ponemos «a» para incluir los caracteres [a-z], «1» para [0-9], «A» para [A-Z], «!» para [!:$%&/()=?[]+*~#], también podemos añadir otros caracteres usando «:» (no se puede añadir el caracter null).
  • -h: Para cosultar esta ayuda.
  • –version: Ver la versión.
  • -V: Hace algunas comprobaciones para ver si funciona.
  • -v: Utiliza más palabras.
  • -p: Una cadena o un archivo a partir de la/del cual se empezaran a generar las contraseñas.
  • -l: Para establecer la longirud mínima y la máxima.
  • -u: Utiliza unzip para descartar las contraseñas erróneas, muy útil porque así nos da la correcta, y no un montón de contraseñas probables (como ocurre en muchos casos).
  • -m: Método numérico, contraseñas numéricas.
  • -2: Esto módulo todavía no ha sido admitido.

Para el caso que nos ocupa, debemos tener en cuenta que un DNI tiene 8 cifras numéricas, además de que es bastante probable que el número sea mayor de 50000000 (ya que no es antgüo). De modo que utilizaremos el siguiente comando:

-b -> Brute force, para que vaya generando combinaciones él mismo.

-c 1 -> Para que sólo use carácteres numéricos.

-u -> Para que no nos ocurra esto:

lifka problema fcrackzip

-p 50000000 -> Para que comience a partir de 50000000.

fcrackzip -b -c 1 -u -p 50000000 nombre.zip

Y este es el resultado:

lifka fcrackzip

Así de sencillo es obtener la contraseña de estos archivos, por lo que siempre hay que poner contraseñas complejas para dificultar estos procedimientos, mezclando carácteres de varios tipos y usando combinaciones que no sigan patrone,s y no sean previsibles. Saludos 😉