It should work…

Cuando cualquier trasto es útil

It should work… header image 2

Soluciones del reto de criptografía – Parte 2

May 22nd, 2009 · 7 Comments · hacking, ieee

Las 5 primeras pruebas eran bastante directas, se podían resolver con papel y boli, excepto sacar los datos EXIF, claro. Ahora se va complicando un poco la cosa, pero no mucho, eh?

Prueba Nº6 Dame el link

Pensamos que esta prueba iba a ser más sencilla de resolver pero resultó ser la $&#@ prueba del kebab. Dentro del tiempo estipulado no hubo ningún participante que diera con la solución aunque unos días después si recibí una correcta. Se proporciona el siguiente texto:

LEAR TA__ LC_S ERUE S/_T .AHR PW:/ DWTW UxI. xxNx CxCx xxOx

y se da la pista ¿Te apetece un kebab? Gira que te gira!.

Era muy importante intentar deducir algo de las pistas. Nos pide un link y se pueden intuir unas Ws, los 2 puntos, barras, hay suficientes vocales, es decir, es un cifrado de transposición. Además las pistas son claras, es algo que gira.

Si hacemos un búsqueda con las palabras clave transposition, turning, cipher veremos que llegamos al cifrado Turning Grille. Tan fácil o tan difícil, creímos que no costaría tanto, la mayoría de los participantes intentaron sacar la frase a mano pero sin intentar averiguar la secuencia o el cifrado, de ese modo el resultado depende en gran parte de la suerte.

Una vez que asumimos que es seguro turning grille, miramos como funciona y tendremos que darnos cuenta de que es un cifrado que necesita un padding para ajustarse a una rejilla (se podría pensar que ese padding son las Xs) y que debemos eliminar el espaciado.

La rejilla usada para cifrar es la siguiente:

X_X_
__X_
____
__X_

Y podremos usar este programa en Java que nos facilitará mucho la tarea: TuGriToo

El mensaje descifrado es: LA URL SECRETA ES HTTP://WWW.ARDUINO.CC

Si os parece que esta prueba era puta… probad la 11 ^__^ Amine la preparó con amor para vosotros.

Prueba Nº7 Los Seis Bandidos

Se proporciona la siguiente imagen PNG:

Si sólo nos dan una imagen podemos pensar que pueden haber datos EXIF o algún tipo de esteganografía. Lo de EXIF ya ha salido y además sería muy fácil como para no ser una de las primeras pruebas. ¿Que métodos existen? LSB, en el canal alpha, etc. Es un PNG y podría tener canal alpha pero el título de la prueba es “Los Seis Bandidos” lo cual viene a ser LSB ;) en particular LSB0.

Podemos usar algún programa como StegSecret o acudir a alguna herramienta online como la siguiente:
http://incoherency.co.uk/hideimage.php

Después de obtener el contenido oculto mediante LSB0 (eso del final es un _cero_ pero es que con esta tipografía se ve un poco raro xD) vemos el siguiente mensaje:

Tenemos que crackear este hash pero lo unico que sabemos es que contiene 5 caracteres:
3e785445adc128d92ae8b8b98e9e624e

Por la longitud del hash sabemos que puede ser MD5 y nos dicen que la clave tenía 5 caracteres. Eso está pidiendo a gritos fuerza bruta. Tenemos 2 opciones:

- Usar alguna base de datos online de hashes calculados como http://gdataonline.com/seekhash.php

- Usar mdcrack ya que siendo la clave de esa longitud se obtendrá pronto:
$ mdcrack 3e785445adc128d92ae8b8b98e9e624e

<<System>> MDcrack v1.2 is starting.
<<System>> Using default charset : abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
<<System>> Max pass size = 12 >> Entering MD5 Core 1.

Password size: 1

Password size: 2

Password size: 3

Password size: 4

Password size: 5

----------------------------------------
Collision found ! => p1ngu

Collision(s) tested : 312026920 in 46 second(s), 748 millisec, 211 microsec.
Average of 6674628.0 hashes/sec.

