Tercera parte del CTF “Space Invaders”. Desgraciadamente no he podido continuar usando el script en PHP para resolver esta parte porque no he sido capaz de obtener el valor que necesito dentro de la estructura de datos, así que en este caso he utilizado Outlook 2016 con el software OutlookSpy (http://www.dimastr.com/outspy/home.htm).

El enunciado de esta tercera parte nos dice lo siguiente:

It is believed that the email you examined in Part 1 and Part 2 of this challenge was the last message in a conversation thread that comprises multiple messages. Based on the information available to you, when was the initial message in this conversation thread likely sent?

Enter the timestamp in UTC in the following format: yyyy-mm-dd hh:mm:ss (e.g., 2005-11-20 13:17:48)

Una vez que abrimos el mensaje en Outlook y hacemos clic sobre el botón “iMessage” veremos toda la información interna del fichero incluyendo sus propiedades MAPI. La propiedad que debemos buscar es PR_CONVERSATION_INDEX. Dentro de esta propiedad lo que nos interesa es el campo Value que contiene una cadena hexadecimal de 32 bytes que tenemos que descomponer.

captura pr_conversation_index

De toda esta estructura lo que nos interesa son los primeros doce caracteres a los que debemos añadir cuatro ceros (0000) en la parte posterior quedando el valor 01D5D17A24E40000 y así completar la longitud de 32 bits.

Si os estáis preguntando qué representa este valor pues os cuento que es el número de nanosegundos que han pasado desde el 1 de enero de 1601 que es lo que se conoce como unidades FILETIME (https://docs.microsoft.com/es-es/office/client-developer/outlook/mapi/filetime).

Lo más rápido para convertir esto a una fecha “humana” es utilizar un conversor de FILETIME como el de la página https://www.epochconverter.com/ldap. Tras convertirlo nos queda la fecha 22 de enero de 2020 a las 23:17:41 que es la respuesta que buscamos. Tan solo queda formatearlo tal y como se nos indica, con lo que la respuesta final es 2020-01-22 23:17:41.