Mostrando entradas con la etiqueta Puzzle. Mostrar todas las entradas
Mostrando entradas con la etiqueta Puzzle. Mostrar todas las entradas

sábado, 3 de diciembre de 2011

Puzzle (IV de VI)

Hoy vamos a empezar por la segunda parte de cada uno de los puzzles.

Al resolver el primer puzzle, el de la imagen que nos comentaba mirar el código fuente... nos llevaba al llamado "Puzzle Δ" que es la segunda parte, y el principio de la solución final al enigma, bueno, a la url donde queremos acceder.

Así pues, una vez que hayamos resuelto estos tres últimos puzzles, podremos dejar nuestro CV en:
http://www.rtncyberjobs.com/pz2/Solution to Δ/Solution to Ω/Solution to Σ

Así pues vayamos a solucionarlo.

En este segundo caso, nos encontramos con la siguiente imagen:

En ella comenta que las imagenes suelen tener más información de la que podemos ver... así que... para empezar se me ocurren dos cosas que poder mirar.

La primera, metadatos o información contenida en ésta, así que para ir rápido y ver si se puede extraer algo, se descarga la imagen y se puede probar con hacer un "strings", con el siguiente resultado:

(no sé ve demasiado bien, pero la frase es: Getting warmer! Use concealment to uncover even more as you hunt for the solution string to this puzzle... like hide and seek...)

Al observar la frase obtenida, ya no he pensado en mirar más por esta vía. Además, de que da la pista de usar "hide and seek" un software para steganografía, que era la segunda opción :D

Al buscar este software, he podido ver que se trata de un software para imágenes GIF, por lo que no me sirve. Buscando un poco más, he podido ver un software que se llama JPHS (jpeg hide and seek), por lo que parece que es la opción perfecta.

Al ejecutar el programa me pide una contraseña para poder extraer la información oculta... y sin contraseña, no exporta nada... Por lo que revisando de nuevo la pista que tenemos con "strings", se me ocurre que lo de "use concealment to uncover" puede ser literal.. así que probando con "concealment" obtenemos el siguiente bonito mensaje:

así que ya está, tenemos la primera de las tres partes de la URL para utilizar!

Enlaces de interés:

http://www.jjtc.com/Steganography/tools.html

http://linux01.gwdg.de/~alatham/stego.html

viernes, 2 de diciembre de 2011

Puzzle (III de VI)

Bueno bueno... y aquí viene el tercer wargame, level 1...:P

Nos encontramos con el siguiente texto...


Este tiene ya más miga que no el resto...En el texto preguntan.. "¿Quien dijo...?" y al final nueve espacios en blanco, que suponemos es la solución, y lo que deberemos añadir a la url para pasar al siguiente nivel...

Como podemos ver, el texto tiene sus espacios, sus puntos y comas.. así que es de suponer.. que tan solo existe una transmutación entre las letras que aparecen y las originales. Es decir, tenemos que encontrar la correspondencia entre las letras, por tal de poder substituir cada una por su correspondiente original.

Dado que se trata de una página en inglés.. y que la frase, es de suponer que también lo estará.. el primer paso es realizar un estudio de la frecuencia que aparecen las letras.

http://en.wikipedia.org/wiki/Letter_frequency#Relative_frequencies_of_letters_in_the_English_language

El siguiente paso es coger y hacer un recuento de las letras que aparecen en el texto, así cómo un método para el cambio por las originales... sí, se puede hacer mediante folio y lápiz.. pero resulta demasiado coñ... tedioso. Así que, con un par de funciones de python es posible agilizar y facilitar esta tarea..

Para empezar, una función que nos haga el recuento de cada una de las letras que aparecen en la frase...:
(sustituir los _ por tabulaciones, que blogger no me deja meter el código..)
def cont(string):
_dic={}
_i=65
_while i<=90:
__dic[chr(i)]=string.count(chr(i))
__i=i+1
_return dic

Esta pequeña función, nos devuelve un diccionario con el número de veces que aparece cada letra. A continuación, otra función para hacer el cambio de letras, en función de otro diccionario que se encargue de las traducciones.

def subs(orig,trans):
_for i in trans.keys():
__orig=orig.replace(i,trans[i])
_print orig

Con estas dos pequeñas funciones definidas dentro del interprete de python, tan solo es necesario ir pasando las traducciones que creamos correctas, por tal de poder llegar a descifrar el mensaje.

Así pues, después de ir haciendo sustituciones.. nos queda el siguiente vector de traducciones:

trans= {'A': 'o', 'C': 'p', 'B': 't', 'E': 'l', 'D': 'a', 'G': 'h', 'F': 'u', 'I': 'i', 'K': 'm', 'J': 'b', 'M': 'j', 'L': 'c', 'N': 'd', 'Q': 'n', 'P': 'e', 'S': 'r', 'R': 'v', 'U': 'k', 'T': 'f', 'W': 'w', 'V': 's', 'X': 'y', 'Z': 'g'}

Así que dejo como ejercicio el acabar de juntar las partes, y descubrir que presidente dijo la frase...

jueves, 1 de diciembre de 2011

Puzzle (II de VI)

Bueno, pues aquí vamos a por el segundo!!

Para empezar tenemos la siguiente imagen llena de "interruptores":

Si alguien no se le ha ocurrido aún viendo la imagen, los interruptores están en dos posiciones, DOS, circuito abierto o cerrado o lo que es lo mismo.. 0 o 1. Sí, es un sistema binario, y si encima os tomáis la molestia de contarlos.. veréis que hay 96 interruptores, es decir, 12 grupos de 8 bits... vamos viéndolo ya?

Estos 96 bits, se puede representar por:

011000100110100101101110011000010111001001111001011100110110111101101100011101100110010101100100

Lo siguiente sería coger cada grupito de 8 bits.. (si alguien no sabe hacer la conversión a decimal.. que se lo mire.. o se lo haga mirar...)

01100010 = 61 (hex) = 97 dec = 'a'

con el resto... es muy fácil hacerlo, así que ahí lo dejo..


buen va.. si alguien ve que no le sale.. puede usar alguna aplicación web que le haga el trabajito...(cómo por ejemplo:)

miércoles, 30 de noviembre de 2011

Puzzle (I de VI)

Bueno, dejando un poco al margen el tema de cómo llegar a "Ownear" una máquina.. que tengo pensado probar unas cuantas cosas... voy a comentar 6 "ejercicios" para poder llegar a dejar tu CV en una empresa :D

Llegó a mi correo el siguiente enlace:

y al acceder a él, hay 3 wargames que constan de dos partes, y que al acabar puedes acceder a dejar tu CV, así que voy a intentar reventarles el chiringuito, contando cómo solucionarlos :)

Para empezar tenemos el reto 1:


Según la imagen, el romper un código puede venir de cualquier lado, y que es bueno considerar la fuente.. bueno.. así que es algo evidente, ¿no? sí se mira el código fuente de la página se puede observar el siguiente texto, que nos dirá cómo acceder al segundo nivel de éste reto.


Por lo que ya sabéis.. tan sólo es necesario añadir el "id key" a la Url del sitio, para llegar al siguiente nivel.