Pages

martes, 27 de diciembre de 2011

Write up I Reto Navideño

Write up “I Reto Navideño”
 
Desarrollado por el grupo InterCEPTeam. (22 – 24 Diciembre2011)
Esteban Calle → Ekyp

Como primero agradecer de antemano al grupo InterCEPTeam por el reto, que para ser el primero que hacen me parece que tiene un nivel bastante aceptable :D.
Desde el momento que se abrió el reto al público, http://retonavideno.intercepteam.org/, lo primero con lo que nos encontrábamos era un reto para poder seguir jugando, la pagina comentaba la background de la historia del Reto, así que empecé a leer detenidamente, después de pensar un poco como ingresar al juego me he topado con la ultima linea que decía “Deberás ir a VillaQuien para obtener el diario ” así que pienso en este como un lugar, pero un lugar en la web, así que de esta manera lo primero que intente fue copiar “VillaQuien” en la url, “http://retonavideno.intercepteam.org/VillaQuien” y he aquí el primer reto pasado :D, pero de inmediato mientras abría la pagina en VillaQuien, noté el tiempo un poco lento en cargar la imagen, así que pensé en el hecho de que fuese una imagen con una alta resolución, algo poco común en las paginas Web, después de contemplarla un poco veo que no es de tan alta resolución como pensé así que decidí descargarla (solo por prevención).

Aun después de descargarla y navegar por las fuentes de la pagina, no encuentro mucho (nada) así que decidí analizar la imagen pensando en esteganografia, sin mucho pensarlo y pensando en contar con un poco de suerte antes de hacer un análisis exhaustivo, le he pasado la herramienta foremost # foremost VillaQuien.png, y verifico la salida, # cat output/audit.txt así me he dado cuenta que contiene 2 archivos, un .png y un .rar, (bingo me ahorre el trabajo de analizar con un editor hexadecimal el archivo) así que descomprimo el .rar y observo un archivo de texto plano llamado directorio.txt el cual contenía una gran lista de “hash MD5” eso fue lo primero que pensé así que fui a la pagina http://www.md5decrypter.co.uk/ y poner en tandas de 12 hash MD5 a romper, mientras tanto leía y releía el enunciado del archivo.


Había algo que me sonaba muy familiar a la primera parte del reto, así que después de ver la película, me plantee la posibilidad de que no fuesen hash MD5 si no algo como un “Directorio telefónico” espera... directorio ^^ jeje cierto así que de inmediato puse uno de los “hash” en la url y claro me abrió una casa, siendo esta una pista abro de nuevo las fuentes de la pagina y me encuentro con un comentario diciendo:

hola, ¿Donde encuentro el diario de Cindy Lou? - Busque la biblioteca!”, esto me parecía indicar que así como había una casa con ese “Hash”, habría una biblioteca, después de abrir un par mas de esos me doy cuenta que son exactamente iguales y con el montón de directorios que tenia no me parecía conveniente buscar a mano así que realice un script en python para verificar cada directorio comparando el contenido con el de una que tuviese la casa y si era diferente que me imprimiese cual “hash” Directorio realmente era el de la biblioteca:



He resaltado el único directorio diferente “411fa99540fb9b370f71da9c1cd40d4a”, así que de inmediato he entrado en la biblioteca, encontrándome un formulario de registro, después de ensayar a poner datos falsos, que cumpliera con los requisitos y siempre me saliera “intente de nuevo”, empecé a revisar el código fuente de la pagina y a revisar los javascripts, me di cuenta que pedía unos requisitos en los campos del formulario pero no no era lo interesante, mas abajo estaba una función que no había estudiado en javascript.


Claro que sabia lo que hacia el unescape(), pero no tenia idea alguna de .innerHTML, así que de pare el reto por un rato y a estudiar que hace la función, unas cuantas pruebas y listo a ver que podíamos hacer, así que para ver que ocultaba el unescape() use esta herramienta online mostrándome la fuente de un jsencryption, después de saber que era (y no conocer las bondades del firebug) decidí que montaría esa misma pagina pero de manera local, pero que aun así la procesara el servidor, así que descargue el html, inserte la función que me daba el unescape() y a usarla, al pedirme el password, y habiendo leído el código fuente de la pagina estaba la pista de quien escribió el libro que buscaba osea el diario osea Cindy Lou.


