Español | English
rss facebook linkedin Twitter

Solución al reto 5

Tras 3 semanas, y con dos soluciones recibidas, presentamos los detalles del último reto.

Esta vez no se trataba de ingeniería inversa, como venía siendo habitual. Para empezar, se debía analizar el post en busca de algo "poco habitual", que en este caso se trataba de la imagen del logo de S21sec.

Una vez extraída la información guardada en el fichero, que correspondía con un enlace para descargar otro fichero, había que identificar su formato y descomprimirlo varias veces. Tres de ellas estaban comprimidas con contraseña, todas ellas muy cortas, que pretendían servir como pistas para la parte final del reto.

El archivo resultante es un fichero de texto que contiene una posición de ajedrez en notación FEN en la que, junto con las pistas extraídas de las contraseñas (blanco, fin, cinco), había que conseguir un mate en cinco movimientos.



Tenemos dos soluciones de mano de Rubén y Jaime, que os podeis descargar de aquí:

- Solución de Rubén
- Solución de Jaime

Podemos ver que cada uno tiene su estilo:
La solución de Rubén, además de estar muy bien presentada con un mindmap o mapa mental, muestra las pruebas realizadas, etc. Finalmente llega a la solución de la partida de ajedrez, aunque omite ciertos detalles como los movimientos adecuados.

Por otra parte, la solución de Jaime muestra claramente los pasos utilizados para resolver cada paso del reto, cada comando ejecutado, pero no nos indica las diferentes pruebas realizadas para finalmente encontrar el camino correcto.

Para decidir el ganador del libro, hemos creado un jurado de cinco personas y, por un apretado 3-2, el vencedor ha sido Jaime, siendo éste el segundo libro que se lleva.

Enhorabuena a los dos y gracias por participar.

Mikel Gastesi
S21sec labs

7 comentarios:

cienes de datos dijo...

Muchísimas gracias por el premio. Saludos y enhorabuena a Rubén por su solución que tan originalmente ha presentado. humm. tomo nota para posteriores situaciones.

Boken dijo...

Enhorabuena a los 2 por resolver el reto.

Y gracias por mostrarnos el camino ;D

Me ha gustado mucho el mindmap de Ruben, es una buena tecnia para resolver retos.

Gracias a Jaime tambien por mostrar todo el nivel de detalles. Muy bueno el motor de ajedrez.

Saludos.

Trancek dijo...

ejeje me gusto tambien la respuesta de ruben, pero jaime lo tenia mas completo y es como muchas veces se aprende mejor si no tuvieras ni idea.

Por cierto de hvid, como se saca lo de blanco?? ya que lo de bost me quedo claro ahora jeje, euskera...sois malos xD

S21sec labs dijo...

Hola,

hvid es blanco en danés.

Es un poco rebuscado, pero me aseguré de que el traductor de google lo tradujera si se selecciona la opción de "Detectar idioma" en el idioma de origen.

O si buscas hvid en google, la primera entrada apunta a la wiki (da.wikipedia.org), y si en el menú de la izquierda vas a la wiki en castellano, también te lo traduce como "Blanco (color)"

Saludos,

Uri dijo...

Buenas,

Aunque no pase de la primera parte, pasteo la parte de analisis que le hize a la imagen por si alguien esta interesado.

LLegue a la conclusion de que la paleta estaba permutada, pero no supe extraer la informacion desde alli.

Paste desde notas.txt :

*] Analisis de los datos de la imagen ( indices a paleta de colores ).

>>> import Image
>>> im = Image.open('logo_s21sec.gif');
>>> fd = open('COLORS1.RAW','w')
>>> for a in list(im.getdata()):
... fd.write("%c"%a)
...
>>> im = Image.open('logo_s21sec2.gif')
>>> fd = open('COLORS2.RAW','w')
>>> for a in list(im.getdata()):
... fd.write("%c"%a)
...

samsa@pcitcs63:~/Security/s21sec.5$ diff COLORS[12].RAW
Binary files COLORS1.RAW and COLORS2.RAW differ

Son diferentes.

*] Analisis de la lista de colores en RGB.

>>> import Image
>>> im = Image.open('logo_s21sec.gif')
>>> fd=open("DATA1.RAW","w")
>>> for a,b,c in list(im.convert().getdata()):
... fd.write("%c%c%c"%(a,b,c))
...
>>>
>>>
>>> im = Image.open('logo_s21sec2.gif')
>>> fd2=open("DATA2.RAW","w")
>>> for a,b,c in list(im.convert().getdata()):
... fd2.write("%c%c%c"%(a,b,c))
...
>>>
samsa@pcitcs63:~/Security/s21sec.5$ diff DATA1.RAW DATA2.RAW

Iguales!, con lo cual hay una permutacion en la paleta.

*] Analizando las paletas :

>>> im = Image.open('logo_s21sec.gif')
>>> lut = im.resize((256, 1))
>>> lut.putdata(range(256))
>>> lut = lut.convert("RGB").getdata()
>>> fd = open( 'Palete1.RAW', 'w' )
>>> for a,b,c in list(lut) :
... fd.write("%c%c%c"%(a,b,c))
...
>>> im = Image.open('logo_s21sec2.gif')
>>> lut = im.resize((256, 1))
>>> lut.putdata(range(256))
>>> lut = lut.convert("RGB").getdata()
>>> fd = open( 'Palete2.RAW', 'w' )
>>> for a,b,c in list(lut) :
... fd.write("%c%c%c"%(a,b,c))
...

*) Analizando las permutaciones en los colores :

samsa@pcitcs63:~/Security/s21sec.5$ ./mix Palete[12].RAW
[i] Color 000028e6 ind 000 => 000
[i] Color ffd1dafb ind 001 => 029
[i] Color 005c7aed ind 002 => 031
[i] Color ff97aaf3 ind 003 => 046
[i] Color 001a47e6 ind 004 => 006
[i] Color 002a52e6 ind 005 => 008

Aqui hize algunas pruebas mas. Todo apuntaba a que la informacion estaba en esta transposicion ( shuffle ) de la paleta. Pero no supe encontrar la forma de extraerla : ).

Enorabuena a los dos ganadores y gracias por las soluciones.

Salut,
Uri.

Trancek dijo...

ejej que bueno, se me ocurrio buscar asi por encima solo bost sola, pense que serian nombres de jugadores o algo que se le pareciera, y lo de hvid, como me sonaba a algo de archivos de video..pues pense que estaria grabada, que seria una partida famosa..pero nada jeej, buscando el final de alguna partida que estuve...xD, os lo dije odio las adivinanzas de este estilo, son cosas que muchas veces no me salen ejje.

y a samsa, si lo hubieras conseguido tal y como lo intentaste, hubieras ganado seguro.

S21sec labs dijo...

Está claro que sacando el mensaje a mano hubiera ganado muchos puntos.

La imagen no era casualmente el logo de s21sec. El texto pretendía servir como otra pequeña pista para poder filtrar la salida de un análisis manual, pero es algo de lo que nunca puedes estar seguro si no lo sabes, además de que en el texto oculto s21sec tiene ambas "s" con minúsuculas.

Saludos,


(+34 902 222 521)


24 horas / 7 días a la semana



© Copyright S21sec 2013 - Todos los derechos reservados


login