Banner 1

Jugando con el encriptado de los archivos ZIP

Hago referencia a este gran trabajo de g30rg3 que por siento gracias por el tuto que me ha servido para varios retos xD.


saludos y no se les olvide visitar la fuente , hay mucho mas para ver :D

-----------------------------------------------------------------------------------------------

Antes de continuar con esta sencilla, pero efectiva guía tengo que decirles que esta “técnica” esta presente desde ya bastante tiempo y me acorde de esto ayer mientras resolvía uno de los “Desafíos” de la pagina Hackerss.com

Pero bueno dejemos a lado las palabrerías y presentación, empecemos no?

Introducción
Como saben muchísima gente cuando hace un respaldo “de algo importante” le pone una contraseña para evitar que este respaldo sean accedidos por otras personas fuera de las que tengan la contraseña y normalmente cuando son muchos ficheros prefieren tenerlos en uno solo comprimido usando uno de los formatos mas populares de compresión, el cual conocemos como ZIP.
Muchas veces por azares del destino cae en nuestras manos uno de estos archivos o simplemente teníamos uno y se nos olvido la contraseña, los métodos mas conocido son: probar datos personales (nuestros o del que hizo el respaldo), probar atravez de un diccionario de palabras comunes y por ultima la vieja fuerza bruta, algunas veces, alguno de esos métodos nos ha funcionado, pero otras veces no (sobre todo cuando la contraseña es de esas moustrosas o con caracteres complejos), aunque la fuerza bruta en teoría si va a poder recuperar la contraseña, este método puede tardar muchísimo, inclusive puede tardarse años en sacarla (dependiendo de la complejidad de la contraseña) y normalmente para esos casos pues siempre terminamos dándonos por vencidos y poniéndonos en la idea de que no recuperaremos esa información jamas…

Ahora que les parece si les cuento que existe una posibilidad de poder recuperar esa información aun la contraseña sea compleja y mas aun sin siquiera al final saber la contraseña con que se cifro, que pensarían?????
Ufff pues claro se les haría agua a la boca, pero tampoco pensemos de ella como la solución a todos los males, como todas las cosas buenas vienen con sus limitaciones y requerimientos.

¿Que es? y ¿ Como Funciona?
Esta técnica es conocida bajo el nombre popular de el ataque “plaintext”, los autores de haber encontrado esta vulnerabilidad en el sistema de cifrado de los archivos comprimidos(y Cifrados) con PKZip(ahora los conocemos solo como ZIP) fueron Eli Biham y Paul Kocher, ellos descubrieron que se podía adivinar las 3 llaves (y en los casos mas comunes adivinar la contraseña original) que se necesitan para descifrar un archivo ZIP solo usando una N parte de un X fichero conocido.
En palabras comunes (o como funciona), es muy simple sabiendo una parte total o parcial de algún fichero dentro del archivo cifrado y compreso con ZIP, se pueden deducir cada una de las 3 llaves internas (y la contraseña original) que usa el descifrador interno de los ZIP y así obtener los ficheros cifrados de manera fácil y rápida.

Limitaciones
Como ya de seguro te diste cuenta, existen algunas limitaciones técnicas mínimas que se necesitan para poder hacer uso de esta técnica…

1) Tiene que estar encriptado/cifrado el archivo usando el algoritmo común de los ZIP, nada de cifrados implementados de X Software o AES 128/256.
2) Tienes que conocer una parte parcial o total de alguno de los ficheros que se encuentran adentro del fichero ZIP compreso, es mas fácil y rápido si posees al menos uno de los archivos de manera completa y obviamente descifrada y descompresa, pero si no es así necesitaras al menos 11 bytes del principio del archivo o si se encuentra al final o en cualquier parte distinta del principio necesitaras al menos 13 bytes.
3) Se necesita saber que nivel de compresión se uso, aunque se puede deducir con un poco de maña pero se sigue dependiendo mucho de este dato.

