martes, 18 de noviembre de 2008

Rompiendo claves ZIP en Debian con fcrackzip.

Bueno pues por diferentes motivos, no he podido asistir hoy a clase y veo ahora que en el Campus Virtual se han colgado algunos ficheros de Unidades Funcionales del Computador, los cuales están protegidos con contraseña.

La contraseña para descomprimir los archivos se proporcionará en clase, reza la web bajo cada uno de los ficheros, y como yo tengo ese extraño don de faltar a clase los días clave, estoy seguro de que la contraseña se ha dado precisamente hoy, asi que me temo que habrá que buscar una solución.

Como los ficheros están comprimidos en ZIP, que es la prostituta de los algoritmos de compresión hoy día, abundan las aplicaciones para romper contraseñas en ellos. Yo he utilizado fcrackzip y si no pasa nada raro, solo utilizo Debian GNU/Linux, asi que es sobre lo que voy a tratar aquí.


Si no tenemos instalado fcrackzip, obviamente lo instalamos, huelga decir como ..


Lo primero será llamar a la ayuda de la aplicación:


Interceptor:/home/mannu# fcrackzip --help

fcrackzip version 0.3, a fast/free zip password cracker
written by Marc Lehmann You can find more info on
http://www.goof.com/pcg/marc/

USAGE: fcrackzip
[-b|--brute-force] use brute force algorithm
[-D|--dictionary] use a dictionary
[-B|--benchmark] execute a small benchmark
[-c|--charset characterset] use characters from charset
[-h|--help] show this message
[--version] show the version of this program
[-V|--validate] sanity-check the algortihm
[-v|--verbose] be more verbose
[-p|--init-password string] use string as initial password/file
[-l|--length min-max] check password with length min to max
[-u|--use-unzip] use unzip to weed out wrong passwords
[-m|--method num] use method number "num" (see below)
[-2|--modulo r/m] only calculcate 1/m of the password
file... the zipfiles to crack

methods compiled in (* = default):

0: cpmask
1: zip1
*2: zip2, USE_MULT_TAB


Nos interesan sobretodo las opciones en negrilla. -c indica el juego de caracteres que suponemos que puede contener la contraseña a romper, mientras que -l se refiere a la longitud máxima de las claves que queremos probar con nuestro fichero protegido.

Bien, ahora es cuando entra en juego la lógica humana. Son muchos años en la Facultad, y las contraseñas de los ficheros que se dan en clase suelen ser más bien sencillitas, y no demasiado largas.
Normalmente se trata de las iniciales de la asignatura, junto al curso académico.
Eso nos deja un juego de caracteres de letras mayúsculas y minúsculas, y números. Algunas veces se utilizan barras o guiones, pero primero vamos a probar sin florituras, solo letras y números, por tanto:


fcrackzip -c aA1


Además para no eternizarnos si la clave contiene algún caracter fuera de nuestro juego elegido, utilizamos la opción -l para limitar la longitud de las claves con las que atacar al fichero. La órden a ejecutar quedaría asi:


fcrackzip -c aA1 -l 2 x85.zip


Utilizo una longitud de clave de 2 caracteres porque que la clave tenga 1 es improbable, y sin embargo hay muchas posibilidades de que sea de 2 o pocos más, y calculos con una longitud de clave tan pequeña son bastante rápidos.
También podríamos dejar establecida una longitud de clave de 10 o más caracteres y esperar, pero posiblemente tardaríamos bastante más en dar con la correcta.


Interceptor:/home/mannu/Desktop# fcrackzip -c aA1 -l 2 x85.zip
Interceptor:/home/mannu/Desktop#


No hay salida, porque se han comprobado todas las opciones y ninguna es válida, por tanto la clave tiene más de 2 caracteres, probemos con 3.


Interceptor:/home/mannu/Desktop# fcrackzip -c aA1 -l 3 x85.zip
possible pw found: ufo ()


Ups .. pero qué tenemos aquí ? Una posible clave, y que coincide con las iniciales de la asignatura [los alumnos la llaman Unidades Funcionales del Ordenador; ufo].
Efectivamente, se trata de la clave correcta, ya tenemos acceso a los archivos protegidos pese a no haber ido a clase el día que se dieron las contraseñas de acceso.

Esta vez romper la contraseña ha sido algo instantáneo [menos de 1 segundo] debido a su simplicidad, normalmente nos puede llevar algunos minutillos y es posible que el programa nos entregue varias posibles contraseñas, si queremos evitarlo y que no nos avise hasta dar con la correcta, deberemos utilizar la opción -u, pero será algo más lento.

En fin, hasta aquí el problema, voy a echarle un vistazo a los programillas en ensamblador y a dormir, que hoy me lo tengo ganado.

2 comentarios:

..::Balfonek::.. dijo...

Pedazo de "juaker" que estás hecho, ni el mismísimo "Teki" lo hubiera hecho mejor.
Jejeje, veo que el no asistir a clase a veces es casi más fructífero que el ir.

Me dejo el programita apuntado en la libreta negra por si alguna vez tengo echar mano de él.

saludos

||M^nnu|| dijo...

Al final han dado la contraseña hoy en clase xdddddddddddd
Al menos me divertí escribiendo esto en el blog ;)