En esta entrada pongo la solución al desafío que creo que es un poco más complicado de resolver que el resto, cuyo título es "Crypto Hole", y que mezcla diferentes tipos de criptosistemas. A este reto en concreto yo le asignaría un nivel de dificultad medio (★★★☆☆):
Descargo el archivo comprimido asociado al reto (A_ffine_Cipher_here_3.zip) y extraigo los archivos que contiene con la contraseña que se indica, "NeverLANCTF".
Uno de ellos, "chal.txt", contiene el siguiente criptograma: "whzzdvyk: HmcxWGD0iKTI&OAmgv". Por el nombre del archivo .zip se puede sospechar que el texto en claro ha sido cifrado utilizando el llamado cifrado afín y pruebo a descifrarlo mediante la fuerza bruta utilizando una herramienta 'on-line':
Nótese que como la constante de decimación (a) es 1 también podríamos haber obtenido la password del archivo utilizando la fuerza bruta con el cifrado César:
Una vez extraídos los ficheros contenidos en el archivo comprimido "Two is better than one.zip", en el archivo "chal.txt" correspondiente a ese nivel se ve otro criptograma: "PASTNRQXX78DRDVI6KBD3SDFXXXXXXSWO". Desconozco qué criptosistema concreto se ha empleado para cifrar el texto en claro, pero creo que está claro que es de transposición y por el nombre del archivo .zip se puede sospechar que se trata de una transposición columnar doble, pero desconozco cuál es la clave utilizada. En muchos retos de esta competición, cuando se ve involucrada una clave, ésta suele ser "NEVERLANCTF" o algo similar, por lo que voy a probar a descifrar el criptograma utilizando una herramienta 'on-line' e introduciendo como clave la indicada o alguna similar:
Y, efectivamente, parece que he obtenido la contraseña ("PASSWORDV78DTNRI6KBD3SDFQXXXXXXXX"), sin la cadena "PASSWORD" inicial ni los caracteres "X" finales, para extraer los ficheros contenidos en el archivo comprimido "I'm on the fence with this one.zip" y pasar así al siguiente nivel.
Vale, supongamos que no hubiera podido inferir la clave empleada, ¿Podría haber hecho algo para obtener la password del archivo .zip que se esconde en el criptograma?. En ese caso se me ocurre que podría utilizar un ataque de fuerza bruta por diccionario, de la siguiente manera:
1.- Creo un diccionario utilizando los grupos de caracteres del critograma que formarían parte de la clave (los grupos correspondientes a caracteres, tres o menos, no resaltados en color rojo en "PASTNRQXX78DRDVI6KBD3SDFXXXXXXSWO"), es decir: "TNR", "Q", "78D", "V", "I6K", "BD3" y "SDF". Para ello utilizo la herramienta "pydictor", de la siguiente manera:
Una vez extraídos los ficheros contenidos en el archivo comprimido "I'm on the fence with this one.zip", en el archivo "chal.txt" correspondiente a ese nivel se ve otro criptograma: "pw:Ea8oasod SA5egBlvsrVSvwr". En esta ocasión, por el nombre del archivo .zip se puede sospechar que se trata de un cifrado rail fence. Para descifrar el criptograma utilizo una herramienta 'on-line':
Y parece que he obtenido la contraseña ("password:·VSEAS5aevg8Bwlovr") para extraer los ficheros contenidos en el archivo comprimido "Salad Time.zip" y pasar así al siguiente nivel.
Una vez extraídos los ficheros contenidos en el citado archivo .zip, en el archivo "chal.txt" correspondiente a ese nivel se ve otro criptograma: "knppwjor: cQGuVCd$TyOUPppXUnPX". Por el nombre del archivo .zip se puede sospechar que se trata del cifrado César, pero no consigo descifrar el criptograma con la herramienta 'on-line' que he utilizado anteriormente.
Investigo por Internet y repaso las herramientas que suelo utiliza para resolver los retos de criptografía, y entre estas últimas encuentro el cifrado de César con clave ('Keyed Caesar'):
Es decir, se trata de una variante del cifrado César en la que no se utiliza el alfabeto estándar, sino que se usa uno en el que se escribe primero una palabra o frase que utilizaremos como clave (omitiendo los caracteres repetidos) y se completa ésta con el resto de caracteres del alfabeto estándar, es decir, los no utilizados en la palabra o frase que nos sirve de clave.
Intento el descifrado utilizando esa herramienta 'on-line' y, como he hecho también antes, con "NEVERLANCTF" como clave:
Y creo que he obtenido la contraseña ("password: gTLvCGk$HyRVSssXVaSX") para extraer los ficheros contenidos en el archivo comprimido "ROTten.zip" y pasar así al siguiente nivel.
Una vez extraídos los ficheros contenidos en el citado archivo .zip, en el archivo "chal.txt" correspondiente a ese nivel se ve otro criptograma: "cnffjbeq: r1Lqe*mkBBloS6EE%u5s". Por el nombre del archivo .zip se puede sospechar que se trata de un cifrado ROT13. Intento el descifrado utilizando una herramienta 'on-line':
Y parece que he obtenido la contraseña ("password: e1Ydr*zxOOybF6RR%h5f") para extraer los ficheros contenidos en el archivo comprimido "Viginere Equivent E.zip" y pasar así al siguiente nivel.
Una vez extraídos los ficheros contenidos en el citado archivo .zip, en el archivo "chal.txt" correspondiente a ese nivel se ve otro criptograma: "tewwasvh: jM7FTDP#DR5TM!&tfXBg". Por el nombre del archivo .zip se puede sospechar que se trata de un cifrado de Vigenère. Sin embargo, hay una cosa que no me cuadra mucho, ya que entiendo que la primera cadena del criptograma, "tewwasvh", se debería corresponder con la cadena "password" en el texto en claro, y ésto, como este sistema de cifrado es de sustitución simple polialfabética, sólo sería posible si el tercer y cuarto caracteres de la clave utilizada fuera el mismo y en concreto "E". En cualquier caso, intento el descifrado utilizando una herramienta 'on-line' especifica para este criptosistema:
Y parece que he obtenido la contraseña ("password: fI7BPZL#ZN5PI!&pbTXc") para extraer los ficheros contenidos en el archivo comprimido "Easy One.zip" y pasar así al siguiente nivel.
Nótese que, como la clave utilizada en el cifrado tiene un único carácter ("E", ahora entiendo el nombre del archivo .zip, "Viginere Equivent E.zip", y que esta letra sea la última de dicho nombre), en este caso el cifrado realizado sería equivalente a un cifrado César con un desplazamiento de cuatro caracteres:
Una vez extraídos los ficheros contenidos en el archivo "Easy One.zip", en el archivo "chal.txt" correspondiente a ese nivel se ve otro criptograma: "cGFzc3dvcmQ6IHZ4d0BadGV0I1pmQm5ZVnhKMUlN". Ni idea de cuál es el criptosistema empleado, pero por el título del archivo .zip no puede ser muy difícil. Por los caracteres empleados puede tratarse de código base64, por lo que utilizo una herramienta 'on-line' para decodificarlo (creo que a veces, como es el caso, se confunde la codificación con la criptografía, pero en fin...):
Una vez extraídos los ficheros contenidos en el archivo "Message indigestion.zip" utilizando la clave que se ve en la figura anterior, en el archivo "chal.txt" correspondiente a ese nivel se ve otro criptograma: "1f82cdf9195b31244721c6026587fb78". Por el nombre del archivo .zip, "Message indigestion", se puede sospechar que se trata de un hash MD5, lo que se ve reforzado por que, además, tiene 32 caracteres hexadecimales. Para obtener la password para pasar de nivel utilizo una herramienta 'on-line':
Y parece que he obtenido la contraseña ("password23") para extraer los ficheros contenidos en el archivo comprimido "for SHA dude" y pasar así al siguiente nivel.
Una vez extraídos los ficheros contenidos en el citado archivo .zip, en el archivo "chal.txt" correspondiente a ese nivel se ve otro criptograma: "57fc022fb8dbf1640e732c40e835f74e637526d8". Por el nombre del archivo .zip no me cabe ninguna duda de que se trata de un hash SHA. Para obtener la password para pasar de nivel utilizo la misma herramienta 'on-line' que la que he usado en el nivel anterior:
Y parece que he obtenido la contraseña ("applez14") para extraer los ficheros contenidos en el archivo comprimido "ONE more TIME" y pasar así al siguiente nivel.
Una vez extraídos los ficheros contenidos en el citado archivo .zip, en el archivo "chal.txt" correspondiente a ese nivel se ve un texto en claro más otro criptograma: "This is our world now...
Vvvyzshm fj tzylfvegn ehz ksh qwrwxs nlcecsagrv ubmdp qgvv momt sny lsdjk osmy grhc xoxk zgprjr... Ks pzij, lecv'w yrsv ctsz nbx w rhi kyea dmvr lqox{yyyiv0gLakvr}". Por el nombre del archivo .zip se puede sospechar que se trata de un cifrado 'one-time pad' (OTP) y, si es así, para descifrar el criptograma necesio una contraseña igual de larga que él.
Tras buscar en 'Google' el texto en claro "This is our world now..." enseguida veo que hay un párrafo del "Manifiesto Hacker" que empieza precisamente así:
Comentarios
Publicar un comentario