Tal y como os prometí, aquí os dejo la segunda parte de este CTF.

El enunciado nos dice lo siguiente:

Congrats on making that determination! You are now asked to take this a step further, and determine the earliest date and time the email could have been sent based on the timing information you can locate within the file.

You will be examining the same email1. Included here again for convenience.

1SHA-256: 42B6FD78DAF38C03E1A744ECA1A0CB 44F6859AB892E0F32B01763EFD835B5648

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

Ya nos habíamos descargado el fichero pero si no lo tenemos lo podemos descargar otra vez desde este mismo reto. Como siempre usamos el comando sha256sum y comprobamos que el “hash” coincide.

(kali㉿kali)-[~/Desktop]
└─$ sha256sum Draft_Agreement.eml 
42b6fd78daf38c03e1a744eca1a0cb44f6859ab892e0f32b01763efd835b5648  Draft_Agreement.eml
                                                                           
┌──(kali㉿kali)-[~/Desktop]
└─$ 

El siguiente paso lógico sería pasar por VirusTotal el fichero para ver si tiene algo raro dentro pero vamos a omitir este paso porque ya sabemos que es algo que todos hacemos antes de abrir un fichero. :wink:

Nos están pidiendo la primera fecha en la que el correo pudo ser enviada. Como ya sabemos del artículo anterior no es posible que podamos obtener ese dato de las cabeceras del correo electrónico, pero si recordáis en el correo había un fichero adjunto llamado “Agreement_v2.pdf”.

──(kali㉿kali)-[~/Desktop]
└─$ grep 'Content-' Draft_Agreement.eml                              130 ⨯
Content-Type: multipart/mixed; 
Content-Length: 70085
Content-Type: multipart/alternative; 
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-Type: application/pdf
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Agreement_v2.pdf"
Content-ID: <bd1c0c4c-3c0e-20e0-f6b2-5bc858aab23a@yahoo.com>

Vamos a separarlo utilizando el comando munpack para poder manipularlo. Por cierto, en Kali no viene instalado por defecto y es necesario instalar el paquete mpack.

──(kali㉿kali)-[~/Desktop]
└─$ sudo munpack Draft_Agreement.eml
tempdesc.txt: File exists
)greement_v2.pdf.1 (application/pdf
                                                                           
┌──(kali㉿kali)-[~/Desktop]
└─$ 

Yo no tengo ganas de abrir el fichero porque ya sabemos las cosas malas que se pueden meter en un PDF y además dudo que sea tan sencillo de resolver como visualizar el fichero. Sin embargo, sí hay algo que sabemos de antes que nos puede ayudar. ¿Recordáis la fecha de la versión de Chrome que vimos en la cabecera “X-Mailer”? Pues vamos a rastrear el fichero PDF del adjunto para ver si podemos obtener cadenas de texto que hagan referencia al año 2020 mediante el comando pdf-parser.

(kali㉿kali)-[~/Desktop]
└─$ pdf-parser Agreement_v2.pdf|grep -B10 2020
 Type: /Annot
 Referencing: 46 0 R, 9 0 R

  <<
    /AP
      <<
        /N 46 0 R
      >>
    /C [1.0 1.0 1.0]
    /Contents (Dean Vinny)
    /CreationDate "(D:20201206151800-08'00')"
    /DA (0.898 0.1333 0.2157 rg /Helv 12 Tf)
    /DS (font: Helvetica,sans-serif 12.0pt; text-align:left; color:#E52237 )
    /F 4
    /M "(D:20201206151937-08'00')"

Aquí tenemos dos fechas muy interesantes. Si nos fijamos en el resultado se ve el contenido de una anotación cuyo contenido es el nombre de la persona y además dos fechas casi seguidas. La primera se corresponde con la fecha de creación de la anotación y la segunda con la fecha de la última modificación de esa anotación. Vamos a coger la segunda fecha porque parece difícil que se puede enviar un fichero antes de terminar de editarlo. En esta fecha que fijarse que es necesario calcular la diferencia horaria para sumarla a la hora y con eso ya tendríamos la respuesta, el 6 de diciembre de 2020 a las 23:19.