16 agosto 2009

3/4 - Wargame CP2009 - Pruebas de Criptografía

Volvemos con la tercera entrega de las soluciones a los retos del concurso de hacking ético de la Campus Party, en esta ocasión con las pruebas de criptografía. Esta categoría como en el resto, se compuso por cuatro fases de distintos niveles.

El primer problema consistía en acceder al contenido almacenado de un archivo PDF, este PDF era el documento que describía las bases del concurso y dentro de el se encontraba un archivo p12 que será utilizado en el último nivel y otro de texto con la contraseña para pasar a la siguiente prueba. Uno de los métodos para acceder a esta información es el uso de Fuse::PDF.

En la segunda prueba se proporcionaba una web con una imagen de fondo que contenía un código QR y un md5 central para despistar. Al decodificar el QR con alguna herramienta como http://zxing.org/w/decode.jspx se obtiene un texto en Base64. Al descodificarlo se muestra otro texto que tampoco está en claro. Para resolver esta última parte, se analizan las frecuencias de aparición de cada letra y se observa que es un texto de sustitución simple, en el que hay que encontrar el alfabeto usado para llevar a cabo la sustitución (ya sea a mano o por diccionario).
Una vez realizada la sustitución si el texto era buscado en Google se accedía a una url de esta web. La contraseña para pasar el nivel era el título de la entrada.

En la tercera prueba se presentaba un twitter con mensajes cifrados con RC4, que se habían incrustado utilizando la herramienta CipherTwitter, para obtener la contraseña y acceder al siguiente nivel había que aplicar fuerza bruta en base a un diccionario generado de la página web de SecurityByDefault.

En la cuarta y última prueba había que utilizar el certificado obtenido del PDF, lo que requiere conocer su contraseña, algunos de los participantes diseñaron sus propias herramientas para obtenerla, aunque ya estaba disponible Brute12 de la que ya hemos hablado en otra ocasión. Una vez se accedía al contenido web usando este certificado, se visualizaba una imagen que mediante esteganografía ocultaba a su vez otra imagen con la palabra de paso para solucionar el nivel. Una opción para obtener la imagen final era el uso de OpenStego que aplica RandomLSB, tal y como se había diseñado.

5 comments :

Sito dijo...

Estimado Alejandro.
Se te ha escapado una pequeña "errata" estenografía (=taquigrafia) -> esteganografía.

Enhorabuena por el blog.
Alfonso Muñoz.

Alejandro Ramos dijo...

@Sito, gracias! seguro que lo escribo mal 1.000 veces más... ya podia llamarse de otra formita :-S

Un saludo!

nonroot (c) 2008/2009 dijo...

Como hicieron para reventar ese RC4?, alguien solucionó ese ejercicio?

vierito5 dijo...

@nonroot: modificando el script en perl de ciphertwitter para usarlo de cracker y por diccionario, la clave era "wargames".

Si la clave no era válida el ouput tenía en gran parte caracteres no imprimibles así que para chequear si era un posible password nosotros comprobábamos que el 60% de los caracteres de salida fueran imprimibles y el cracker nos daba un aviso de "posible password" aunque acertó a la primera sin falsos positivos.

Un diccionario creado a partir de las palabras contenidas en el dominio www.securitybydefault.com contiene la clave wargames.

Cucaracha lo sacó de otro modo, con criptoanálisis, asumiendo que el primer mensaje cifrado era el que está en el post de sdb sobre ciphertwitter

Saludos!

nonroot (c) 2008/2009 dijo...

Agrrr..
tenia en el diccionario sacado de sbd, la palabra "wargame". casi, casi.

root@plasma:~/ssl# perl bruterc4.pl -d sbd
Crypto a romper: IJnlPqRrZ6Qr14R+SjNozmeLGrGR4NVfPdA4AqZ9O53G0d+g
El embajador se encuentra en su casa
root@plasma:~/ssl#