jueves, 9 de abril de 2015

Obtener la contraseña de un archivo comprimido

En Debian tenemos de todo, y hasta se puede crackear un archivo comprimido (en RAR, ZIP o 7Z) con contraseña, y extraer su contenido. De eso se encarga la aplicación RarCrack, que proporciona Sourceforge, y que está en los repositorios. Más Info aquí: http://rarcrack.sourceforge.net/ (pero es muy sencillo).
Así que...
Instalo el paquete rarcrack, simplemente con
sudo aptitude install rarcrack
Y para usarlo, abro una consola en la ruta donde tengo el archivo comprimido y escribo, en esa consola abierta...
rarcrack nombre_archivo.rar --type rar
(si fuese otro, por ejemplo zip... -- type zip)
Empieza a trabajar la consola
Al empezar, se crea en esa ruta un archivo 'nombre_archivo.xml', (de 'status', es el que 'manda' en el proceso rarcrack abierto), y y que lo puedes abrir por ejemplo con gedit, donde se indica, primero, qué caracteres va a probar (en <abc>...</abc>) luego, en <current>... por qué combinaciones de signos va (de los muchos que puede usar) y, cuando encuentre la contraseña 'buena', te lo indica en <good password>
Su gran inconveniente es que es un sistema 'de pura fuerza bruta', y puede tardar muchísimo, porque revisa todas las posibles combinaciones.
Y otro es que no he encontrado por ningún lado un manual, o tutorial, para aclarar las cosas. Me gustaría, por ejemplo saber cómo se puede (si se pudiese) restringir el 'ataque' a combinaciones entre 6 y 8 caracteres, para acortar el proceso. Al final, encontré un 'truco'.
Y leo que hay una opción ('optativa') que es '--threads número', escribiendo, por ejemplo,
rarcrack nombre_archivo.rar --threads 6 --type rar
que, por defecto (si no se pone lo de 'threads') toma el valor de 2, y su máximo 12, pero no tengo claro lo que significa 'threads' ¿hilos?
(Bueno, veo en el bendito San Google que, en Informática, los 'threads' son los 'pedazos' de software (hilo de ejecución, unidad de procesamiento más pequeña que puede ser tratada, subproceso...) que tienen que pasar por el ordenador, es un concepto relacionado con la tecnología del Hyper-Threading, tecnología que permite que 2 (o más) 'pedazos' pasen simultáneamente por los nucleos de los procesadores, aprovechando los espacios muertos, y mejorando, por tanto, el rendimiento del software utilizado. Bien, pues entendido (más o menos) el concepto. Y que con no poner nada, toma, por defecto, el valor 2, que me parece suficiente).

Y tres cuestiones importantes (de mis 'investigaciones')
a) si no se borra el archivo *.xml creado, puedes cerrar la consola, o apagar el ordenador, que si vuelves a lanzar el rarcrack (con el mismo archivo) te continúa donde lo dejaste.

b) Editando el archivo *.xml (por ejemplo, con gedit) puedes añadir (o quitar) caracteres (en la lista <abc>....</abc> que viene al principio y, si cierras la consola, y vuelves a arrancar ese mismo rarcrack, ya te lo considera. (Si borras el *.XML, en el nuevo arranque vuelve desde cero, y con los caracteres <abc>... que usa por defecto).

c) Y por todo eso, he descubierto un truco muy interesante: si empiezas un rarcrack y, enseguida, editas su XML ,borras todos los signos de >abc>... dejando solo los números y vuelves a lanzarlo, muy rápidamente está, ya, probando 'combinaciones de 6 caracteres'. Entonces vuelves a pararlo, vuelves a editar el XML, añades todos los caracteres que habías quitado, incluso más (@#~$%&?¿*-+=çÇñÑ, etc), y vuelves a ejecutarlo... y te continúa el proceso de 'fuerza bruta', con todos los caracteres... desde esa combinación de 6 elementos, con lo cual te ahorras todo el tiempo de llegar hasta ahí.

Bueno, y hay que mencionar una cuestión adicional: que el proceso 'tira' bastante del procesador, así que conviene vigilar que no se te disparen demasiado las temperaturas.

Claro, ya lo he dicho, es un proceso de 'pura fuerza bruta', y se puede alargar una eternidad. Pero bueno, es lo que hay, y es cuestión de probar... y procurar 'no morir en el intento'.

No hay comentarios:

Publicar un comentario