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:
flhqfldhvhoduwhghfuhduloxvlrqhvfrqyhqlhqwhvtxhhoqhflrdfhswdrglvsxwdshurghfxbrlqjhqlrjrcdhohvwxglrvrvlqfhjduvhdqwhhokhfkrghtxhwdohvloxvlrqhvvrqrwurvwdqwrvyhorvsdudrfxowduodvsurixqgdvwlqlheodvghorlqvrqgdeoh
- para obtener el texto original:
cienciaeselartedecrearilusionesconvenientesqueelnecioaceptaodisputaperodecuyoingeniogozaelestudiososincegarseanteelhechodequetalesilusionessonotrostantosvelosparaocultarlasprofundastinieblasdeloinsondable, 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.