<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet href="/feed_style.xsl" type="text/xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="https://www.rssboard.org/media-rss">
  <channel>
    <title>CTF on El blog de Ignacio</title>
    <link>https://www.igalvan.es/tags/ctf/</link>
    <description>Recent content in CTF on El blog de Ignacio</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>es</language>
    <copyright>Ignacio Galván Vitas</copyright>
    <lastBuildDate>Sat, 02 Jan 2021 12:00:00 +0100</lastBuildDate><atom:link href="https://www.igalvan.es/tags/ctf/index.xml" rel="self" type="application/rss+xml" /><icon>https://www.igalvan.es/logo.svg</icon>
    
    
    <item>
      <title>CTF- Metaspike - Space invaders (Parte 4)</title>
      <link>https://www.igalvan.es/posts/cft-space-invaders-parte-4/</link>
      <pubDate>Sat, 02 Jan 2021 12:00:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/cft-space-invaders-parte-4/</guid>
      <description><![CDATA[<p>Cuarta y última parte del CTF &ldquo;Space Invaders&rdquo;.</p>
<p>El enunciado de esta cuarta parte nos dice lo siguiente:</p>
<blockquote>
<p>Based on the information available to you, what is the maximum amount of time Vivian Alyse could have spent composing the final message in the thread that you examined? That is, time elapsed from the moment she pressed the &ldquo;Reply&rdquo; or &ldquo;Forward&rdquo; button, to the moment she hit &ldquo;Send&rdquo;. Assume that the following is true:</p>
<pre><code>Vivian used Outlook to compose and send the message
All of the computers involved in the email conversation keep perfectly accurate time
</code></pre>
<p>Enter the duration in minutes rounding up. For example, enter 46 for 45 minutes and 31 seconds.</p>
</blockquote>
<p>Este es bastante fácil. Si lo retomamos dónde lo dejamos en el artículo anterior, en la propiedad <code>PR_CONVERSATION_INDEX</code> tenemos unos valores llamados <code>TimeDelta</code> y de estos nos interesa el segundo que es la última respuesta a este correo.</p>
<p>![captura timedelta pr_conversation_index]({{ site.url }}/assets/timedelta_cft_space_invaders.png)</p>
<p>El valor <code>0x00000AE9</code> lo tenemos que convertir a decimal y posteriormente a minutos quedando que son 1 minuto y 47 segundos, que redondeando hacia arriba como nos pide el enunciado nos queda el valor de <strong>2 minutos</strong>. :checkered_flag:</p>
<p>Y con esto ya hemos terminado este reto. :tada:</p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>CTF- Metaspike - Space invaders (Parte 3)</title>
      <link>https://www.igalvan.es/posts/cft-space-invaders-parte-3/</link>
      <pubDate>Fri, 01 Jan 2021 12:00:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/cft-space-invaders-parte-3/</guid>
      <description><![CDATA[<p>Tercera parte del CTF &ldquo;Space Invaders&rdquo;. 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 (<a href="http://www.dimastr.com/outspy/home.htm)">http://www.dimastr.com/outspy/home.htm)</a>.</p>
<p>El enunciado de esta tercera parte nos dice lo siguiente:</p>
<blockquote>
<p>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?</p>
<p>Enter the timestamp in UTC in the following format: yyyy-mm-dd hh:mm:ss (e.g., 2005-11-20 13:17:48)</p>
</blockquote>
<p>Una vez que abrimos el mensaje en Outlook y hacemos clic sobre el botón &ldquo;iMessage&rdquo; veremos toda la información interna del fichero incluyendo sus propiedades MAPI. La propiedad que debemos buscar es <code>PR_CONVERSATION_INDEX</code>. Dentro de esta propiedad lo que nos interesa es el campo <code>Value</code> que contiene una cadena hexadecimal de 32 bytes que tenemos que descomponer.</p>
<p>![captura pr_conversation_index]({{ site.url }}/assets/filetime_cft_space_invaders.png)</p>
<p>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 <code>01D5D17A24E40000</code> y así completar la longitud de 32 bits.</p>
<p>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 (<a href="https://docs.microsoft.com/es-es/office/client-developer/outlook/mapi/filetime)">https://docs.microsoft.com/es-es/office/client-developer/outlook/mapi/filetime)</a>.</p>
<p>Lo más rápido para convertir esto a una fecha &ldquo;humana&rdquo; es utilizar un conversor de FILETIME como el de la página <a href="https://www.epochconverter.com/ldap">https://www.epochconverter.com/ldap</a>. 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 <strong>la respuesta final es 2020-01-22 23:17:41</strong>.</p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>CTF- Metaspike - Space invaders (Parte 2)</title>
      <link>https://www.igalvan.es/posts/cft-space-invaders-parte-2/</link>
      <pubDate>Wed, 30 Dec 2020 16:15:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/cft-space-invaders-parte-2/</guid>
      <description><![CDATA[<p>Segunda parte del CTF &ldquo;Space Invaders&rdquo;. Ya os avanzo que este va a ser muy corto ya que prácticamente he respondido a esta pregunta en el script de la primera.</p>
<p>El enunciado de esta segunda parte nos dice lo siguiente:</p>
<blockquote>
<p>Regardless of whether you believe it is legitimate or fake, what is the last modification timestamp you were able to find for the attachment in Part 1?</p>
<p>Enter the timestamp in UTC with 0.1 microsecond precision in the following format: yyyy-mm-dd hh:mm:ss.fffffff (e.g., 2005-11-20 13:17:48.1234567)</p>
</blockquote>
<p>Recuperamos la salida del script de la primera parte con el siguiente contenido:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>┌──<span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop/msgopen<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ php ex1.php
</span></span><span style="display:flex;"><span>Message Creation time: 1607983178 <span style="color:#f92672">=</span>&gt; 2020-12-14 16:59:38.000000 EST
</span></span><span style="display:flex;"><span>Message Last modification time: 1607983178 <span style="color:#f92672">=</span>&gt; 2020-12-14, 16:59:38.000000 EST
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Attachment: FC_4fca-8f34_Specs.txt
</span></span><span style="display:flex;"><span>Attachment creation time: 1591119805 <span style="color:#f92672">=</span>&gt; 2020-06-02 13:43:25.000000 EDT
</span></span><span style="display:flex;"><span>Attachment last modification time: 1591385420 <span style="color:#f92672">=</span>&gt; 2020-06-05 15:30:20.000000 EDT
</span></span><span style="display:flex;"><span>┌──<span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop/msgopen<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ 
</span></span></code></pre></div><p>Cuidado con el enunciado que nos pide que demos la respuesta en zona horaria UTC y nosotros tenemos la respuesta en EST/EDT. Podríamos modificar el script anterior para que nos muestre las fechas en UTC pero es mucho más rápido &ldquo;googlear&rdquo; un poco y averiguar que la diferencia horaria es de 4 horas hacia delante desde EST a UTC y sumarlas obteniendo <strong>2020-06-05 19:30:20.0000000</strong> que es la respuesta solicitada.</p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>CTF- Metaspike - Space invaders (Parte 1)</title>
      <link>https://www.igalvan.es/posts/cft-space-invaders-parte-1/</link>
      <pubDate>Wed, 30 Dec 2020 16:00:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/cft-space-invaders-parte-1/</guid>
      <description><![CDATA[<p>Segundo CTF sobre correo electrónico de Metaspike, en este caso llamado &ldquo;Space Invaders&rdquo;. El reto consta de cuatro partes que iré publicando en sucesivos artículos.</p>
<p>El enunciado de esta primera parte nos dice lo siguiente:</p>
<blockquote>
<p>You are being asked to examine an email1 between two colleagues within the same corporation. The email contains an important business document known to have been created and maintained on a volume formatted with the NT File System (NTFS).</p>
<p>Based on your examination of the email, are the creation and last modification timestamps of the attachment more likely to be legitimate or fake? Enter L for legitimate, F for fake.</p>
<p>1SHA-256: FB42631EC43891EE2D877E02D911 A1FFB95E9B31825986F09DEFE8B9A55F2614</p>
</blockquote>
<p>El primer paso es descargarse el fichero en formato msg. Como siempre usamos el comando <code>sha256sum</code> y comprobamos que el &ldquo;hash&rdquo; coincide.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>──<span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop/msgopen<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ sha256sum FW__New_Finite_Curvature_Product_Line_Specs.msg                                                 <span style="color:#ae81ff">127</span> ⨯
</span></span><span style="display:flex;"><span>fb42631ec43891ee2d877e02d911a1ffb95e9b31825986f09defe8b9a55f2614  FW__New_Finite_Curvature_Product_Line_Specs.msg
</span></span><span style="display:flex;"><span>                                                                                                                    
</span></span><span style="display:flex;"><span>┌──<span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop/msgopen<span style="color:#f92672">]</span>
</span></span></code></pre></div><p>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:</p>
<p>Aquí lo normal sería utilizar alguna herramienta para Windows y poder husmear dentro de las propiedades MAPI del fichero pero como a mí me gusta hacer las cosas al &ldquo;estilo software libre&rdquo; voy a usar una librería de PHP llamada <code>hfig/mapi</code> (<a href="https://github.com/hfig/MAPI">https://github.com/hfig/MAPI</a>) en un pequeño script. Aquí os dejo su contenido:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-php" data-lang="php"><span style="display:flex;"><span><span style="color:#f92672">&lt;?</span><span style="color:#a6e22e">php</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">require</span> <span style="color:#e6db74">&#39;vendor/autoload.php&#39;</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">use</span> <span style="color:#a6e22e">Hfig\MAPI</span>;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">use</span> <span style="color:#a6e22e">Hfig\MAPI\OLE\Pear</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// message parsing and file IO are kept separate
</span></span></span><span style="display:flex;"><span>$messageFactory <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">MAPI\MapiMessageFactory</span>();
</span></span><span style="display:flex;"><span>$documentFactory <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">Pear\DocumentFactory</span>(); 
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>$ole <span style="color:#f92672">=</span> $documentFactory<span style="color:#f92672">-&gt;</span><span style="color:#a6e22e">createFromFile</span>(<span style="color:#e6db74">&#39;FW__New_Finite_Curvature_Product_Line_Specs.msg&#39;</span>);
</span></span><span style="display:flex;"><span>$message <span style="color:#f92672">=</span> $messageFactory<span style="color:#f92672">-&gt;</span><span style="color:#a6e22e">parseMessage</span>($ole);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>$dateToPrint <span style="color:#f92672">=</span> <span style="color:#a6e22e">date_create</span>();
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">date_timestamp_set</span>($dateToPrint, $message<span style="color:#f92672">-&gt;</span><span style="color:#a6e22e">properties</span>[<span style="color:#e6db74">&#39;creation_time&#39;</span>]);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">echo</span> <span style="color:#e6db74">&#39;Message Creation time: &#39;</span>, <span style="color:#a6e22e">date_format</span>($dateToPrint,<span style="color:#e6db74">&#39;U =&gt; Y-m-d H:i:s.u T&#39;</span>), <span style="color:#e6db74">&#34;</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">&#34;</span>;
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">date_timestamp_set</span>($dateToPrint, $message<span style="color:#f92672">-&gt;</span><span style="color:#a6e22e">properties</span>[<span style="color:#e6db74">&#39;last_modification_time&#39;</span>]);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">echo</span> <span style="color:#e6db74">&#39;Message Last modification time: &#39;</span>, <span style="color:#a6e22e">date_format</span>($dateToPrint, <span style="color:#e6db74">&#39;U =&gt; Y-m-d, H:i:s.u T&#39;</span>), <span style="color:#e6db74">&#34;</span><span style="color:#ae81ff">\n\n</span><span style="color:#e6db74">&#34;</span>;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">foreach</span> ($message<span style="color:#f92672">-&gt;</span><span style="color:#a6e22e">getAttachments</span>() <span style="color:#66d9ef">as</span> $attachment) {
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">echo</span> <span style="color:#e6db74">&#39;Attachment: &#39;</span>, $attachment<span style="color:#f92672">-&gt;</span><span style="color:#a6e22e">properties</span>[<span style="color:#e6db74">&#39;display_name&#39;</span>], <span style="color:#e6db74">&#34;</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">&#34;</span>;
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">date_timestamp_set</span>($dateToPrint, $attachment<span style="color:#f92672">-&gt;</span><span style="color:#a6e22e">properties</span>[<span style="color:#e6db74">&#39;creation_time&#39;</span>]);
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">echo</span> <span style="color:#e6db74">&#39;Attachment creation time: &#39;</span>, <span style="color:#a6e22e">date_format</span>($dateToPrint,<span style="color:#e6db74">&#39;U =&gt; Y-m-d H:i:s.u T&#39;</span>), <span style="color:#e6db74">&#34;</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">&#34;</span>;
</span></span><span style="display:flex;"><span>  <span style="color:#a6e22e">date_timestamp_set</span>($dateToPrint, $attachment<span style="color:#f92672">-&gt;</span><span style="color:#a6e22e">properties</span>[<span style="color:#e6db74">&#39;last_modification_time&#39;</span>]);
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">echo</span> <span style="color:#e6db74">&#39;Attachment last modification time: &#39;</span>, <span style="color:#a6e22e">date_format</span>($dateToPrint,<span style="color:#e6db74">&#39;U =&gt; Y-m-d H:i:s.u T&#39;</span>), <span style="color:#e6db74">&#34;</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">&#34;</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">?&gt;</span><span style="color:#960050;background-color:#1e0010">
</span></span></span></code></pre></div><p>Tras ejecutarlo la salida que muestra es la siguiente:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>┌──<span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop/msgopen<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ php ex1.php
</span></span><span style="display:flex;"><span>Message Creation time: 1607983178 <span style="color:#f92672">=</span>&gt; 2020-12-14 16:59:38.000000 EST
</span></span><span style="display:flex;"><span>Message Last modification time: 1607983178 <span style="color:#f92672">=</span>&gt; 2020-12-14, 16:59:38.000000 EST
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Attachment: FC_4fca-8f34_Specs.txt
</span></span><span style="display:flex;"><span>Attachment creation time: 1591119805 <span style="color:#f92672">=</span>&gt; 2020-06-02 13:43:25.000000 EDT
</span></span><span style="display:flex;"><span>Attachment last modification time: 1591385420 <span style="color:#f92672">=</span>&gt; 2020-06-05 15:30:20.000000 EDT
</span></span><span style="display:flex;"><span>┌──<span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop/msgopen<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ 
</span></span></code></pre></div><p>Aunque no lo pueda demostrar fehacientemente, <strong>es bastante probable que se hayan modificado las fechas de creación y modificación</strong> de este correo y de sus adjuntos porque es muy poco probable que todas estas acciones se realicen justo en el microsegundo cero.</p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>CTF- Metaspike - It&#39;s about time (Parte 2)</title>
      <link>https://www.igalvan.es/posts/cft-its-about-time-parte-2/</link>
      <pubDate>Tue, 29 Dec 2020 15:10:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/cft-its-about-time-parte-2/</guid>
      <description><![CDATA[<p>Tal y como os prometí, aquí os dejo la segunda parte de este CTF.</p>
<p>El enunciado nos dice lo siguiente:</p>
<blockquote>
<p>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.</p>
<p>You will be examining the same email1. Included here again for convenience.</p>
<p>1SHA-256: 42B6FD78DAF38C03E1A744ECA1A0CB 44F6859AB892E0F32B01763EFD835B5648</p>
<p>Enter the timestamp in UTC in the following format: yyyy-mm-dd hh:mm (e.g., 2005-11-20 13:17)</p>
</blockquote>
<p>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 <code>sha256sum</code> y comprobamos que el &ldquo;hash&rdquo; coincide.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ sha256sum Draft_Agreement.eml 
</span></span><span style="display:flex;"><span>42b6fd78daf38c03e1a744eca1a0cb44f6859ab892e0f32b01763efd835b5648  Draft_Agreement.eml
</span></span><span style="display:flex;"><span>                                                                           
</span></span><span style="display:flex;"><span>┌──<span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ 
</span></span></code></pre></div><p>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:</p>
<p>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 &ldquo;Agreement_v2.pdf&rdquo;.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>──<span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ grep <span style="color:#e6db74">&#39;Content-&#39;</span> Draft_Agreement.eml                              <span style="color:#ae81ff">130</span> ⨯
</span></span><span style="display:flex;"><span>Content-Type: multipart/mixed; 
</span></span><span style="display:flex;"><span>Content-Length: <span style="color:#ae81ff">70085</span>
</span></span><span style="display:flex;"><span>Content-Type: multipart/alternative; 
</span></span><span style="display:flex;"><span>Content-Type: text/plain; charset<span style="color:#f92672">=</span>UTF-8
</span></span><span style="display:flex;"><span>Content-Transfer-Encoding: 7bit
</span></span><span style="display:flex;"><span>Content-Type: text/html; charset<span style="color:#f92672">=</span>UTF-8
</span></span><span style="display:flex;"><span>Content-Transfer-Encoding: 7bit
</span></span><span style="display:flex;"><span>Content-Type: application/pdf
</span></span><span style="display:flex;"><span>Content-Transfer-Encoding: base64
</span></span><span style="display:flex;"><span>Content-Disposition: attachment; filename<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;Agreement_v2.pdf&#34;</span>
</span></span><span style="display:flex;"><span>Content-ID: &lt;bd1c0c4c-3c0e-20e0-f6b2-5bc858aab23a@yahoo.com&gt;
</span></span></code></pre></div><p>Vamos a separarlo utilizando el comando <code>munpack</code> para poder manipularlo. Por cierto, en Kali no viene instalado por defecto y es necesario instalar el paquete <code>mpack</code>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>──<span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ sudo munpack Draft_Agreement.eml
</span></span><span style="display:flex;"><span>tempdesc.txt: File exists
</span></span><span style="display:flex;"><span><span style="color:#f92672">)</span>greement_v2.pdf.1 <span style="color:#f92672">(</span>application/pdf
</span></span><span style="display:flex;"><span>                                                                           
</span></span><span style="display:flex;"><span>┌──<span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ 
</span></span></code></pre></div><p>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 &ldquo;X-Mailer&rdquo;? 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 <code>pdf-parser</code>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ pdf-parser Agreement_v2.pdf|grep -B10 <span style="color:#ae81ff">2020</span>
</span></span><span style="display:flex;"><span> Type: /Annot
</span></span><span style="display:flex;"><span> Referencing: <span style="color:#ae81ff">46</span> <span style="color:#ae81ff">0</span> R, <span style="color:#ae81ff">9</span> <span style="color:#ae81ff">0</span> R
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  &lt;&lt;
</span></span><span style="display:flex;"><span>    /AP
</span></span><span style="display:flex;"><span>      &lt;&lt;
</span></span><span style="display:flex;"><span>        /N <span style="color:#ae81ff">46</span> <span style="color:#ae81ff">0</span> R
</span></span><span style="display:flex;"><span>      &gt;&gt;
</span></span><span style="display:flex;"><span>    /C <span style="color:#f92672">[</span>1.0 1.0 1.0<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>    /Contents <span style="color:#f92672">(</span>Dean Vinny<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    /CreationDate <span style="color:#e6db74">&#34;(D:20201206151800-08&#39;00&#39;)&#34;</span>
</span></span><span style="display:flex;"><span>    /DA <span style="color:#f92672">(</span>0.898 0.1333 0.2157 rg /Helv <span style="color:#ae81ff">12</span> Tf<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    /DS <span style="color:#f92672">(</span>font: Helvetica,sans-serif 12.0pt; text-align:left; color:#E52237 <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>    /F <span style="color:#ae81ff">4</span>
</span></span><span style="display:flex;"><span>    /M <span style="color:#e6db74">&#34;(D:20201206151937-08&#39;00&#39;)&#34;</span>
</span></span></code></pre></div><p>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, <strong>el 6 de diciembre de 2020 a las 23:19</strong>.</p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>CTF- Metaspike - It&#39;s about time (Parte 1)</title>
      <link>https://www.igalvan.es/posts/cft-its-about-time-parte-1/</link>
      <pubDate>Mon, 28 Dec 2020 19:45:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/cft-its-about-time-parte-1/</guid>
      <description><![CDATA[<p>Aquí va como resolver un CTF sencillo sobre un mensaje de correo electrónico. Tiene dos preguntas sencillas que no requieren mucho conocimiento técnico pero sí ser un poco avispado. En este artículo resolveré la primera y en breve publicaré la segunda parte. Como siempre yo voy a usar una máquina virtual con Kali Linux básicamente para no ejecutar nada en mi equipo real y menos si proviene de un CTF. :stuck_out_tongue_winking_eye:</p>
<p>El enunciado nos dice lo siguiente:</p>
<blockquote>
<p>You have received the email1 below in connection with a legal action. The timing of the email is critical. Examine the email and determine if it is more likely to be legitimate or fake.</p>
<p>Enter L for legitimate, F for fake. More to come based on your answer.</p>
<p>SHA-256: 42B6FD78DAF38C03E1A744ECA1A0CB 44F6859AB892E0F32B01763EFD835B5648</p>
</blockquote>
<p>Si nos descargamos el fichero EML, el primer paso como siempre es comprobar la suma SHA256. Para ello usamos el comando <code>sha256sum</code> y comprobamos que el &ldquo;hash&rdquo; coincide.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ sha256sum Draft_Agreement.eml 
</span></span><span style="display:flex;"><span>42b6fd78daf38c03e1a744eca1a0cb44f6859ab892e0f32b01763efd835b5648  Draft_Agreement.eml
</span></span><span style="display:flex;"><span>                                                                           
</span></span><span style="display:flex;"><span>┌──<span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ 
</span></span></code></pre></div><p>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:</p>
<p>Yo prefiero usar un editor de textos para abrir los ficheros EML y así poder revisar tranquilamente su contenido. En este artículo voy a utilizar el comando <code>grep</code> para simplificar su redacción.</p>
<p>A primera vista las cabeceras que contienen fechas parecen legitimas y están sincronizadas por lo que el correo parece provenir del 7 de marzo de 2016, pero aquí tiene que haber algún truco, no me creo que sea tan sencillo.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>──<span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ grep Mar Draft_Agreement.eml
</span></span><span style="display:flex;"><span>        Mon, <span style="color:#ae81ff">7</span> Mar <span style="color:#ae81ff">2016</span> 14:38:34 -0800 <span style="color:#f92672">(</span>PST<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>        Mon, <span style="color:#ae81ff">07</span> Mar <span style="color:#ae81ff">2016</span> 14:38:34 -0800 <span style="color:#f92672">(</span>PST<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>        Mon, <span style="color:#ae81ff">07</span> Mar <span style="color:#ae81ff">2016</span> 14:38:34 -0800 <span style="color:#f92672">(</span>PST<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>Received: from sonic.gate.mail.ne1.yahoo.com by sonic306.consmr.mail.bf2.yahoo.com with HTTP; Mon, <span style="color:#ae81ff">7</span> Mar <span style="color:#ae81ff">2016</span> 22:38:33 +0000
</span></span><span style="display:flex;"><span>Date: Mon, <span style="color:#ae81ff">7</span> Mar <span style="color:#ae81ff">2016</span> 22:38:31 +0000 <span style="color:#f92672">(</span>UTC<span style="color:#f92672">)</span>
</span></span></code></pre></div><p>Comprobando el resto de cabeceras vemos que hay una interesante, la que se corresponde con &ldquo;X-Mailer&rdquo; que habla de la versión 87.0.4280.67  de Chrome y de Edge basado en Chromium tal y como se puede ver en la siguiente captura.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>┌──<span style="color:#f92672">(</span>kali㉿kali<span style="color:#f92672">)</span>-<span style="color:#f92672">[</span>~/Desktop<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>└─$ grep <span style="color:#e6db74">&#39;X-Mailer&#39;</span> Draft_Agreement.eml        
</span></span><span style="display:flex;"><span>X-Mailer: WebService/1.1.17111 YMailNorrin Mozilla/5.0 <span style="color:#f92672">(</span>Windows NT 10.0; Win64; x64<span style="color:#f92672">)</span> AppleWebKit/537.36 <span style="color:#f92672">(</span>KHTML, like Gecko<span style="color:#f92672">)</span> Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.55
</span></span></code></pre></div><p>Aquí hay algo raro. Si buscamos en Google podemos confirmar que esa versión de Chrome es del 17 de noviembre de 2020, con lo que es imposible que el correo sea del año 2016.</p>
<p><img src="%7B%7Bsite.url%7D%7D/assets/fecha_salida_chrome.png" alt="fecha_salida_chrome.png"></p>
<p>¡Bingo! Ya tenemos la prueba para demostrar que la fecha del correo fue alterada.</p>
]]></description>
      
    </item>
    
    
  </channel>
</rss>