Revelando así la siguiente parte del reto, RecuperandoLaNavidad.php así que como bien lo dijo vamos dentro de la biblioteca a esta parte para poder leer el diario, ya en la siguiente parte encuentro un escrito como un poema, lo único extraño que me pareció fue que estuviese escrito como escriben hoy en día los mas jóvenes entre mayúsculas y minúsculas, pensé que la pista tenia mas que ver por el código fuente de la pagina, aunque no encontré nada, busque por algunas de las lineas en el mar de internet, por si era parte de el escrito del cuento (solo había visto la película varias veces jaja), decidí tratar de encontrar el escrito, aunque lo que encontraba era muy resumido y no contenía nada de algunas de esas lineas, mas me parecían inventadas ya que saltaba en varios puntos de la película, admito que me he quedado en este punto cerca como de 8 a 10 horas sin saber que podía hacer, eso fue parte de la madrugada y de la mañana tanto que hasta me puse a arreglar el celular de mi pareja XD, después de mucho, le doy muchísimas gracias a D14M4NT3, que me ha hecho recordar un par de paginas de las que habíamos hablado hace un tiempo atrás, inmediatamente me puse en busca de las 2 paginas y a buscar por todo su contenido hasta que en la pagina de neobits.org encuentro que hace poco @hecky había publicado un post de una técnica nueva que estaba empezando a usar llamada horrografia, jeje me reí muchísimo rato ya que hace un tiempo atrás @hecky había publicado su post por twitter, lo vi pero realmente me dije no importa, luego lo leo a ver de que se trata y se me olvido leerlo jeje y esto es lo que pasa cuando uno no lee de inmediato las noticias nuevas... jejej así que decidido a recuperar todo ese tiempo puse manos a la obra usando la herramienta online.


Viendo la traducción del texto, inicio la conexión ssh con el servidor y con las credenciales cindy:lou, ya en la consola, lo primero que hago es pararme en la raíz, para verificar a que tengo acceso, después de mirar, lo único que me parecía interesante era un binario en el home de cindy, y como el binario era llamado cuentameMax Max es el nombre del perro del grinch, así que decidí ejecutarlo, curiosamente de inmediato me salio la pista, en el primer intento, pero siendo escéptico decidí ejecutarlo dándome cuenta que lo primero que me salio era la pista.


Según la pista que daban la idea era ingresar por FTP así que lo intente, al FTP hacia la misma ip, al principio intente varios logins como el login anónimo, como cindy:lou, grinch:grinch y así sucesivamente, volví a mira la pista y me percato de que después del att: no había espacio y recordé como estaba escrita las credenciales para el ssh así que lo intente de nuevo al FTP con att:max, ya adentro se encontraba un archivo “Llamado.py” lo descargue y observe, cuando intente ejecutarlo así como estaba osea el original me salia error, así que empecé a investigar los mensajes de error que salia sobretodo por que me decía que no se podía ejecutar por que habían caracteres no imprimibles sera por lo del utf-8?, así que después de un rato me doy cuenta que faltaba definir la codificación del script al inicio de este “# coding: utf-8” así que empecé a corregirlo, y a modificarlo según mis requerimientos, así que al final lo que me quedo fue así.


Entiendo que en la corrección hay algunos fallos de programación, pero así fue de la manera que lo corregí antes de intentar corregir mis propios errores, después de ejecutarlo, veo que empieza una “conversación” entre el servidor y el cliente, a lo cual se me hizo bastante familiar (ya había visto varias veces la película y recordaba la trama, así que no era muy difícil encontrar la parte donde empezaba la misma conversación) así que la busque y empecé a responder las preguntas, el orden era “dichoso”, “cavilaba”, “penso”, si con comillas, ya que sin ellas terminaba la ejecución del cliente, al final, era otra pista, y eso que pensaba que eso era el final por como era la trama pero me equivoque, aunque era el ultimo bocado :D y así dándome la ultima pista, me dirijo a la dirección f6da8f8c63a34ff6c992cb4615a05e8c0 en VillaQuien, osea http://retonavideno.intercepteam.org/VillaQuien/f6da8f8c63a34ff6c92cb4615a05e8c0/ doy mi nick y termino siendo el tercer concursante en salvar la navidad.


Así termina el wargame, felicito de nuevo a InterCEPTeam fue un reto muy bueno esperamos que sigan realizando este tipo de juegos temáticos a lo largo del año, también felicito a las comunidades RIC y Activalink, además de al jugador D14M4NT3, que hasta el momento que estuve informado fueron todos los que salvamos la navidad, y a los que no pudieron se les anima a seguir participando, lo importante es aprender cada ves algo nuevo.

PD: Pido disculpas por la mala presentación del WriteUP y por tanta habladuría, creo que es bueno leer las experiencias completas del autor y aprender de esas experiencias.