Esta prueba fue cuanto menos «graciosa» a la hora de conseguirla, ya veréis porque.
Nos da el siguiente enunciado:
CRYPTO 4
Vaya, si no teníamos suficiente con los brasileños, ahora parece que los rusos también están haciendo de las suyas. Nuestros agentes han interceptado un mensaje cifrado entre su delegación y Moscú, y seguro que no traman nada bueno. Hemos conseguido (ya te hemos advertido que mejor no preguntes cómo) también la clave de cifrado, pero no sabemos nada sobre el posible algoritmo de cifrado.
Nos pone muy nerviosos no saber qué se están diciendo. ¿Nos echas una mano, agente?
Mirror1: https://mega.nz/#!WNInwQTQ!ySoVbnRUPxL9IaMGYn0oJBa5E3gpqqVY6DmJz9YPTvQ
Mirror2: https://mega.nz/#!msMj1RqT!ySoVbnRUPxL9IaMGYn0oJBa5E3gpqqVY6DmJz9YPTvQ
Mirror1: https://mega.nz/#!nE5RiKSY!dCvZXrCyIa0e7a9Uv6xkQuBCBPfSEcQ48zaEGGNzH-M
Mirror2: https://mega.nz/#!yosiEAiQ!dCvZXrCyIa0e7a9Uv6xkQuBCBPfSEcQ48zaEGGNzH-M
Y dos archivos, uno con la clave de cifrado y otro cifrado con un algoritmo desconocido. La clave que nos dan es:
0475f6e05038fbfad2c7c390edb3ca3d1547124291ae1e8a2f79cd9ed2bcefbd
Pero esta tampoco nos ayuda a saber que algoritmo utilizar, a falta de otra cosa, volví a los orígenes del RTFM y decidí buscar dicha clave en google (idea feliz mía)….
¡Et Voila! Primer resultado ya nos encontramos con un python que utiliza exactamente la misma clave, después de leer un poco el github me descargue e instale las librerías de pygost.
Para no complicarme mucho teniendo que leer el archivo cifrado pasamos su contenido a hexadecimal utilizando xdd:
xxd -ps fichero_cifrado.bin
Creamos un pequeño script utilizando las librerias de pygost:
from pygost.gost28147 import ecb_decrypt key = '0475f6e05038fbfad2c7c390edb3ca3d1547124291ae1e8a2f79cd9ed2bcefbd'.decode('hex') encrypted = 'b163a48eb711b424964fd640a204238e3c4edd54fd124595a7cc77bc60204e2501ce2c83d07c2e3050e1f1898bf520b8481b550afc3ab900b1d4d54ce253d038'.decode('hex') decoded = ecb_decrypt(key, encrypted) print decoded
Ejecutamos el script y obtenemos la flag:
!Enhorabuena!. Has conseguido resolver el reto. Token: POBEDITEL
Como veis este fue relativamente sencillo simplemente utilizando google, otras veces nos complicamos la vida y nos olvidamos de lo más básico.
Espero os haya gustado, gracias por la visita!