Diferentes Casos
Durante mi etapa de estudio e investigación pude ver claramente tres casos de estudio que pueden pasar durante nuestra travesía de estudio, a continuación los en listo:
-> Si poseemos un fichero completo.
-> Si poseemos un fichero completo pero la contraseña es de carácter complejo
-> Si solo sabemos una cantidad parcial de información de un fichero, considerando mayor o igual a 12(o 13) bytes.
Durante esta guía veremos como se debe hacer para resolver cada caso.

Conocimientos Previos y Materiales
Realmente no se necesitan un conocimiento previo mayor a conocer como moverse bajo una consola (sea cual sea el Sistema Operativo), debido a que obviamente esta aplicación carece de una GUI y claro por razones de espacio y que queda fuera de esta guía, no pondré esa información y solo obviare el conocimiento de la misma.
Los ejemplos/archivos necesarios que se usaran en esta guía durante el análisis de cada caso sera proporcionados dentro de un paquete el cual podrán bajar desde esta web, dando click aquí.
Cabe mencionar que la utilidad “PkCrack” la cual es usada durante este guía como un material NECESARIO así como otras herramientas como un software que soporte la compresión y descompresión de datos con el formato ZIP y un editor hexadecimal, por razones obvias de diferentes implementaciones para diferentes sistemas operativos, no sera adjunta dentro del paquete mismo.
Para bajar “PkCrack” favor de ir a la pagina oficial del proyecto o pueden simplemente descargarlo dando click a liga correspondiente a su sistema operativo:
Unix (Solo Codigo Fuente)
Windows
OS/2

Notas Rápidas sobre el Formato de Compresión ZIP
Antes de continuar hablando sobre lo que ya son los “Casos de Estudio” tendré que adentrarlos en lo que es el formato de compresión de los ficheros ZIP, esto lo hago para evitar ser dependientes de alguna utilidad para algún sistema operativo especial y así cualquiera que sea el sistema operativo pueda llevarse acabo este análisis.
Los Ficheros ZIP siempre cuentan con una cabecera inicial que nos van a ayudar en muchos casos a aclarar el panorama sobretodo con ciertos datos como métodos de compresión usado para así generar algunos archivos necesarios.
Primero todos los ficheros comunes ZIP empiezan de esta manera (solo tomaremos los primeros 10 Bytes)

50 4B 03 04 14 00 00 00 08 00
(visto desde un visor hexadecimal)

Los Primeros 4 Bytes o “50 4B 03 04“, son conocidos como los de cabecera inicial estos de marcan que el siguiente fichero usa el sistema de compresión ZIP.
Los Siguientes 2 Bytes o “14 00“, indican la versión mínima con la que se puede extraer el contenido compreso.
Los Siguientes 2 Bytes o “00 00“, son usados de manera general por varios parámetros pero normalmente sirven para denotar que el contenido esta encriptado o tiene una contraseña, mas adelante entraremos un poco mas adentro sobre estos bytes.
Los últimos 2 Bytes o “08 00“, son los que mas vamos a fijarnos y son los que indican que método de compresión se uso al comprimir la información.
De esa cabecera en general solo nos interesan (para este caso) los últimos 4 Bytes de esos 10 Bytes o bien “00 00 08 00” ese grupo de bytes le indican al software que no tiene contraseña y que se ha usado el metodo de compresion “deflate” en modo Normal, esta informacion puede ser corroborrada en el archivo APPNOTE.txt de las lineas 470 a la 575 (esta incluido en el pack dentro de la carpeta Caso 1).
Ahora aquí tiene su viene su chiste sobre los bytes que son usados de manera general, estos se mueven cuando el contenido se encuentra cifrado o se cambio el modo de compresión, ahora si ponemos el primero de sus 2 bytes a “01” le estaremos diciendo al software que el contenido se encuentra cifrado, pero si ahora ese byte valiera “02” le estaría diciendo al software que esta compreso en el modo máximo, ahora por lógica entenderán si vale “03” este byte le estará diciendo al software que esta compreso en modo máximo y este se encuentra cifrado. Entonces siguiendo las especificaciones anteriores si vemos…
00 00 08 00“, significa modo de compresión normal y la información no esta cifrada.
01 00 08 00“, significa modo de compresión normal y la información esta cifrada (o tiene contraseña).
02 00 08 00“, significa modo de compresión máxima y la información no esta cifrada.
03 00 08 00“, significa modo de compresión máxima y la información se encuentra cifrada (o tiene contraseña).
Esto claro es la versión “resumida” o la parte que nos interesa, esto no es precisamente la ley ya que el método de compresión deflate seteado a “08 00” puede cambiar a muchísimos otros y por consecuente los otros dos bytes también serian afectados, así como otros muchísimos parámetros afectarían estos 4 bytes que consideramos importantes, mi recomendacion es estudiar al menos las paginas mencionadas del archivo APPNOTE.txt que incluí en el pack ya que ahí se especifica con lujo de detalle que pasa cuando se mueve o cambia algún byte y asi como otros datos importantes.

