Cybercamp 2016 – Crypto 3

Vamos a seguir con los writeups de cripto en un orden un pelín aleatorio.

Nos dan el siguiente enunciado:

CRYPTO 3

Vaya! Parece que Juan Aldama, finalista de lanzamiento de jabalina ha sido notificado como positivo por dopping. Hay que hacer algo: sabemos que la AMA tiene un proceso de verificación de los resultados enviados por los jueces muy estricto: el fichero con el dictamen del sistema sólo será aceptado como válido si se adjunta como “firma” el resultado de su HMAC, basado en SHA-256, con una clave que desconocemos.

Afortunadamente nuestros espías han conseguido algunos ficheros, que quizás te sean útiles en tu tarea: un fichero ZIP, cifrado con la contraseña que buscamos, que contiene una copia en claro del certificado de auto-diagnóstico de la máquina de análisis.

El objetivo será, por tanto, obtener dicha contraseña, para poder calcular el HMAC correspondiente sobre el dictamen manipulado (dictamen_manipulado.pdf), que hemos preparado ya para tí en un fichero PDF.

El token de esta prueba serán los últimos 8 caracteres hexadecimales del HMAC calculado con la clave correcta.

¿Está todo perdido o crees que podemos salvar a Juan?

Mirror1: https://mega.nz/#!SYwSBZpD!xByBSzfdUqgFH2PTVwgaGnhJzoG4x834DKdaMepvBXI

Mirror2: https://mega.nz/#!3lFl2QDZ!xByBSzfdUqgFH2PTVwgaGnhJzoG4x834DKdaMepvBXI

Mirror1: https://mega.nz/#!eZJj1D6L!5YRrUa45Q7o6h0Zi_YywzZULkrdNsssZV–rZhUf1IA

Mirror2: https://mega.nz/#!ngVEAAzA!5YRrUa45Q7o6h0Zi_YywzZULkrdNsssZV–rZhUf1IA

Mirror1: https://mega.nz/#!nIZwVIrb!01tZHvRk5nCf0h1uyNBlaEMLGFbBE0ig4LgCP562dyw

Mirror2: https://mega.nz/#!2o0ziIYT!01tZHvRk5nCf0h1uyNBlaEMLGFbBE0ig4LgCP562dyw

Como ya vemos en el enunciado nos encontramos con 3 archivos, el pdf modificado, el zip a crackear y el pdf original sin firmar.

Comenzaremos crackeando el password del archivo zip, que es la que necesitamos para calcular el HMAC, para ello utilizaremos pcrack ya que al tener el archivo original podemos realizar un ataque por texto conocido, generamos un zip nuevo con dicho archivo:

zip zip.zip doc1.pdf

Y se lo pasamos a pcrack junto al que tiene contraseña:

pkcrack -C dictamen32344.zip -c doc1.pdf -P zip.zip -p doc1.pdf -a
Files read. Starting stage 1 on
Generating 1st generation of possible key2_28296 values...done.
Found 4194304 possible key2-values.
Now we're trying to reduce these...
Lowest number: 989 values at offset 23586
Lowest number: 978 values at offset 23584
Lowest number: 929 values at offset 23583
Lowest number: 922 values at offset 19637
Lowest number: 895 values at offset 19633
Lowest number: 878 values at offset 19632
Lowest number: 865 values at offset 19628
Lowest number: 853 values at offset 19621
Lowest number: 833 values at offset 19596
Lowest number: 831 values at offset 19537
Lowest number: 788 values at offset 19502
Lowest number: 759 values at offset 19501
Lowest number: 734 values at offset 19353
Lowest number: 730 values at offset 19236
Lowest number: 708 values at offset 19235
Lowest number: 695 values at offset 19206
Lowest number: 688 values at offset 19185
Lowest number: 685 values at offset 19124
Lowest number: 603 values at offset 19122
Lowest number: 575 values at offset 19119
Lowest number: 540 values at offset 19118
Lowest number: 512 values at offset 19051
Lowest number: 476 values at offset 19050
Lowest number: 457 values at offset 19015
Done. Left with 457 possible Values. bestOffset is 19015.
Stage 1 completed. Starting stage 2 on 
Ta-daaaaa! key0=5e1fa974, key1=88eb0844, key2=983a3700
Probabilistic test succeeded for 9286 bytes.
Ta-daaaaa! key0=5e1fa974, key1=88eb0844, key2=983a3700
Probabilistic test succeeded for 9286 bytes.
Ta-daaaaa! key0=5e1fa974, key1=88eb0844, key2=983a3700
Probabilistic test succeeded for 9286 bytes.
Stage 2 completed. Starting password search on
Key: 67 65 6f 6e 61 75 74 65 32
Or as a string: 'geonaute2' (without the enclosing single quotes)
Finished on

Pcrack nos ha dado la contraseña después de unos segundos «geonaute2», procedemos a calcular el HMAC del archivo modificado utilizando esta clave:

dgst -sha256 -hmac "geonaute2" dictamen_manipulado.pdf
HMAC-SHA256(dictamen_manipulado.pdf)= 7aa1332a4785b0e3316cf5331296f2ab53a089f70047ab5b5edc065e2264b01f

Como solo nos piden los último caracteres hexadecimales la flag sería:

dc065e2264b01f

Ya quedan pocas de cripto, espero os estén gustando los writeups, saludos y gracias por la visita!

Esta entrada fue publicada en cripto, ctf, cybercamp. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.