Solución al reto 5

By
In Sin categoría
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

Recommended Posts
Showing 7 comments
  • cienes de datos
    Responder

    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
    Responder

    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
    Responder

    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
    Responder

    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
    Responder

    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
    Responder

    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
    Responder

    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,

Leave a Comment