<<System>> Session terminated -- Press a key

Hemos tenido suerte, ha sido rápido e indoloro gracias a que la clave no tenía símbolos fuera del abecedario y los numeros.

Esta prueba fue resuelta por 2 personas.

Prueba Nº 8 ¿Qué tienes para beber?

Nos dan un fichero zip con un enunciado y un fichero mp3.

La resolucion de este reto es simplemente espectacular!
Queremos que encuentres la palabra clave.

Esta es una de esas pruebas que puede ser o, muy fácil e inmediata, o que te haga rayarte hasta el infinito. Pero es que la solución es muy chula y aunque este fichero mp3 es conocido de una prueba ya publicada en otro reto ( http://www.net-force.nl, ajeno al nuestro ) nos apetecía ponerla.

El ruidito en cuestión es marciano como él sólo y podríamos pensar que tiene una secuencia escondida, que haya algún mensaje por tonos escondido cerca del algún ruido, patrones repetitivos, etc. En realidad es mucho más simple.

Abrimos el fichero con algún editor de onda, audacity por ejemplo, y vemos la siguiente forma de onda:
ruidito_formadeonda

Pero… ¿y si ponemos el modo de vista con el espectrograma?
ruidito_espectrograma

Si nos fijamos un poco, veremos que en el espectrograma se puede leer la palabra VODKA pero escrita en ruso, y esa es la solución. Bastante directo si se te ocurría, chulo, eh?

Prueba Nº9 Palomitas

Nos dan un fichero que se contiene lo siguiente y además se llama passwd

crackme:$1$pXSQEDco$/sYpZtE048g18JTSCW9jH/:1001:1010::/home/crackme:/bin/bash

Esta claro, tanto por el nombre del fichero como por su contenido que es la línea de un usuario de linux llamado crackme con el correspondiente hash de su password. Pero, oye, eso no es así el hash estaría en /etc/shadow y no en /etc/passwd… ya… sólo se trata de simplificar.

La pista es:

Ese usuario tiene la solución del examen de microondas del año que viene pero ten cuidado no quemes tu CPU. ¡Obtén su contraseña!

No quemes tu CPU! Lo cual viene a ser, está claro que tendrás que darle a la CPU pero no sea cafre y no lo intentes por fuerza bruta probando todas las posibles claves. Lo del examen de microondas era sólo para dar más ganas a la gente de crackearlo ^__^

Es un hash de un usuario de linux luego estará en MD5+SALT, aunque en sistemas distribuciones linux modernas ya es más común usar SHA512 en lugar de MD5 para ofrecer mayor robustez.

¿Qué opciones tenemos?
- Fuerza bruta: si la clave es larga o compleja tardará horrorores.
- algo tipo Rainbow tables: al usarse un SALT es un opción no recomendada. Para una misma clave la salida sería distinta y no nos serían útiles la mayoría de las tablas precalculadas.
- Fuerza bruta pero usando diccionario: opción más inteligente.

Así que nos ponemos a ello. Ahora se resume a tener suerte y dar con el diccionario correcto, el diccionario Argon sirve por ejemplo, que suele estar entre los primeros cuando buscas por ahí. La prueba es sencilla pero según la suerte que tengas puedes tardar mucho o poco para encontrar el diccionario adecuado por eso tiene una puntuación alta, para recompensarlo.

Ponemos a trabajar al amigo Juan:

$ john --wordlist=wordlist --users=crackme passwd
Loaded 1 password hash (FreeBSD MD5 [32/32])
wobbleywibble (crackme)
guesses: 1 time: 0:00:09:18 100% c/s: 4977 trying: wobbleywibble

Solución: el password es wobbleywibble” y se puede obtener en poco más de 9 minutos.

Aquí os adjunto un posible diccionario.

Prueba Nº 10 Código Ofuscado

Se nos proporciona un fichero zip que contiene unas instrucciones y código de programación cifrado:

Descubre el nombre del software y el cifrado usado

Había bastante gente intentando la prueba pero nadie la sacaba así que decidimos que si nos decían el software no tendríamos en cuenta saber o no el nombre del cifrado, ya que siempre hay métodos medio a mano que te pueden llevar a la solución sin necesidad de conocerlo.

Esta prueba sólo fue resulta correctamente por una persona que nos proporcionó el nombre del software correcto.

El texto estaba cifrado con el algoritmo Beaufort, una variación de Vigenère, con clave emerge. Un ataque por Kasiski nos podría dar pistas sobre la longitud de la clave.

Viendo el código se puede reconocer que está escrito en python, por lo menos si se ha usado alguna vez este lenguaje, ya que tiene una estructura y tabulados característicos además de que se podía intuir el típico import al inicio.

En la solución entregada el modo fue reconocer posibles sustituciones:
- 2 variables con 26 caracteres, una en mayúsculas y otra en minúsculas: claramente 2 alfabetos!
- al final de una función está la palabra return
- sentencias típicas como: if, else, lowercase, uppercase
- un buen mogollón de palabras de la cabecera donde está la licencia (GNU Public License, como no)

Gracias a todo eso conocido dedujo que la clave tenía un tamaño 6 y mediante un programa en Matlab colocó los caracteres en una matrix 6xN. El siguiente paso fue ir rellenando a mano las sustituciones. Una vez con el suficiente código descifrado hacer una búsqueda en google para encontrar que se trataba del fichero crack.py de la herramienta python-crack.

Para cifrar y descifrar Beaufort podemos usar el siguiente applet, que además permite usar unos cuantos algoritmos más.

Y hasta aquí hemos llegado :D Esperamos que os haya gustado y se haya aprendido.

Faltarían las dos últimas pruebas pero no vamos a publicar las respuestas por ahora ya que nadie las ha resuelto. Ajo y agua y a por ellas.

www.ieee.upv.es/cripto/concurso.php


Fuente original en http://vierito.es/wordpress

Similar Posts:

Soluciones del reto de criptografía – Parte 2

Tags: ·······

7 responses so far ↓

  • 1 papanoel Windows Vista Mozilla Firefox 3.0.10 // May 22, 2009 at 6:20 pm

    Qué zorrumpios!! La fukin’ prueba del kebab, saqué la web a fuerza bruta y aun así no creía que fuese la solución porque no había manera de cuadrar las cosas, así que no la envié :(
    PD: ya tuve mis gominolas :) ahora quiero mi camiseta del ieee :D

  • 2 vierito5 Gentoo Linux Mozilla Firefox 3.0.10 // May 22, 2009 at 7:13 pm

    A ver si pillo a Fidel y se la pido

  • 3 kuasar Gentoo Linux Mozilla Firefox 3.0.4 // May 25, 2009 at 1:45 pm

    ¿¿¿¿¿¿Por qué pones tan grande, en colores y antes de un (en portada) la solución??????

    Joder, ahora ya no juego!! :( .

    (y te voto 1!! :p)

  • 4 vierito5 Linux Mozilla Firefox 3.0.10 // May 25, 2009 at 1:53 pm

    Qué cruel! Hace ya más de 2 semanas, ya tocaba publicar las soluciones… pero sí, :S debí ponerle un tag de “more”, sorry :(

  • 5 vierito5 Gentoo Linux Mozilla Firefox 3.0.10 // May 25, 2009 at 6:20 pm

    Ya he puesto los tags ‘more’ en ambos posts ;)

  • 6 kuasar Gentoo Linux Mozilla Firefox 3.0.4 // May 25, 2009 at 6:23 pm

    Pues que alguien compense con 5 estrellas ;-) , que yo ya no puedo votar otra vez.

  • 7 Solución de las pruebas 11 y 12 del reto | It should work... WordPress abc // Jun 8, 2009 at 12:44 pm

    [...] de la entrega 1 y 2 llega la final. Las pruebas 11 y 12 quedaron invictas así que se dejaron propuestas para los [...]

Leave a Comment