CASO 1: “Lo Normal - Fichero Completo”
Primero tomaremos los dos ficheros que están en la carpeta Caso 1, como veras uno corresponde al fichero ZIP que esta por supuesto con una contraseña y el otro archivo si te fijas es uno que ya esta adentro, siguiendo nuestro análisis que vimos en la sección de notas rápidas sobre los ficheros ZIP encontramos que el archivo esta obviamente cifrado en modo de compresión normal y se uso el método de compresión “deflate”, ahora la técnica funciona así el chiste es comprimir el archivo que poseemos o “APPNOTE.txt” exactamente como esta dentro del ZIP con contraseña, ya que poseemos las especificaciones lo comprimimos exactamente en modo normal y con el metodo “deflate” (el método deflate es el que la mayoría del software de compresión y descompresión ZIP usa, asi que no hay que preocuparse mucho) claro esta vez sin ponerle una contraseña lo que tendremos que hacer es extraer los ficheros de cada lado y dárselos a PkCrack para que el haga su labor de CriptoAnalisis.
Primero empecemos con el archivo cifrado, ejecutaremos del siguiente modo el ejecutable “extract”:
: extract Caso1.zip Appnote.txt
Esto nos devolverá la parte de dato correspondiente a la versión cifrada de “Appnote.txt”, como veran no es leible la información, ahora cambiaremos rápido el nombre del archivo que nos devolvió por “Appnote_Encriptado.txt” para así evitar que sea reescrito por la siguiente parte, ahora toca sacar el mismo archivo pero de nuestro ZIP creado con el archivo que teníamos y para esto hacemos:
: extract APPNOTE.zip Appnote.txt
Ahora también como el otro cambiaremos el nombre por “Appnote_DesEncriptado.txt”, al igual que el otro este archivo también es ilegible ahora que ya tenemos nuestros archivos listos pasaremos ya a la parte buena o esperada.
Ya que tenemos todo listo ahora ejecutamos si el PkCrack poniendo como parámetros primero el archivo encriptado (después del -c) y luego el desencriptado (después de -p):
: pkcrack -c Appnote_Encriptado.txt -p Appnote_DesEncriptado.txt
Si todo salio bien deberemos ver como se procesa solo y obtendremos un resultado igual al siguiente:

