miércoles, 8 de abril de 2015

Cripto-Reto de Criptored

El pasado 25 de marzo de 2015 desde la web http://www.criptored.upm.es/ de la Universidad Politécnica de Madrid se propuso un criptoreto. Un criptoreto es un reto hacking "controlado", en el que se trata de solucionar o investigar (cada uno hace lo que puede) información oculta que ha podido ser usada para trasmitir un mensaje o datos dentro de un contenedor o fichero aparentemente normal y que a la vista no se sale de los estándares.

Este criptoreto lo propuso el Dr. Alfonso Muñoz y fue descargado 1900 veces (1900 almas luchando por conseguirlo). La historia introductoria te metía de lleno en el mundo del espionaje, y se decía que tras un registro de unos discos duros se identificaba un fichero sospechoso de contener información oculta que había que intentar descifrar. La imagen en concreto era esta:
Figura 1: imagen a estudiar en el criptoreto
Se dio de tiempo hasta el 1 de mayo de 2015, pero el 6 de abril de 2015 Dani Torregrosa a los 11 días y 13 horas de ser publicado lo conseguía. Utilizó varias técnicas de "desencriptado" y estegoanálisis, como estudiar un cifrado clásico césar, uso de openstego, uso de korcami en python, leyó y editó código en hexadecimal y hasta probó con fuerza bruta. Al final de 4 procesos distintos en los que progresivamente ibas avanzando con nuevas imágenes y nuevas pistas llego a dar con el dato oculto al mas puro estilo de la informática forense.

Algunas de las fases del reto fueron:

  • descifrar el siguiente texto:

flhqfldhvhoduwhghfuhduloxvlrqhvfrqyhql
hqwhvtxhhoqhflrdfhswdrglvsxwdshurghfx
brlqjhqlrjrcdhohvwxglrvrvlqfhjduvhdqwhh
okhfkrghtxhwdohvloxvlrqhvvrqrwurvwdq
wrvyhorvsdudrfxowduodvsurixqgdvwlqlh
eodvghorlqvrqgdeoh
  • para obtener el texto original: 
cienciaeselartedecrearilusionesconveni
entesqueelnecioaceptaodisputaperodecu
yoingeniogozaelestudiososincegarseantee
lhechodequetalesilusionessonotrostan
tosvelosparaocultarlasprofundastinie
blasdeloinsondable
, frase de Carl Gustav Jung.

  • uso de python para calcular el IV adecuado, y cifrando con AES:

import struct
from Crypto.Cipher import AES
data = open('dragon.png').read()
def xor(a,b):
 return ''.join([chr(ord(i)^ord(j)) for i,j in zip(a,b)] )
def corkami(header):
 cipher = AES.new("alanturingcrypto", AES.MODE_CBC, "\x00"*16)
 h1 = cipher.decrypt(header)
 iv = xor(h1, data[:16])
 cipher = AES.new("alanturingcrypto", AES.MODE_CBC, iv)
 a = cipher.encrypt(data)
 return a
data2 = corkami("\x89PNG\r\n\x1a\n" + struct.pack(">I", 191600) + "aaaa")
open('dragon2.png','wb').write(data2)

  •  análisis con openstego de la imagen obtenida:
Figura 2: imagen obtenida en el tercer paso
Y finalmente obtención de la información final. He obviado algunos pasos y la respuesta final por si hay alguien que quiere seguir intentándolo para no aguarle la sensación de haberlo conseguido.

El premio (suculento y deseado) era una plaza gratuita para la cuarta edición del curso Especialización en Seguridad Informática y Ciberdefensa de la red temática Criptored, con 40 horas y que se impartirá online del 4 de mayo al 4 de junio de 2015, valorado en más de 800 euros, así como su reconocimiento en los canales habituales utilizados por dicha red temática.

Los módulos y profesores de dicho curso serán:

  • Módulo 1: Ciberguerra y Ciberarmas: Malware dirigido, 0 days y RATs. (2 horas). Profesor D. David Barroso (11Paths)
  • Módulo 2: Atacando infraestructuras. OSINT y explotación (12 horas). Técnicas y herramientas OSINT (2 horas). Profesor Dr. Chema Alonso (11Paths); Intrusión en redes y sistemas. Metasploit Framework (4 horas). Profesor D. Alejandro Ramos (SecurityBydefault); Vulneración de mecanismos de identificación y autenticación (2 horas). Profesor D. Alejandro Ramos (SecurityBydefault); Intrusión en redes VoIP (2 horas). Profesor D. José Luis Verdeguer (ZoonSuite); Evasión de medidas de protección en Windows (2 horas). Profesor D. Javier Rascón (Hispasec)
  • Módulo 3: Protección de infraestructuras. Contramedidas (12 horas). Fortificación de sistemas Windows. Contramedidas (2 horas). Profesor D. Sergio de los Santos (11Paths); Análisis forense en sistemas Windows. Detectando intrusiones (6 horas). Profesor D. Pedro Sánchez (conexioninversa); Protección de infraestructuras críticas. Sistemas SCADA (2 horas). Profesor Dr. Antonio Guzmán (11Paths); Protección de datos y comunicaciones. Criptografía/Esteganografía (2 horas). Profesor Dr. Alfonso Muñoz (Criptored)
  • Módulo 4: Protección de comunicaciones en redes móviles (8 horas). Protección de comunicaciones en redes móviles: Bluetooth y Wifi (6 horas). Profesor D. Raúl Siles (Dinosec); Protección de comunicaciones en redes móviles: GSM, GPRS, 3G (2 horas). Profesor D. David Pérez y D. José Picó (Layakk)
  • Módulo 5: Seguridad en aplicaciones móviles (6 horas). Riesgos de seguridad con dispositivos móviles: IOS y Android (4 horas). Profesor D. Pablo González (FluProject); Malware en aplicaciones Android. Peligros y contramedidas (2 horas). Profesor D. Sergio de los Santos (11Paths).
Si estáis interesados podéis contactar con uno de los directores del curso Jorge Ramió en el correo jramio@eui.upm.es o bien al correo de Eventos Creativos info@eventos-creativos.es.es.


Menudo curso !!! y fenómenos de profesores que lo imparten!!! Lástima no haberlo conseguido. 

Desde aquí queremos felicitar a Dani Torregrosa, grande!!! y esperamos ansiosos el siguiente criptereto.

Saludos!

No hay comentarios:

Publicar un comentario

Puedes dejar tus comentarios, sugerencias y críticas, pero los mensajes PUBLICITARIOS, OFENSIVOS o DESTRUCTIVOS serán marcados como spam y eliminados.