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!