Files read. Starting stage 1 on Fri May 4 00:37:17 2007
Generating 1st generation of possible key2_35281 values…done.
Found 4194304 possible key2-values.
Now we’re trying to reduce these…
Lowest number: 970 values at offset 31511
Lowest number: 915 values at offset 31510
Lowest number: 886 values at offset 31509
Lowest number: 885 values at offset 31132
Lowest number: 845 values at offset 31131
Lowest number: 805 values at offset 31130
Lowest number: 738 values at offset 31129
Lowest number: 715 values at offset 31125
Lowest number: 688 values at offset 31123
Lowest number: 650 values at offset 31112
Lowest number: 627 values at offset 31092
Lowest number: 606 values at offset 31088
Lowest number: 536 values at offset 31086
Lowest number: 527 values at offset 31084
Lowest number: 524 values at offset 31083
Lowest number: 522 values at offset 31080
Lowest number: 495 values at offset 31079
Lowest number: 459 values at offset 31072
Lowest number: 456 values at offset 31070
Lowest number: 445 values at offset 31061
Lowest number: 408 values at offset 31056
Lowest number: 378 values at offset 31055
Lowest number: 376 values at offset 31053
Lowest number: 320 values at offset 31052
Lowest number: 303 values at offset 31051
Lowest number: 294 values at offset 4795
Lowest number: 278 values at offset 4777
Lowest number: 258 values at offset 4756
Lowest number: 218 values at offset 4755
Lowest number: 203 values at offset 4752
Lowest number: 160 values at offset 4751
Lowest number: 154 values at offset 4748
Lowest number: 148 values at offset 4730
Lowest number: 137 values at offset 4729
Lowest number: 129 values at offset 4728
Lowest number: 128 values at offset 4726
Lowest number: 113 values at offset 4725
Lowest number: 96 values at offset 4717
Done. Left with 96 possible Values. bestOffset is 4717.
Stage 1 completed. Starting stage 2 on Fri May 4 00:38:29 2007
Ta-daaaaa! key0=e1cd35d6, key1=10425103, key2=1b235d65
Probabilistic test succeeded for 30569 bytes.
Ta-daaaaa! key0=e1cd35d6, key1=10425103, key2=1b235d65
Probabilistic test succeeded for 30569 bytes.
Stage 2 completed. Starting password search on Fri May 4 00:38:38 2007
Key: 30 61 32 62 33 63 34 64
Or as a string: ‘0a2b3c4d’ (without the enclosing single quotes)
Key: 30 61 32 62 33 63 34 64
Or as a string: ‘0a2b3c4d’ (without the enclosing single quotes)
Finished on Fri May 4 00:38:38 2007

Como vemos despues de solo poco mas de 1 minuto obtenemos la clave original que es “0a2b3c4d” y lo podemos comprobar abriendo el ZIP y probando que podemos acceder a los archivos y así descomprimirlo, también cabe mencionar que la contraseña tiene un largo de 8 caracteres la misma acción que tardo con este método poco mas de 1 minuto tardaría usando fuerza bruta de unas 2 a 3 horas y eso si escogemos el grupo correcto de letras.
Este caso fue muy fácil obtuvimos todo lo que necesitábamos, pero sin embargo este caso es el mas digamos obvio y es el que siempre dará buenos resultados, normalmente encontraras siempre este si es que puedes usar esta técnica pero sin embargo como veremos a continuación podremos superar otras adversidades.

Caso 2: “Modos de Compresión - Fichero completo con contraseña compleja”
Este caso no tiene mucha diferencia con el primero lo unico que va a pasar es que nuestro camino sera un poco mas complicado y no veremos exactamente las cosas como el primero si no que ahora veremos un poco.
Como la anterior ves empezemos sacando los archivos de Caso2, otra vez tenemos un ZIP con password y esta vez tenemos una imagen GIF (ahora recuperaremos las imagenes de mi coleccion de xinitas XD), como la otra vez analizaremos el ZIP pero esta vez nos encontramos que el modo de compresion cambio a maximo asi que tendremos que hacer que “xinita 1.gif” sea compreso al igual que el primer caso pero en modo maximo.
De aqui en adelante evitaremos palabreria y diremos directamente que se debe hacer, primero extraemos “xinita 1.gif” de Caso2.zip
: extract Caso2.zip “xinita 1.gif”
Luego cambiaremos el nombre del archivo que nos devolvio por “xinita1_Encriptado.gif” y procederemos a extraer su contraparte
: extract “xinita 1.zip” “xinita 1.gif”
Cambiaremos el nombre del archivo como la otravez pero ahora por “xinita1_DesEncriptado.gif” y empezaremos con el criptoanalisis…
: pkcrack -c xinita1_Encriptado.gif -p xinita1_DesEncriptado.gif
Files read. Starting stage 1 on Fri May 4 00:41:50 2007
Generating 1st generation of possible key2_191158 values…done.
Found 4194304 possible key2-values.
Now we’re trying to reduce these…
Lowest number: 992 values at offset 180150
Lowest number: 919 values at offset 180143
Lowest number: 879 values at offset 180141
Lowest number: 839 values at offset 180108
Lowest number: 826 values at offset 180103
Lowest number: 794 values at offset 180102
Lowest number: 769 values at offset 180088
Lowest number: 741 values at offset 180080
Lowest number: 703 values at offset 178080
Lowest number: 680 values at offset 178076
Lowest number: 675 values at offset 178060
Lowest number: 668 values at offset 178059
Lowest number: 634 values at offset 178058
Lowest number: 623 values at offset 177930
Lowest number: 614 values at offset 177929
Lowest number: 599 values at offset 177926
Lowest number: 588 values at offset 177925
Lowest number: 573 values at offset 177909
Lowest number: 563 values at offset 177901
Lowest number: 555 values at offset 177900
Lowest number: 525 values at offset 177897
Lowest number: 518 values at offset 177891
Lowest number: 457 values at offset 177890
Lowest number: 450 values at offset 177888
Lowest number: 435 values at offset 177880
Lowest number: 411 values at offset 177876
Lowest number: 398 values at offset 177874
Lowest number: 396 values at offset 177706
Lowest number: 390 values at offset 176528
Lowest number: 334 values at offset 176527
Lowest number: 322 values at offset 176526
Lowest number: 320 values at offset 176518
Lowest number: 314 values at offset 176517
Lowest number: 299 values at offset 175614
Lowest number: 297 values at offset 175368
Lowest number: 277 values at offset 175367
Lowest number: 259 values at offset 175351
Lowest number: 253 values at offset 175345
Lowest number: 241 values at offset 175342
Lowest number: 236 values at offset 113771
Lowest number: 218 values at offset 113760
Lowest number: 201 values at offset 113752
Lowest number: 197 values at offset 113750
Lowest number: 185 values at offset 113742
Lowest number: 182 values at offset 113721
Lowest number: 179 values at offset 113720
Lowest number: 166 values at offset 113715
Lowest number: 163 values at offset 113713
Lowest number: 159 values at offset 113712
Lowest number: 155 values at offset 113710
Lowest number: 153 values at offset 113709
Lowest number: 126 values at offset 113705
Lowest number: 123 values at offset 113683
Lowest number: 120 values at offset 113682
Lowest number: 119 values at offset 113681
Lowest number: 118 values at offset 113677
Lowest number: 114 values at offset 113674
Lowest number: 106 values at offset 113673
Lowest number: 102 values at offset 113672
Lowest number: 100 values at offset 113671
Done. Left with 100 possible Values. bestOffset is 113671.
Stage 1 completed. Starting stage 2 on Fri May 4 00:44:30 2007
Ta-daaaaa! key0=8488e329, key1=5384c9d8, key2=806f3ada
Probabilistic test succeeded for 77492 bytes.
Stage 2 completed. Starting password search on Fri May 4 00:44:35 2007
10: 5
^C

Esta vez tendremos que parar a PkCrack (Control+C con el teclado normalmente) ya que este no encontrara la contraseña y este caso fue dejado a proposito ya que le puse a este archivo una contraseña de exactamente 100 caracteres alfanumericos, sin embargo este caso les demostrara lo que dije al principio acerca de que se puede recuperar la informacion que esta adentro del ZIP sin siquiera saber la contraseña, cabe mencionar que PkCrack te podra sacar las contraseñas desde largo 1 a 9 apartir de 10 en adelante le tomare bastante tiempo segun uno de mis intentos le toma 4 minutos sacar largo 10 y 12 minutos largo 11 (claro desde mi PC) esto comparado con la BF que largo 10 ya empieza a medirse en meses es un tiempo bastante reducido pero bueno siguiendo con el hilo de a lo que hibamos ahora como se fijan en una parte del criptoanalisis sacara 3 llaves estas llaves son las unicas que se necesitan para desencriptar un archivo y para este caso son “8488e329″, “5384c9d8″, ” 806f3ada”, ahora lo que vamos a hacer es usar estas llaves en conjunto con el ejecutable “zipdecrypt” que es el encargado de hacer esta labor, asi que sin mas preambulo ejecutaremos lo siguiente:
: zipdecrypt 8488e329 5384c9d8 806f3ada Caso2.zip Caso2_DesEncriptado.zip
Como puedes ver primero van las tres llaves en su orden respectivo, luego el archivo ZIP cifrado o con contraseña y por ultimo el fichero final donde se guardara la version sin contraseña, si todo sale bien deberas recibir la siguiente informacion…
Decrypting xinita 3.gif (4caf12dd4a17cf8da35b0bef)… OK!
Decrypting xinita 4.gif (7a5738cdccee36bc3084dad3)… OK!
Decrypting xinita 1.gif (ff6f8373d75a7befeaf7b229)… OK!
Decrypting xinita 2.gif (ff51d5dfe438e0bf4ee2dd1e)… OK!

Ahora como veras el archivo “Caso2_DesEncriptado.zip” se ha creado y si intentamos acceder a la informacion o descomprimirla veremos que ya no nos pide contraseña y hemos recuperado al 100% todos nuestros ficheros.
En fin en general este caso demuestra que podemos recuperar los archivos al 100% sin siquiera conocer el password original con el que se cifro la informacion, esta vez solo hicimos un poquito mas de trabajo.
Cabe mencionar que esto se podia hacer directo esto desde PkCrack solo usando el atributo “-d” seguido del nombre del archivo donde se va a poner la verison sin contraseña.

Caso 3: “Informacion Parcial - Fichero incompleto”
Este es desde mi punto de vista el caso mas dificil o mas soñado digamos ya que para lograr sacar este es un poco difícil, el asunto esta ahora en que no poseemos el fichero original si no solo una parte de el (durante este caso solo poseemos los primeros 500 bytes) y realmente llevar a la vida real es algo complejo, en si esta parte supone que tienes solo una parte mayor de 13 bytes (que es el minimo de informacion necesaria) del archivo original sin embargo aqui hay algo soñado o dificil de realizar como saben tendremos que poner exactamente como esta la informacion compresa en nuestro ZIP con contraseña, pero si solo poseemos una parte del archivo original y queremos comprimirla para obtener los archivos necesarios veremos que no se podra sacar ni siquiera las tres llaves, la respuesta es simple a este problema el algoritmo de compresion ZIP cambia con respecto al tamaño de la informacion que tenga que comprimir, osea digamos el archivo original de 96 KiloBytes fue compreso segun ese tamaño pero comprimir solo 500 bytes producira una salida muy diferente a la que en el archivo original fue, asi que pensemos en la epoca en que se ideo esto como saben esta epoca era la epoca del internet por telefono y era comun tener archivos mal descargados o con informacion faltante, la idea es que si se consigue un fichero ZIP (sin contraseña claro esta) con el mismo archivo que esta adentro de nuestro ZIP con contraseña pero no poseemos la totalidad podemos con una parte mayor de 13 bytes hacer nuestro criptoanalisis.
Como pueden ver tener ese campo ideal es un poco dificil y hasta cierto punto soñado en la vida real encontrar otro archivo ZIP que contenga uno de los ficheros del fichero ZIP con contraseña y que el primero este dañado y podamos usar solo una parte de la misma, bueno pues ya sabran que es algo SUMAMENTE DIFICIL y creo que solo esta debido a las epocas en que se hizo el programa y claro como una prueba de concepto de que si se puede.
Para evitarles todo este problema ya les he puesto el archivo “PKZip_parcial.pdf” que contiene esos 500 bytes parciales de un archivo ZIP que en teoria digamos “mal descargamos” y por eso solo tenemos esa informacion parcial.

Ahora como dije esto es solo una “prueba de concepto” de que si se puede pero aplicar esto en la vida real o un caso real sera creo que inutil, extraeremos como siempre el fichero PKZip.pdf del archivo ZIP Caso3.zip
: extract Caso3.zip PKZip.pdf
Cambiaremos los nombres como lo hicimos en los dos casos anteriores y ejecutaremos PkCrack:
: pkcrack -c PKZip_Encriptado.pdf -p PKZip_Parcial.pdf
Files read. Starting stage 1 on Fri May 4 00:56:42 2007
Generating 1st generation of possible key2_511 values…done.
Found 4194304 possible key2-values.
Now we’re trying to reduce these…
Done. Left with 15421 possible Values. bestOffset is 24.
Stage 1 completed. Starting stage 2 on Fri May 4 00:57:15 2007
Ta-daaaaa! key0=274557c2, key1=47c0e619, key2=37542ddc
Probabilistic test succeeded for 492 bytes.
Stage 2 completed. Starting password search on Fri May 4 01:16:46 2007
Key: 6c 61 6c 61 33 31 33 33 37
Or as a string: ‘lala31337′ (without the enclosing single quotes)
Finished on Fri May 4 01:16:47 2007

Como veran ahora tambien tuvimos exito y esta vez solo teniamos 500 bytes del archivo original no el fichero completo como siempre pero sin embargo tener menos informacion significa mayor lentitud y como veran llevar este criptoanalisis tardara un poco mas de 20 minutos y para aquellos que quieran probar si prueban con el minimo de 13 bytes si encontraran la solucion pero tardara cerca de 2 a 3 horas el criptoanalisis.
Hay otra aclaracion y es que segun el documento sobre este criptoanalisis nosotros podremos hacerlo mismo con cualquier parte de informacion (contigua) aun se encuentre en medio del archivo o al final, en este caso probamos con los primeros 500 bytes, pero sin embargo quise hacer un caso donde busque la llave pero usando una parte del archivo distinta al principio pero como dije todas mis pruebas me llevaban a que no se podia y por consecuente no pude hablar sobre este subcaso de este caso, claro no quise seguir con mas profundizacion por que no valia la pena seguir con algo que de por si es un poco dificil de replicar en la vida real.

Conclusion
Llegando ya a la parte final de este sencilla guia se puede hacer notar que el sistema de cifrado comun de los ficheros ZIP puede ser facilmente vulnerado aun se tomen precauciones con respecto al largo o complejidad de la contraseña, claro llevar a acabo esta tecnica tiene sus limitaciones de si puede o no usarse aunque normalmente cuando alguien hace un respaldo suele poner algunos archivos que estan a la vista publica, dentro del ejemplo comun que se muestra sobre esta tecnica se hablaba sobre aquellos respaldos que contenian la imagen del logo de la empresa a la que se le fue robada la informacion y como el logo se encuentra disponible en el sitio web oficial de la empresa entonces ya dariamos por hecho que tenemos un archivo plano y con el podremos facilmente romper la contraseña y poder ver los ficheros cifrados.
No puedo terminar sin decir que desde mi punto de vista personal usar el formato ZIP como respaldo de informacion no es algo que digamos sea una solucion profesional, tampoco podemos decir que usar los cifrados nativos de algun software en especial sean la solucion ya que es una solucion pero mata la famosa portabilidad, en fin lo mejor para mi es cuidar bien aquellos medios que usemos para respaldar o resguardar informacion sean bien cuidados y se tomen encuenta dentro de nuestro plan de seguridad informatica.
Sin mas que decir un saludo a todos y espero les sirva esta sencillisima guia.

Links de interés
PkCrack - Breaking PkZip-encryption
PKZip Plaintext Attack Using Pkcrack (Step by Step)
Zip File Password Cracking - Tutorial by Crashtest
.ZIP File Format Specification


Fuente:http://g30rg3x.com/jugando-con-el-encriptado-de-los-archivos-zip/

No hay comentarios:

Powered by Bad Robot
Helped by Blackubay