<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Seguridad Informática Colombiana</title>
	<atom:link href="http://www.sinfocol.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sinfocol.org</link>
	<description>Simplemente otro Blog WordPress</description>
	<pubDate>Thu, 07 Feb 2019 04:07:57 +0000</pubDate>
	<generator>http://wordpress.org/</generator>
	<language>en</language>
			<item>
		<title>DNS Flag Day Colombia</title>
		<link>http://www.sinfocol.org/2019/02/dns-flag-day-colombia/</link>
		<comments>http://www.sinfocol.org/2019/02/dns-flag-day-colombia/#comments</comments>
		<pubDate>Fri, 01 Feb 2019 05:14:33 +0000</pubDate>
		<dc:creator>Daniel Correa</dc:creator>
		
		<category><![CDATA[Seguridad]]></category>

		<category><![CDATA[Colombia]]></category>

		<category><![CDATA[DNS]]></category>

		<guid isPermaLink="false">http://www.sinfocol.org/?p=1165</guid>
		<description><![CDATA[Los dominios colombianos (mil.co, gov.co, edu.co, org.co, com.co, net.co [+] nuevo) están preparados para el día del cambio mundial en los sistemas DNS que entrará a regir a partir del primero de febrero de 2019 y el cual es soportado por grandes servicios de DNS gratuitos como los ofrecidos por Google, Cisco OpenDNS, y CloudFlare.
Existe [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Los dominios colombianos (mil.co, gov.co, edu.co, org.co, <strong>com.co, net.co [+] nuevo</strong>) están preparados para el día del <a href="https://dnsflagday.net/index-es.html" target="_blank">cambio mundial en los sistemas DNS</a> que entrará a regir a partir del primero de febrero de 2019 y el cual es soportado por grandes servicios de DNS gratuitos como los ofrecidos por Google, Cisco OpenDNS, y CloudFlare.</p>
<p style="text-align: justify;">Existe sin embargo una oportunidad de mejora en algunos de estos dominios, que según ciertas condiciones, podrán presentar problemas de servicios como interrupción en el acceso a sitios web y fallas en los sistemas de correo.</p>
<p style="text-align: justify;">El análisis fue realizado sobre un total de <del datetime="2019-02-07T03:57:42+00:00">16.470</del> 176.868 dominios colombianos, en donde <del datetime="2019-02-07T03:57:42+00:00">10.023</del> 77.129 se encuentran configurados adecuadamente, <del datetime="2019-02-07T03:57:42+00:00">6.148</del> 96.713 sin respuesta, y <del datetime="2019-02-07T03:57:42+00:00">299</del> 3.026 no cumplen con las exigencias técnicas del estándar.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.sinfocol.org/archivos/2019/02/dnsflagdaycolombia2.png" alt="DNS Flag Day Colombia" width="400" /></p>
<p style="text-align: justify;">El siguiente listado contiene los dominios colombianos afectados por el cambio en los sistemas DNS:</p>
<p><a href="https://github.com/sinfocol/dnsflagday-colombia/blob/master/affected-domains.txt" target="_blank">https://github.com/sinfocol/dnsflagday-colombia/blob/master/affected-domains.txt</a></p>
<div class="geshi no php" style="font-family: monospace;"><span class="nu0">04</span><span class="sy0">.</span>com<span class="sy0">.</span>co<br />
04it<span class="sy0">.</span>com<span class="sy0">.</span>co<br />
<span class="nu0">1</span><span class="sy0">.</span>net<span class="sy0">.</span>co<br />
100pre<span class="sy0">.</span>com<span class="sy0">.</span>co<br />
139my<span class="sy0">.</span>com<span class="sy0">.</span>co<br />
<span class="sy0">...</span><br />
zonajobs<span class="sy0">.</span>com<span class="sy0">.</span>co<br />
zonaoriente<span class="sy0">.</span>com<span class="sy0">.</span>co<br />
zoni<span class="sy0">.</span>com<span class="sy0">.</span>co<br />
zukor<span class="sy0">.</span>com<span class="sy0">.</span>co<br />
zuper<span class="sy0">.</span>com<span class="sy0">.</span>co</div>
]]></content:encoded>
			<wfw:commentRss>http://www.sinfocol.org/2019/02/dns-flag-day-colombia/feed/</wfw:commentRss>
		</item>
		<item>
		<title>KeePassLogger - KeePass Two-Channel Auto-Type Obfuscation Bypass</title>
		<link>http://www.sinfocol.org/2016/02/keepasslogger-keepass-two-channel-auto-type-obfuscation-bypass/</link>
		<comments>http://www.sinfocol.org/2016/02/keepasslogger-keepass-two-channel-auto-type-obfuscation-bypass/#comments</comments>
		<pubDate>Wed, 03 Feb 2016 05:10:38 +0000</pubDate>
		<dc:creator>Daniel Correa</dc:creator>
		
		<category><![CDATA[Seguridad]]></category>

		<category><![CDATA[KeePass]]></category>

		<category><![CDATA[KeePassLogger]]></category>

		<category><![CDATA[Keylogger]]></category>

		<guid isPermaLink="false">http://www.sinfocol.org/?p=1145</guid>
		<description><![CDATA[Two-Channel Auto-Type obfuscation is a security mechanism from KeePass to protect auto-typed passwords from being captured by "standard" keyloggers. It uses clipboard and keyboard emulation as primary channels to transfer passwords to their final input:

This scheme is secure while none or just one channel is compromised. We are going to focus on clipboard protection, the [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://keepass.info/help/v2/autotype_obfuscation.html" target="_blank">Two-Channel Auto-Type obfuscation</a> is a security mechanism from KeePass to protect auto-typed passwords from being captured by "standard" keyloggers. It uses clipboard and keyboard emulation as primary channels to transfer passwords to their final input:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.sinfocol.org/archivos/2016/02/KeePass%20TCATO.png" alt="KeePass TCATO Two-Channel Auto-Type Obfuscation" /></p>
<p style="text-align: justify;">This scheme is secure while none or just one channel is compromised. We are going to focus on clipboard protection, the following section from KeePass TCATO FAQ was removed after the <a href="https://sourceforge.net/p/keepass/bugs/1462/" target="_blank">bug was reported and rejected</a>:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.sinfocol.org/archivos/2016/02/KeePass%20Clipboard%20Event%20Blocker.png" alt="KeePass Clipboard Event Blocker" /></p>
<p style="text-align: center;">
<h3>The old way</h3>
<p style="text-align: justify;">Clipboard protection is heavily based on the old clipboard viewer chain from Windows, the diagram shows the windows message flow in the viewer chain, the flow must be followed by all the applications that want to listen to clipboard changes. The operating system sends a message to the first window, then each  window is required to pass the message to the next one until there is no  window left:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.sinfocol.org/archivos/2016/02/Windows%20Clipboard%20Viewer%20Chain.png" alt="Windows Clipboard Viewer Chain" /></p>
<p style="text-align: justify;">Here comes into play the Clipboard Event Blocker from KeePass, it first calls <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms649052(v=vs.85).aspx" target="_blank">SetClipboardViewer</a> to add himself as the first window in the viewer chain, and then when the <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms649025(v=vs.85).aspx" target="_blank">WM_DRAWCLIPBOARD</a> message is received it blocks this message from being passed to the next window:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.sinfocol.org/archivos/2016/02/Windows%20Clipboard%20Viewer%20Chain%20-%20KeePass.png" alt="Windows Clipboard Viewer Chain KeePass" /></p>
<p style="text-align: justify;">There are two ways to bypass this protection:</p>
<p> <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> Add a window to the viewer chain after KeePass protection is executed<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> Use newer API functions to listen to clipboard changes</p>
<h3>The new way</h3>
<p style="text-align: justify;">A clipboard listener was introduced in Windows Vista as a new way to listen to clipboard changes, developers are encouraged to use the <a href="https://blogs.msdn.microsoft.com/oldnewthing/20110919-00/?p=9613" target="_blank">system-mantained clipboard format listener</a> instead of the old one. The operating system is now responsible for sending the message to each window, preventing the flow to be blocked by applications:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.sinfocol.org/archivos/2016/02/Windows%20Clipboard%20Event%20Listener.png" alt="Windows Clipboard Viewer Chain KeePass" /></p>
<h3>KeePassLogger</h3>
<p style="text-align: justify;">Using the new clipboard listener and a standard keylogger we can retrieve the content of both channels and reassemble the secret. The next video shows a proof of concept for the "specialized" keylogger:</p>
<p style="text-align: center;"><object type="application/x-shockwave-flash" style="width:550px; height:355px;" data="http://www.youtube.com/v/IyR3UpLxbj4&amp;rel=1&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;fmt=18"><param name="movie" value="http://www.youtube.com/v/IyR3UpLxbj4&amp;rel=1&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;fmt=18" /></object></p>
<h4>Source code</h4>
<p>KeePassLogger source code:<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> <a href="https://github.com/sinfocol/KeePassLogger" target="_blank">KeePassLogger github repository</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sinfocol.org/2016/02/keepasslogger-keepass-two-channel-auto-type-obfuscation-bypass/feed/</wfw:commentRss>
		</item>
		<item>
		<title>VirtualBox Disk Image Encryption password cracker</title>
		<link>http://www.sinfocol.org/2015/07/virtualbox-disk-image-encryption-password-cracker/</link>
		<comments>http://www.sinfocol.org/2015/07/virtualbox-disk-image-encryption-password-cracker/#comments</comments>
		<pubDate>Wed, 15 Jul 2015 17:52:00 +0000</pubDate>
		<dc:creator>Daniel Correa</dc:creator>
		
		<category><![CDATA[Sin categoría]]></category>

		<guid isPermaLink="false">http://www.sinfocol.org/?p=1117</guid>
		<description><![CDATA[VirtualBox 5.0 was released the past July 9 with a new built-in disk image encryption feature which allows the user to encrypt virtual hard disk transparently.
With this feature a new tab is enabled in General configuration for each machine:

When the user sets a password, a new element called Property is added to the HardDisk element [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">VirtualBox 5.0 was released the past July 9 with a new <a href="https://www.oracle.com/corporate/pressrelease/oracle-vm-virtualbox-5-070915.html" target="_blank">built-in disk image encryption feature</a> which allows the user to encrypt virtual hard disk transparently.</p>
<p style="text-align: justify;">With this feature a new tab is enabled in General configuration for each machine:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.sinfocol.org/archivos/2015/07/VBOXDIE_Configuration.png" alt="VBOXDIE Configuration" width="80%" /></p>
<p style="text-align: justify;">When the user sets a password, a new element called Property is added to the HardDisk element inside the machine configuration:</p>
<div class="geshi no xml" style="font-family: monospace;"><span class="sc3"><span class="re1">&lt;HardDisk</span> <span class="re0">uuid</span>=<span class="st0">&quot;{b9f72e2c-7dde-412d-be98-6f07dbcabd41}&quot;</span> <span class="re0">location</span>=<span class="st0">&quot;Encrypted.vdi&quot;</span> <span class="re0">format</span>=<span class="st0">&quot;VDI&quot;</span> <span class="re0">type</span>=<span class="st0">&quot;Normal&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;Property</span> <span class="re0">name</span>=<span class="st0">&quot;CRYPT/KeyId&quot;</span> <span class="re0">value</span>=<span class="st0">&quot;Encrypted&quot;</span><span class="re2">/&gt;</span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;Property</span> <span class="re0">name</span>=<span class="st0">&quot;CRYPT/KeyStore&quot;</span><br />
<span class="re0">value</span>=<span class="st0">&quot;U0NORQABQUVTLVhUUzEyOC1QTEFJTjY0AAAAAAAAAAAAAAAAAABQQktERjItU0hB</span><br />
<span class="st0">MjU2AAAAAAAAAAAAAAAAAAAAAAAAACAAAAAJwd3SksjYgaKyVqNkFvSNya8SkGiz</span><br />
<span class="st0">kfuKYCB2xJk67SAAAACbTjDwMkoPESRduJWBXP4U+Tmtm3lj1k6kBlgeB42/NtAH</span><br />
<span class="st0">AACdTMPxXmuA+fiTrKHvuS+xFrYcbGj6SDa4uiUWV9WCU9AHAAAgAAAAq/tmzFGv</span><br />
<span class="st0">wmcIaYYgDxJidNRFk71JTjqUaKXS2wMuDVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</span><br />
<span class="st0">AAAAAAAAAAAAAA==&quot;</span><span class="re2">/&gt;</span></span><br />
<span class="sc3"><span class="re1">&lt;/HardDisk<span class="re2">&gt;</span></span></span></div>
<p style="text-align: justify;">The KeyStore is encoded using Base64, and it contains the information needed by the machine to verify the password each time the user wants to start a machine or change its password.</p>
<p>I made a tool called VBOXDIECracker as a proof of concept to crack weak passwords used in this new feature of VirtualBox, you can download it from:</p>
<p><a href="https://github.com/sinfocol/vboxdie-cracker/">https://github.com/sinfocol/vboxdie-cracker/</a></p>
<p>Following is a detailed explanation of how this new feature works:</p>
<h2>KeyStore Format</h2>
<p style="text-align: justify;">First, we need to identify in someway the fields within the decoded keystore:</p>
<pre>0000h: 53 43 4E 45 00 01 41 45 53 2D 58 54 53 32 35 36  SCNE..AES-XTS256
0010h: 2D 50 4C 41 49 4E 36 34 00 00 00 00 00 00 00 00  -PLAIN64........
0020h: 00 00 00 00 00 00 50 42 4B 44 46 32 2D 53 48 41  ......PBKDF2-SHA
0030h: 32 35 36 00 00 00 00 00 00 00 00 00 00 00 00 00  256.............
0040h: 00 00 00 00 00 00 40 00 00 00 12 02 78 97 DA CB  ......@.....x—ÚË
0050h: 3A 4C 4F EE F4 87 62 9D 68 A0 73 00 20 D9 B5 DE  :LOîô‡b h s. ÙµÞ
0060h: 74 94 40 8C 7A F9 9A F0 82 89 20 00 00 00 27 B5  t”@Œzùšð‚‰ ...'µ
0070h: 01 C3 16 F4 9F C2 96 B2 FE 32 85 57 35 16 73 81  .Ã.ôŸÂ–²þ2…W5.s.
0080h: AC 20 9F D1 C0 C8 3E 5E 41 B6 6F F3 C3 5A D0 07  ¬ ŸÑÀÈ&gt;^A¶oóÃZÐ.
0090h: 00 00 8A 8F 4A 94 83 7E EC 1B B4 D6 9A 2E 7C 9F  ..Š J”ƒ~ì.´Öš.|Ÿ
00A0h: FA DC 5E 65 95 36 DF 45 A8 1C 46 66 2C F6 6B E9  úÜ^e•6ßE¨.Ff,öké
00B0h: 5E 58 D0 07 00 00 40 00 00 00 EA A5 55 F2 73 AE  ^XÐ...@...ê¥Uòs®
00C0h: AF 9F 11 57 12 8F D1 C3 51 7D 7C AE F4 3E C9 AA  ¯Ÿ.W. ÑÃQ}|®ô&gt;Éª
00D0h: A5 40 69 17 CD 13 72 C5 76 8C F8 85 7C 56 59 67  ¥@i.Í.rÅvŒø…|VYg
00E0h: 31 8C E1 81 24 0F C1 43 95 6E C2 FA C3 C4 EF 0E  1Œá $.ÁC•nÂúÃÄï.
00F0h: 62 9C 18 82 5D F2 28 E7 1E C2                    bœ.‚]ò(ç.Â
</pre>
<p style="text-align: justify;">After some work we are able to identify each field:</p>
<table>
<caption>VirtualBox KeyStore File Format</caption>
<tbody>
<tr>
<th>Offset</th>
<th>Bytes</th>
<th>Description</th>
</tr>
<tr>
<td>0</td>
<td>4</td>
<td>File header signature = 0x454E4353 (SCNE)</td>
</tr>
<tr>
<td>4</td>
<td>2</td>
<td>Version</td>
</tr>
<tr>
<td>6</td>
<td>32</td>
<td>EVP algorithm</td>
</tr>
<tr>
<td>38</td>
<td>32</td>
<td>PBKDF2 hash algorithm</td>
</tr>
<tr>
<td>70</td>
<td>4</td>
<td>Generic key length (used by PBKDF2 and AES-XTS)</td>
</tr>
<tr>
<td>74</td>
<td>32</td>
<td>Final hash where comparison is done</td>
</tr>
<tr>
<td>106</td>
<td>4</td>
<td>Key length used in the second call to PBKDF2</td>
</tr>
<tr>
<td>110</td>
<td>32</td>
<td>Salt used in the second call to PBKDF2</td>
</tr>
<tr>
<td>142</td>
<td>4</td>
<td>Iterations used in the second call to PBKDF2</td>
</tr>
<tr>
<td>146</td>
<td>32</td>
<td>Salt used in the first call to PBKDF2</td>
</tr>
<tr>
<td>178</td>
<td>4</td>
<td>Iterations used in the first call to PBKDF2</td>
</tr>
<tr>
<td>182</td>
<td>4</td>
<td>EVP input length</td>
</tr>
<tr>
<td>186</td>
<td>64</td>
<td>Encrypted password used in the second call to PBKDF2 (to be used as input in the call to AES-XTS)</td>
</tr>
</tbody>
</table>
<h2>VirtualBox Keystore 010 editor template</h2>
<p style="text-align: justify;">The following 010 Editor template could be used as a guide:</p>
<div class="geshi no c" style="font-family: monospace;"><span class="co1">//--------------------------------------</span><br />
<span class="co1">//--- 010 Editor v6.0.2 Binary Template</span><br />
<span class="co1">//</span><br />
<span class="co1">// File: &nbsp; &nbsp; &nbsp; &nbsp;VBOXDIEKeyStore.bt</span><br />
<span class="co1">// Author: &nbsp; &nbsp; &nbsp;Daniel Correa</span><br />
<span class="co1">// URL: &nbsp; &nbsp; &nbsp; &nbsp; http://www.sinfocol.org/</span><br />
<span class="co1">// Revision: &nbsp; &nbsp;1.0</span><br />
<span class="co1">// Purpose: &nbsp; &nbsp; Template for VirtualBox Disk Image Encryption KeyStore</span><br />
<span class="co1">//--------------------------------------</span></p>
<p><span class="kw4">typedef</span> <span class="kw4">struct</span> vbox_die_keystore <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw4">int</span> header &lt;bgcolor<span class="sy0">=</span>0xaabbcc, format<span class="sy0">=</span>hex, name<span class="sy0">=</span><span class="st0">&quot;Header&quot;</span>&gt;;</p>
<p>&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>header <span class="sy0">!=</span> 0x454E4353<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; SetBackColor<span class="br0">&#40;</span>0x0000ff<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Warning<span class="br0">&#40;</span><span class="st0">&quot;File is not a valid VBOX DIE KeyStore. Bad signature.&quot;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="nu0">-1</span>;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; uint16 version &lt;bgcolor<span class="sy0">=</span>0xccddee, name<span class="sy0">=</span><span class="st0">&quot;Version&quot;</span>&gt;;<br />
&nbsp; &nbsp; <span class="kw4">char</span> algorithm<span class="br0">&#91;</span><span class="nu0">32</span><span class="br0">&#93;</span> &lt;bgcolor<span class="sy0">=</span>0x00ffee, name<span class="sy0">=</span><span class="st0">&quot;EVP encryption algorithm&quot;</span>&gt;;<br />
&nbsp; &nbsp; <span class="kw4">char</span> kdf<span class="br0">&#91;</span><span class="nu0">32</span><span class="br0">&#93;</span> &lt;bgcolor<span class="sy0">=</span>0xffbbee, name<span class="sy0">=</span><span class="st0">&quot;Key derivation function hash algorithm&quot;</span>&gt;;<br />
&nbsp; &nbsp; <span class="kw4">int</span> generic_key_length &lt;bgcolor<span class="sy0">=</span>0x3399ee, name<span class="sy0">=</span><span class="st0">&quot;Generic key length&quot;</span>&gt;;<br />
&nbsp; &nbsp; <span class="kw4">char</span> final_hash<span class="br0">&#91;</span><span class="nu0">32</span><span class="br0">&#93;</span> &lt;bgcolor<span class="sy0">=</span>0x4444ff, name<span class="sy0">=</span><span class="st0">&quot;Final hash&quot;</span>&gt;;<br />
&nbsp; &nbsp; <span class="kw4">int</span> pbkdf2_2_key_length &lt;bgcolor<span class="sy0">=</span>0x3399ee, name<span class="sy0">=</span><span class="st0">&quot;Second PBKDF2 key length&quot;</span>&gt;;<br />
&nbsp; &nbsp; <span class="kw4">char</span> pbkdf2_2_salt<span class="br0">&#91;</span><span class="nu0">32</span><span class="br0">&#93;</span> &lt;bgcolor<span class="sy0">=</span>0x999999, name<span class="sy0">=</span><span class="st0">&quot;Second PBKDF2 salt&quot;</span>&gt;;<br />
&nbsp; &nbsp; <span class="kw4">int</span> pbkdf2_2_iterations &lt;bgcolor<span class="sy0">=</span>0xaa9933, name<span class="sy0">=</span><span class="st0">&quot;Second PBKDF2 iterations&quot;</span>&gt;;<br />
&nbsp; &nbsp; <span class="kw4">char</span> pbkdf2_1_salt<span class="br0">&#91;</span><span class="nu0">32</span><span class="br0">&#93;</span> &lt;bgcolor<span class="sy0">=</span>0x999999, name<span class="sy0">=</span><span class="st0">&quot;First PBKDF2 salt&quot;</span>&gt;;<br />
&nbsp; &nbsp; <span class="kw4">int</span> pbkdf2_1_iterations &lt;bgcolor<span class="sy0">=</span>0xaa9933, name<span class="sy0">=</span><span class="st0">&quot;First PBKDF2 iterations&quot;</span>&gt;;<br />
&nbsp; &nbsp; <span class="kw4">int</span> evp_decrypt_input_length &lt;bgcolor<span class="sy0">=</span>0x3399ee, name<span class="sy0">=</span><span class="st0">&quot;EVP decrypt input length&quot;</span>&gt;;<br />
&nbsp; &nbsp; <span class="kw4">char</span> pbkdf2_2_encrypted_password<span class="br0">&#91;</span><span class="nu0">64</span><span class="br0">&#93;</span> &lt;bgcolor<span class="sy0">=</span>0xff7777, name<span class="sy0">=</span><span class="st0">&quot;Second PBKDF2 encrypted password&quot;</span>&gt;;<br />
<span class="br0">&#125;</span>;</p>
<p>FSeek<span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;<br />
LittleEndian<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
vbox_die_keystore VBOXDIE;</div>
<p style="text-align: justify;">The result of running the template:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.sinfocol.org/archivos/2015/07/VBOXDIE_010_template1.png" alt="VBOXDIE 010 editor template 1" width="90%" /></p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.sinfocol.org/archivos/2015/07/VBOXDIE_010_template2.png" alt="VBOXDIE 010 editor template 2" width="90%" /></p>
<h2>VirtualBox password storage algorithm</h2>
<p style="text-align: justify;">With the identification of the fields within the keystore we can now have an understanding of how the password storage algorithm works, and it is summarized in this way:</p>
<p><code><br />
# 32 for AES-XTS128-PLAIN64<br />
# 64 for AES-XTS256-PLAIN64<br />
AES_key_length = 32 | 64<br />
-------------------------<br />
AES-password = PBKDF2(algorithm: SHA256,<br />
                      password: user_password,<br />
                      salt: random_salt_1,<br />
                      iterations: 2000,<br />
                      output_length: AES_key_length)<br />
----------------------------------------------<br />
PBKDF2-decrypted-password = AES_decrypt(key_size: AES_key_length,<br />
                                        mode: XTS,<br />
                                        data: random_data<br />
                                        password: AES-password,<br />
                                        type: raw,<br />
                                        iv: NULL)<br />
-------------------------------------<br />
Stored_hash = PBKDF2(algorithm: SHA256,<br />
                     password: PBKDF2-decrypted-password,<br />
                     salt: random_salt_2,<br />
                     iterations: 2000,<br />
                     output_length: 32)<br />
</code></p>
<p style="text-align: justify;">The same process is performed each time the user wants to decrypt the machine disk. The stored hash (the one from keystore) is compared with the computed hash (the one from user input) in order to authenticate the user and let him use the machine.</p>
<h2>VBOXDIECracker - the tool</h2>
<p style="text-align: justify;">With the appropriate format and algorithm we can emulate the password verification of VirtualBox and make a not-so-fast cracker with PHP (sorry guys, I did not find a standard package on python to use AES XTS), it is just a proof of concept, so you can develop another leet tools.</p>
<p>You can download it from <a href="http://www.sinfocol.org/archivos/2015/07/VBOXDIECracker.phps">this site</a> or browse it <a href="https://github.com/sinfocol/vboxdie-cracker/">from the repository.</a></p>
<p style="text-align: justify;">This is a sample of the source code showing the main function which is the one who computes the final hash:</p>
<div class="geshi no php" style="font-family: monospace;"><span class="kw2">&lt;?php</span></p>
<p><span class="co1">// redacted</span></p>
<p><span class="coMULTI">/**</span><br />
<span class="coMULTI">&nbsp;* crack_keystore</span><br />
<span class="coMULTI">&nbsp;*</span><br />
<span class="coMULTI">&nbsp;* Makes a bruteforce to find the final hash contained in the KeyStore</span><br />
<span class="coMULTI">&nbsp;* Returns the plaintext password used to encrypt de disk of the virtual machine</span><br />
<span class="coMULTI">&nbsp;*/</span><br />
<span class="kw2">function</span> crack_keystore<span class="br0">&#40;</span><span class="re0">$keystore</span><span class="sy0">,</span> <span class="re0">$wordlist</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="re0">$fp</span> <span class="sy0">=</span> <span class="kw3">fopen</span><span class="br0">&#40;</span><span class="re0">$wordlist</span><span class="sy0">,</span> <span class="st0">&#39;r&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">is_resource</span><span class="br0">&#40;</span><span class="re0">$fp</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$hash</span> <span class="sy0">=</span> get_hash_algorithm<span class="br0">&#40;</span><span class="re0">$keystore</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$method</span> <span class="sy0">=</span> get_openssl_method<span class="br0">&#40;</span><span class="re0">$keystore</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span><span class="sy0">!</span><span class="kw3">feof</span><span class="br0">&#40;</span><span class="re0">$fp</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$user_password</span> <span class="sy0">=</span> <span class="kw3">trim</span><span class="br0">&#40;</span><span class="kw3">fgets</span><span class="br0">&#40;</span><span class="re0">$fp</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$EVP_password</span> <span class="sy0">=</span> hash_pbkdf2<span class="br0">&#40;</span><span class="re0">$hash</span><span class="sy0">,</span> <span class="re0">$user_password</span><span class="sy0">,</span> <span class="re0">$keystore</span><span class="br0">&#91;</span><span class="st0">&#39;pbkdf2_1_salt&#39;</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$keystore</span><span class="br0">&#91;</span><span class="st0">&#39;pbkdf2_1_iterations&#39;</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$keystore</span><span class="br0">&#91;</span><span class="st0">&#39;generic_key_length&#39;</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw2">true</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$decrypted_password</span> <span class="sy0">=</span> openssl_decrypt<span class="br0">&#40;</span><span class="kw3">substr</span><span class="br0">&#40;</span><span class="re0">$keystore</span><span class="br0">&#91;</span><span class="st0">&#39;pbkdf2_2_encrypted_password&#39;</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="re0">$keystore</span><span class="br0">&#91;</span><span class="st0">&#39;evp_decrypt_input_length&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="re0">$method</span><span class="sy0">,</span> <span class="re0">$EVP_password</span><span class="sy0">,</span> OPENSSL_RAW_DATA<span class="sy0">,</span> <span class="st0">&#39;&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$decrypted_password</span> <span class="sy0">===</span> <span class="kw2">false</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">continue</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$final_hash</span> <span class="sy0">=</span> hash_pbkdf2<span class="br0">&#40;</span><span class="re0">$hash</span><span class="sy0">,</span> <span class="re0">$decrypted_password</span><span class="sy0">,</span> <span class="re0">$keystore</span><span class="br0">&#91;</span><span class="st0">&#39;pbkdf2_2_salt&#39;</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$keystore</span><span class="br0">&#91;</span><span class="st0">&#39;pbkdf2_2_iterations&#39;</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$keystore</span><span class="br0">&#91;</span><span class="st0">&#39;pbkdf2_2_key_length&#39;</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw2">true</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$final_hash</span> <span class="sy0">===</span> <span class="re0">$keystore</span><span class="br0">&#91;</span><span class="st0">&#39;final_hash&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$user_password</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="co1">// redacted</span></div>
<p>And the final output with a recovered password:</p>
<pre>
$ php VBOXDIECracker.php
VirtualBox Disk Image Encryption cracker

Usage: VBOXDIECracker.php disk_image.vbox [wordlist]

$ php VBOXDIECracker.php Encrypted.vbox wordlist.txt
VirtualBox Disk Image Encryption cracker

[+] Reading data from: Encrypted.vbox
----------------------------------------------------------------
[+] Checking hard disk encryption for: Encrypted.vdi
[+] Hard disk is encrypted
[+] KeyStore encoded string:
        U0NORQABQUVTLVhUUzI1Ni1QTEFJTjY0AAAAAAAAAAAAAAAAAABQQktERjItU0hB
        MjU2AAAAAAAAAAAAAAAAAAAAAAAAAEAAAAASAniX2ss6TE/u9IdinWigcwAg2bXe
        dJRAjHr5mvCCiSAAAAAntQHDFvSfwpay/jKFVzUWc4GsIJ/RwMg+XkG2b/PDWtAH
        AACKj0qUg37sG7TWmi58n/rcXmWVNt9FqBxGZiz2a+leWNAHAABAAAAA6qVV8nOu
        r58RVxKP0cNRfXyu9D7JqqVAaRfNE3LFdoz4hXxWWWcxjOGBJA/BQ5VuwvrDxO8O
        YpwYgl3yKOcewg==
[+] KeyStore contents:
        Header                        454e4353 (SCNE)
        Version                       1
        Algorithm                     AES-XTS256-PLAIN64
        KDF                           PBKDF2-SHA256
        Key length                    64
        Final hash                    12027897dacb3a4c4feef487629d68a0730020d9b5de7494408c7af99af08289
        PBKDF2 2 Key length           32
        PBKDF2 2 Salt                 27b501c316f49fc296b2fe32855735167381ac209fd1c0c83e5e41b66ff3c35a
        PBKDF2 2 Iterations           2000
        PBKDF2 1 Salt                 8a8f4a94837eec1bb4d69a2e7c9ffadc5e659536df45a81c46662cf66be95e58
        PBKDF2 1 Iterations           2000
        EVP buffer length             64
        PBKDF2 2 encrypted password   eaa555f273aeaf9f1157128fd1c3517d7caef43ec9aaa5406917cd1372c5768c
                                      f8857c565967318ce181240fc143956ec2fac3c4ef0e629c18825df228e71ec2
[+] Cracking finished, measured time: 6.13035 seconds
[!] KeyStore password found: 123
----------------------------------------------------------------
[+] Checking hard disk encryption for: New_Disk.vdi
[-] Hard disk is not encrypted
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sinfocol.org/2015/07/virtualbox-disk-image-encryption-password-cracker/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Backdoor CTF 2015 - RSANNE</title>
		<link>http://www.sinfocol.org/2015/04/backdoor-ctf-2015-rsanne/</link>
		<comments>http://www.sinfocol.org/2015/04/backdoor-ctf-2015-rsanne/#comments</comments>
		<pubDate>Sat, 04 Apr 2015 04:00:50 +0000</pubDate>
		<dc:creator>Daniel Correa</dc:creator>
		
		<category><![CDATA[Criptografía]]></category>

		<category><![CDATA[Retos informáticos]]></category>

		<guid isPermaLink="false">http://www.sinfocol.org/?p=1105</guid>
		<description><![CDATA[We are given with two files in this challenge: an encrypted file and a 4484 bit RSA public key. The challenge is to get the plaintext from the encrypted file.
The first step is to get the modulus from the PEM file:
# openssl rsa -inform PEM -pubin -text -modulus &#60; id_rsa.pub
Public-Key: &#40;4484 bit&#41;
Modulus:
&#160; &#160; 0f:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:
&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>We are given with <a href="http://www.sinfocol.org/archivos/2015/04/RSANNE.tar.gz">two files</a> in this challenge: an encrypted file and a 4484 bit RSA public key. The challenge is to get the plaintext from the encrypted file.</p>
<p>The first step is to get the modulus from the PEM file:</p>
<div class="geshi no bash" style="font-family: monospace;"><span class="co0"># openssl rsa -inform PEM -pubin -text -modulus &lt; id_rsa.pub</span><br />
Public-Key: <span class="br0">&#40;</span><span class="nu0">4484</span> bit<span class="br0">&#41;</span><br />
Modulus:<br />
&nbsp; &nbsp; 0f:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; ff:ff:ff:ff:ff:fd:ff:ff:ff:ff:ff:ff:ff:ff:ff:<br />
&nbsp; &nbsp; f8:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<br />
&nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">00</span>:<span class="nu0">01</span><br />
Exponent: <span class="nu0">65537</span> <span class="br0">&#40;</span>0x10001<span class="br0">&#41;</span><br />
<span class="re2">Modulus=</span>FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<br />
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<br />
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<br />
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<br />
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<br />
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<br />
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<br />
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<br />
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFF<br />
FF80000000000000000000000000000000000000000000000000000000000000<br />
<span class="nu0">0000000000000000000000000000000000000000000000000000000000000000</span><br />
<span class="nu0">0000000000000000000000000000000000000000000000000000000000000000</span><br />
<span class="nu0">0000000000000000000000000000000000000000000000000000000000000000</span><br />
<span class="nu0">0000000000000000000000000000000000000000000000000000000000000000</span><br />
<span class="nu0">0000000000000000000000000000000000000000000000000000000000000000</span><br />
<span class="nu0">0000000000000000000000000000000000000000000000000000000000000000</span><br />
<span class="nu0">0000000000000000000000000000000000000000000000000000000000000000</span><br />
<span class="nu0">00000000000000000000000000000000000000001</span><br />
writing RSA key<br />
-----BEGIN PUBLIC KEY-----<br />
MIICUjANBgkqhkiG9w0BAQEFAAOCAj8AMIICOgKCAjEP<span class="sy0">////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">//////////////////////////</span><span class="nu0">3</span><span class="sy0">////////////</span>4AAAAAAAAAAAAAAAAAAAAAAAA<br />
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<br />
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<br />
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<br />
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<br />
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<br />
<span class="re2">AAAAAAAAAAAAAAAAAAAAAAECAwEAAQ=</span>=<br />
-----END PUBLIC KEY-----</div>
<p>N is the product of two <a href="http://en.wikipedia.org/wiki/Mersenne_prime" target="_blank">Mersenne primer numbers</a>, so the second step is to make a script which is used to find them:</p>
<div class="geshi no python" style="font-family: monospace;"><span class="co1">#!/usr/bin/env python</span></p>
<p>mersenne = <span class="br0">&#91;</span><span class="nu0">2</span>, <span class="nu0">3</span>, <span class="nu0">5</span>, <span class="nu0">7</span>, <span class="nu0">13</span>, <span class="nu0">17</span>, <span class="nu0">19</span>, <span class="nu0">31</span>, <span class="nu0">61</span>, <span class="nu0">89</span>, <span class="nu0">107</span>, <span class="nu0">127</span>, <span class="nu0">521</span>, <span class="nu0">607</span>, <span class="nu0">1279</span>, <span class="nu0">2203</span>, <span class="nu0">2281</span>, <span class="nu0">3217</span>, <span class="nu0">4253</span>, <span class="nu0">4423</span>, <span class="nu0">9689</span><span class="br0">&#93;</span></p>
<p><span class="kw1">for</span> n1 <span class="kw1">in</span> mersenne:<br />
&nbsp; &nbsp; <span class="kw1">for</span> n2 <span class="kw1">in</span> mersenne:<br />
&nbsp; &nbsp; &nbsp; &nbsp; m1 = <span class="br0">&#40;</span><span class="nu0">2</span> <span class="sy0">**</span> n1<span class="br0">&#41;</span> &nbsp;- <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; m2 = <span class="br0">&#40;</span><span class="nu0">2</span> <span class="sy0">**</span> n2<span class="br0">&#41;</span> - <span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> m1 <span class="sy0">*</span> m2 &nbsp;== 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFF80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">print</span> <span class="st0">&quot;Match! &quot;</span>, m1, m2</div>
<p>The two prime numbers are: 2<sup>2281</sup> - 1 and 2<sup>2203</sup> - 1.</p>
<p>We use <a href="https://github.com/ius/rsatool" target="_blank">rsatool.py</a> from ius to reconstruct the private key PEM file (which is used later to decrypt the content of the file using the OAEP padding scheme):</p>
<div class="geshi no bash" style="font-family: monospace;">-----BEGIN RSA PRIVATE KEY-----<br />
MIIKCAIBAAKCAjEP<span class="sy0">////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">//</span><span class="nu0">3</span><span class="sy0">////////////</span>4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<br />
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<br />
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<br />
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<br />
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<br />
AAECAwEAAQKCAjEIHnfhiB534Yged+GIHnfhiB534Yged+GIHnfhiB534Yged+GIHnfhiB534Yge<br />
d+GIHnfhiB534Yged+GIHnfhiB534Yged+GIHnfhiB534Yged+GIHnfhiB534Yged+GIHnfhiB53<br />
4Yged+GIHnfhiB534Yged+GIHnfhiB534Yged+GIHnfhiB534Yged+GIHnfhiB534Yged+GIHnfh<br />
iB534Yged+GIHnfhiB534Yged+GIHnfhiB534Yged+GIHnfhiB534Yged+GIHnfhiB534Yged+GI<br />
HnfhiB534Yged+GIHnfhiB534Yged+GIHnfhiB534Yged+GIHnfhiB534Yged+GIHnfhiB534Yge<br />
d9+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4B4YQee+GEHnvhhB574YQee+GEHnvhhB574YQee+GEHnvhhB574YQee+GEHnvhh<br />
B574YQee+GEHnvhhB574YQee+GEHnvhhB574YQee+GEHnvhhB574YQee+GEHnvhhB574YQee+GEH<br />
nvhhB574YQee+GEHnvhhB574YQee+GEHnvhhB574YQee+GEHnvhhB574YQee+GEHnvhhB574YQee<br />
+GEHnvhhB574YQee+GEHnvhhB574YQee+GEHnvhhB574YQee+GEHnvhhB574YQee+GEHnvhhB574<br />
YQee+GEHnvhhB574YQee+GEHnvhhB574YQee+GEHnvhhB574YQee+GEHnvhhB574YQee+GEHnvhh<br />
B6ECggEeAf<span class="sy0">//////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">/////////</span>wKCARQH<span class="sy0">////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">////////////////////////////////////////////////////////////////////////////</span><br />
<span class="sy0">//</span>8CggEeAYCAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CA<br />
f3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span><br />
f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span><br />
gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+A<br />
gH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CAf3+AgH9<span class="sy0">/</span>gIB<span class="sy0">/</span>f4CA<br />
f3+AgH9<span class="sy0">/</span>fwKCARQGWWmmlllpppZZaaaWWWmmlllpppZZaaaWWWmmlllpppZZaaaWWWmmlllpppZZ<br />
aaaWWWmmlllpppZZaaaWWWmmlllpppZZaaaWWWmmlllpppZZaaaWWWmmlllpppZZaaaWWWmmlllp<br />
ppZZaaaWWWmmlllpppZZaaaWWWmmlllpppZZaaaWWWmmlllpppZZaaaWWWmmlllpppZZaaaWWWmm<br />
lllpppZZaaaWWWmmlllpppZZaaaWWWmmlllpppZZaaaWWWmmlllpppZZaaaWWWmmlllpppZZaaaW<br />
WWmmlllpppZZaaaWWWmmlllpppZZaaaWWWmmlllpppZZaaaWWWmmlllpppZZaaaWWWmmlllpppZZ<br />
aaUCggEeAKqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqq<br />
qlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVU<br />
qqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpV<br />
VUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqq<br />
pVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVSqqpVVUqqqlVVS<br />
<span class="re2">qqpVVUqqqQ=</span>=<br />
-----END RSA PRIVATE KEY-----</div>
<p>Final step is to decrypt the file:</p>
<div class="geshi no bash" style="font-family: monospace;"><span class="co0"># openssl rsautl -decrypt -in flag_d.bin -out plaintext.txt -inkey private.pem -oaep</span><br />
Loading <span class="st0">&#39;screen&#39;</span> into random state - <span class="kw1">done</span></p>
<p>
<span class="co0"># cat plaintext.txt</span><br />
the_flag_is_e4972e14...</div>
]]></content:encoded>
			<wfw:commentRss>http://www.sinfocol.org/2015/04/backdoor-ctf-2015-rsanne/feed/</wfw:commentRss>
		</item>
		<item>
		<title>B-Sides Vancouver CTF 2015 - garbage file</title>
		<link>http://www.sinfocol.org/2015/03/b-sides-vancouver-ctf-2015-garbage-file/</link>
		<comments>http://www.sinfocol.org/2015/03/b-sides-vancouver-ctf-2015-garbage-file/#comments</comments>
		<pubDate>Wed, 18 Mar 2015 07:16:11 +0000</pubDate>
		<dc:creator>Daniel Correa</dc:creator>
		
		<category><![CDATA[Miscelaneo]]></category>

		<category><![CDATA[Retos informáticos]]></category>

		<category><![CDATA[Seguridad]]></category>

		<category><![CDATA[CTF]]></category>

		<category><![CDATA[Forensics]]></category>

		<guid isPermaLink="false">http://www.sinfocol.org/?p=1100</guid>
		<description><![CDATA[Description
Your buddy Joey left a USB key with some data he needs your help with. He pulled it from the firewall logs at a 'secure file format'-as-a-Service provider, so he's pretty sure it might be protected or obfuscated somehow.
garbagefile.pcapng.gz
Solution
A PCAPNG file is provided, there we can see some UDP packets where the data is located:

We [...]]]></description>
			<content:encoded><![CDATA[<h2>Description</h2>
<p style="text-align: justify;">Your buddy Joey left a USB key with some data he needs your help with. He pulled it from the firewall logs at a 'secure file format'-as-a-Service provider, so he's pretty sure it might be protected or obfuscated somehow.</p>
<p><a href="http://www.sinfocol.org/archivos/2015/03/garbagefile.pcapng.gz">garbagefile.pcapng.gz</a></p>
<h2>Solution</h2>
<p style="text-align: justify;">A PCAPNG file is provided, there we can see some UDP packets where the data is located:</p>
<p style="text-align: center;"><img class="aligncenter" title="UDP Data from PCAPNG file" src="http://www.sinfocol.org/archivos/2015/03/UDPData.png" alt="" /></p>
<p>We need to get all the data sent over UDP, we can do it by using tshark:</p>
<div class="geshi no bash" style="font-family: monospace;">$ tshark -r garbagefile.pcapng -Y <span class="st0">&quot;udp&quot;</span> -T fields -e data<br />
00026163636f756e742d646174612e62696e006f6374657400<br />
<span class="nu0">00040000</span><br />
0003000100004edf00002e77789c0173018cfe4435d00b168b...<br />
<span class="nu0">00040001</span><br />
00030002803434680f53d41a3d4068007a801a1ea0341a1ea7...<br />
<span class="nu0">00040002</span><br />
00030003142dfea2fb389f6ded40c310f8dcc905034127d07f...</div>
<p style="text-align: justify;">Each message is composed by two short integers (first one to indicate which is sending the message + second one an incremental ID), and the data itself. I used this script on PHP to separate data from metadata and create bzip files (based on bzip headers found on the dump):</p>
<div class="geshi no php" style="font-family: monospace;"><span class="kw2">&lt;?php</span></p>
<p><span class="re0">$file</span> <span class="sy0">=</span> <span class="kw3">file</span><span class="br0">&#40;</span><span class="st0">&#39;data.txt&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="re0">$out</span> <span class="sy0">=</span> <span class="st0">&#39;&#39;</span><span class="sy0">;</span><br />
<span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span> <span class="sy0">=</span> <span class="nu0">2</span><span class="sy0">;</span> <span class="re0">$i</span> <span class="sy0">&lt;</span> <span class="kw3">count</span><span class="br0">&#40;</span><span class="re0">$file</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="re0">$i</span> <span class="sy0">+=</span> <span class="nu0">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// ignore first and second line, then each two</span><br />
&nbsp; &nbsp; <span class="re0">$out</span> <span class="sy0">.=</span> hex2bin<span class="br0">&#40;</span><span class="kw3">substr</span><span class="br0">&#40;</span><span class="kw3">trim</span><span class="br0">&#40;</span><span class="re0">$file</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="nu0">8</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// strip metadata</span><br />
<span class="br0">&#125;</span></p>
<p><span class="re0">$i</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span><br />
<span class="re0">$bzs</span> <span class="sy0">=</span> <span class="kw3">explode</span><span class="br0">&#40;</span><span class="st0">&#39;BZh&#39;</span><span class="sy0">,</span> <span class="re0">$out</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$bzs</span> <span class="kw1">as</span> <span class="re0">$bz</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; file_put_contents<span class="br0">&#40;</span><span class="st0">&#39;bzips/&#39;</span> <span class="sy0">.</span> <span class="re0">$i</span><span class="sy0">++,</span> <span class="st0">&#39;BZh&#39;</span> <span class="sy0">.</span> <span class="re0">$bz</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw2">?&gt;</span></div>
<p>Twenty two files are created, it is time to decompress them using python:</p>
<div class="geshi no python" style="font-family: monospace;"><span class="kw1">import</span> <span class="kw3">bz2</span><br />
<span class="kw1">import</span> <span class="kw3">sys</span></p>
<p><span class="kw1">for</span> i <span class="kw1">in</span> <span class="kw2">xrange</span><span class="br0">&#40;</span><span class="nu0">0</span>,<span class="nu0">22</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; <span class="kw1">try</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">file</span> = <span class="kw3">bz2</span>.<span class="me1">BZ2File</span><span class="br0">&#40;</span><span class="kw2">str</span><span class="br0">&#40;</span>i<span class="br0">&#41;</span>, <span class="st0">&quot;r&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">print</span> <span class="kw2">file</span>.<span class="me1">read</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="kw1">except</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">sys</span>.<span class="me1">stderr</span>.<span class="me1">write</span><span class="br0">&#40;</span><span class="st0">&#39;file &#39;</span>+ <span class="kw2">str</span><span class="br0">&#40;</span>i<span class="br0">&#41;</span> + <span class="st0">&#39; invalid<span class="es0">\n</span>&#39;</span><span class="br0">&#41;</span></div>
<p>There are only three "corrupted" files:</p>
<pre>file 0 invalid
file 8 invalid
file 21 invalid
</pre>
<p style="text-align: justify;">First file does not contain a bzip header, so it was skipped. Second file is the heaviest (20.8KB) and it is possible the file we are looking for. We are making a guess now, the file seems to have a Zlib header:</p>
<p style="text-align: center;"><img class="aligncenter" title="Zlib Header found on a Bzip file" src="http://www.sinfocol.org/archivos/2015/03/ZlibHeader.png" alt="" /></p>
<p>It is decompressed properly giving us a base64 encoded file:</p>
<pre>
iVBgMA0KNH0AAC56SUhqJQAALO0AAC4TCAIudwCpR3DoAC53AXN8MEIAgLkc6S53AAleP1lzLncL
Ey53CxMvd5qcNncAQC4+REF6DwHt83C8BWsCMPB7xwsIBH9SBQojRUGjPbH3OPolxPZlTYIDJj8T
Y3saExvhmNgfMRMLBOHERp5W2MAofwgoM9MqKqxXWL7RyXlvwZnM7FMM997V/ez88Ji+2ffuM2fg
... (cropped)
a0ANOm8oMH4XoMBu9tWlbty/38TVNdQQJ2Cg7jeBgSx0BQYkA6fAjrm700S/OVBO18BAr/YCAyuh
KAUoAr5GFRFAa463QIGvdQMFKH10p+7Xzrv9Hcg5fhegwG72gQItctYoK3F1vmhMZkBF18BAr/YC
AytxCnSJt6DOlaRqyBcnYKDuN4GBLHQF1gZyBnWQMTtmbhygwG72gQItcgYKWtDA/ymC2qJiimhr
73cAAC4+RU5q2UJgrA==
</pre>
<p>Final result is a PNG file encrypted with XOR using "00 00 2E 77" as key:</p>
<p style="text-align: center;"><img width="70%" class="aligncenter" title="Flag of garbage file B-Sides Vancouver CTF 2015" src="http://www.sinfocol.org/archivos/2015/03/FinalAnswer.png" alt="" /></p>
<h2>Flag</h2>
<p>key{03087-08351-27H}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sinfocol.org/2015/03/b-sides-vancouver-ctf-2015-garbage-file/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FREAK on Colombian domain names and Heartbleed one year later</title>
		<link>http://www.sinfocol.org/2015/03/freak-on-colombian-domain-names-and-heartbleed-one-year-later/</link>
		<comments>http://www.sinfocol.org/2015/03/freak-on-colombian-domain-names-and-heartbleed-one-year-later/#comments</comments>
		<pubDate>Thu, 05 Mar 2015 04:55:21 +0000</pubDate>
		<dc:creator>Daniel Correa</dc:creator>
		
		<category><![CDATA[Seguridad]]></category>

		<category><![CDATA[CVE-2015-0204.py]]></category>

		<category><![CDATA[OpenSSL]]></category>

		<guid isPermaLink="false">http://www.sinfocol.org/?p=1091</guid>
		<description><![CDATA[I am here writing again about some statistics, this time is for the new vulnerability found on SSL/TLS (FREAK Attack) against critical Colombian domain names. Same methogolody of Overview of OpenSSL security bug (CVE-2014-0160) on critical Colombian domain names is used in this post.



FREAK Attack on restricted colombian domain names
Identifying vulnerable domains
A python script was [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I am here writing again about some statistics, this time is for the new vulnerability found on SSL/TLS (<a href="https://freakattack.com/">FREAK Attack</a>) against critical Colombian domain names. Same methogolody of <a href="http://www.sinfocol.org/2014/04/overview-of-openssl-security-bug-cve-2014-0160-on-critical-colombian-domain-names/">Overview of OpenSSL security bug (CVE-2014-0160) on critical Colombian domain names</a> is used in this post.</p>
<p style="text-align: center;"><a title="FREAK Attack" rel="sexy[heartbleed]" href="http://www.sinfocol.org/archivos/2015/03/FREAK.png" target="_blank"><br />
<img class="aligncenter" title="FREAK Attack" src="http://www.sinfocol.org/archivos/2015/03/FREAK.png" alt="" width="521" height="245" /><br />
</a></p>
<h2>FREAK Attack on restricted colombian domain names</h2>
<h3>Identifying vulnerable domains</h3>
<p style="text-align: justify;">A python script was used to identify in a non-intrusive way the affected Colombian domain names (gov.co, edu.co, mil.co, and org.co):</p>
<div class="geshi no python" style="font-family: monospace;">&nbsp; &nbsp; <span class="kw1">for</span> domain <span class="kw1">in</span> domains:<br />
&nbsp; &nbsp; &nbsp; &nbsp; result = <span class="st0">&#39;&#39;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; IP = domain_exists<span class="br0">&#40;</span>domain<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> IP <span class="sy0">!</span>= <span class="kw2">False</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> check_connectivity<span class="br0">&#40;</span>IP<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> check_FREAK<span class="br0">&#40;</span>IP<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result = <span class="st0">&#39;VULNERABLE&#39;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result = <span class="st0">&#39;NOT-VULNERABLE&#39;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result = <span class="st0">&#39;SECURE-CHANNEL-UNSUPPORTED&#39;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result = <span class="st0">&#39;NON-EXISTENT&#39;</span></div>
<h3>Results</h3>
<p style="text-align: justify;">2975 domain names were tested against the vulnerability, the results are impressive, from 1815 domains that support HTTPS only 46 are affected (it is possible to make a man in the middle attack while the domains is using SSL/TLS):</p>
<p><a title="Overview of RSA_EXPORT on critical Colombian domain names" rel="sexy[heartbleed]" href="http://www.sinfocol.org/archivos/2015/03/OverviewFREAKCriticalColombianDomains.png" target="_blank"><br />
<img class="aligncenter" title="Overview of RSA_EXPORT on critical Colombian domain names" src="http://www.sinfocol.org/archivos/2015/03/OverviewFREAKCriticalColombianDomains.png" alt="" /><br />
</a></p>
<p style="text-align: justify;">This is the detail of the results classified by each Third-level domain:</p>
<p> <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> gov.co, 662 not vulnerable, 18 vulnerable.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> edu.co, 689 not vulnerable, 15 vulnerable.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> mil.co, 58 not vulnerable, 1 vulnerable.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> org.co, 360 not vulnerable, 12 vulnerable.</p>
<p style="text-align: center;"><a title="Comparison of the presence of the vulnerability classified by Colombian third-level domains" rel="sexy[heartbleed]" href="http://www.sinfocol.org/archivos/2015/03/ComparisonVulnerabilityPresence.png" target="_blank"><br />
<img class="aligncenter" title="Comparison of the presence of the vulnerability classified by Colombian third-level domains" src="http://www.sinfocol.org/archivos/2015/03/ComparisonVulnerabilityPresence.png" alt="" /><br />
</a></p>
<p>Finally, we got the distribution of the vulnerable Colombian third-level domains:</p>
<p style="text-align: center;"><a title="Overview of RSA_EXPORT classified by third-level domains" rel="sexy[heartbleed]" href="http://www.sinfocol.org/archivos/2015/03/OverviewFREAKCriticalColombianDomains2.png" target="_blank"><br />
<img class="aligncenter" title="Overview of RSA_EXPORT classified by Colombian third-level domains" src="http://www.sinfocol.org/archivos/2015/03/OverviewFREAKCriticalColombianDomains2.png" alt="" /><br />
</a></p>
<h2>Heartbleed a year later</h2>
<p style="text-align: justify;">One year later the same script and data were used to test the heartbleed vulnerability (<a href="http://www.sinfocol.org/2014/04/overview-of-openssl-security-bug-cve-2014-0160-on-critical-colombian-domain-names/">Overview of OpenSSL security bug (CVE-2014-0160) on critical Colombian domain names</a>), this is what I found:</p>
<p> <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> Only 2 domain names were found to be free of the Heartbleed vulnerability, 16 are still vulnerable.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> 177 domain names have implemented HTTPS.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> 115 domain names were deleted (or DNS A record does not exist).<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> 86 domain names dropped HTTPS support.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sinfocol.org/2015/03/freak-on-colombian-domain-names-and-heartbleed-one-year-later/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Overview of OpenSSL security bug (CVE-2014-0160) on critical Colombian domain names</title>
		<link>http://www.sinfocol.org/2014/04/overview-of-openssl-security-bug-cve-2014-0160-on-critical-colombian-domain-names/</link>
		<comments>http://www.sinfocol.org/2014/04/overview-of-openssl-security-bug-cve-2014-0160-on-critical-colombian-domain-names/#comments</comments>
		<pubDate>Thu, 10 Apr 2014 18:26:15 +0000</pubDate>
		<dc:creator>Daniel Correa</dc:creator>
		
		<category><![CDATA[Seguridad]]></category>

		<category><![CDATA[CVE-2014-0160]]></category>

		<category><![CDATA[OpenSSL]]></category>

		<category><![CDATA[Overview of critical Colombian domain names security]]></category>

		<guid isPermaLink="false">http://www.sinfocol.org/?p=1068</guid>
		<description><![CDATA[
* Update on methodology and results: Statistical sample
* Update on methodology and results: Retest

The TLS heartbeat read overrun (CVE-2014-0160) (also known as The Heartbleed Bug) is the hot topic right now on the information security field. While this publication is not about the technical detail of the bug but some statistics of critical affected Colombian [...]]]></description>
			<content:encoded><![CDATA[<h4>
<a href="#statistical_sample">* Update on methodology and results: Statistical sample</a><br />
<a href="#retest">* Update on methodology and results: Retest</a><br />
</h4>
<p style="text-align: justify;">The <a href="https://www.openssl.org/news/secadv_20140407.txt" target="_blank">TLS heartbeat read overrun</a> <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160">(CVE-2014-0160)</a> (also known as <a href="http://heartbleed.com/" target="_blank">The Heartbleed Bug</a>) is the hot topic right now on the information security field. While this publication is not about the technical detail of the bug but some statistics of critical affected Colombian domains, I will show you a big picture of the vulnerability and the results of my research.</p>
<p>If you would like to know more about it, please take a look at the following resources: <a href="http://heartbleed.com/" target="_blank">The Heartbleed Bug</a>, <a href="http://blog.existentialize.com/diagnosis-of-the-openssl-heartbleed-bug.html" target="_blank">Sean Cassidy's technical analysis</a>, <a href="http://blog.ioactive.com/2014/04/bleeding-hearts.html" target="_blank">Robert Erbes' technical analysis</a>.</p>
<h2>Vulnerability summary</h2>
<p style="text-align: justify;">The Heartbleed Bug allows an attacker to read sensitive information contained in the memory of the process which depends on the OpenSSL implementation (OpenSSL from version 1.0.1 to 1.0.1f).</p>
<p style="text-align: justify;">Sensitive information such as user credentials, session IDs, data sent to the server and received by the client, private keys, and <a href="https://twitter.com/search?q=%23heartbleed&amp;src=typd" target="_blank">anything you can imagine</a> could be found by exploiting this vulnerability.</p>
<p style="text-align: justify;">Affected users are recommended to fix the issue as soon as possible by updating to the latest version of OpenSSL (1.0.1g).</p>
<h2>Methodology and results</h2>
<h3>Restricted Colombian domain names</h3>
<p style="text-align: justify;">Using domain name searching methods I was able to get a long-enough list of third-level domains (the list does not include subdomains) which are classified by <a href="http://www.cointernet.com.co/" target="_blank">NIC.CO</a> as <a href="http://www.cointernet.com.co/dominios/uso-restringido" target="_blank">restricted user domains</a>, this is, the person who register the domain have to meet certain legal requirements to be able to get a restricted domain name (gov.co, edu.co, mil.co, and org.co).</p>
<p style="text-align: justify;">These domains are used by Colombian government agencies or institutions, Colombian educational sector institutions recognized by the Ministry of National Education, Agencies or institutions of the Colombian Armed Forces, and Companies or nonprofit institutions resident in Colombia.</p>
<div id="statistical_sample">
<h4>Update note about the statistical sample</h4>
<p>Through this methodology, a sample of 2612 domain names were found which is a 99% representative sample for a hypothetical case of 10000 (*) valid and functional domain names.<br />* Approximate data provided by NIC.CO</p>
</div>
<h3>Evaluation date</h3>
<p>Start time: 08/04/2014 - 22:48<br />
Finish time: 08/04/2014 - 23:30</p>
<h3>Identifying vulnerable domains</h3>
<p style="text-align: justify;">A modified version of the Jared Stafford's python script was used to identify in a non-intrusive way the affected domains (<strong>no data was stored or viewed on the test, the script just only show the status of the server</strong>).</p>
<div class="geshi no python" style="font-family: monospace;">&nbsp; &nbsp; <span class="kw1">for</span> domain <span class="kw1">in</span> domains:<br />
&nbsp; &nbsp; &nbsp; &nbsp; result = <span class="st0">&#39;&#39;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ip = domain_exists<span class="br0">&#40;</span>domain<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> ip <span class="sy0">!</span>= <span class="kw2">False</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> check_connectivity<span class="br0">&#40;</span>domain<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">try</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> check_heartbleed<span class="br0">&#40;</span>domain<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result = <span class="st0">&#39;VULNERABLE&#39;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result = <span class="st0">&#39;NOT-VULNERABLE&#39;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">except</span> <span class="kw2">Exception</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result = <span class="st0">&#39;SECURE-CHANNEL-UNSUPPORTED&#39;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result = <span class="st0">&#39;SECURE-CHANNEL-UNSUPPORTED&#39;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result = <span class="st0">&#39;NON-EXISTENT&#39;</span></div>
<h3>Results</h3>
<p style="text-align: justify;">2612 restricted domain names were tested against the vulnerability (<strong>perhaps this is not the total number of valid domain names</strong>). There are 1592 domains that are not vulnerable and 252 that are (a total of 1844 domains with HTTPS support distributed on 985 different IPs, and 768 not applicable):</p>
<p style="text-align: center;"><a title="Overview of OpenSSL security bug on critical Colombian domain names" rel="sexy[heartbleed]" href="http://www.sinfocol.org/archivos/2014/04/OverviewHeartbleedCriticalColombianDomains.png" target="_blank"><br />
<img class="aligncenter" title="Overview of OpenSSL security bug on critical Colombian domain names" src="http://www.sinfocol.org/archivos/2014/04/OverviewHeartbleedCriticalColombianDomains.png" alt="" /><br />
</a></p>
<p style="text-align: justify;">This is the detail of the results classified by each Third-level domain:</p>
<p> <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> gov.co, 602 not vulnerable (51.99%), 70 vulnerable (6.04%), 486 not applicable (41.97%).<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> edu.co, 639 not vulnerable (68.34%), 104 vulnerable (11.12%), 192 not applicable (20.53%).<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> mil.co, 17 not vulnerable (25.76%), 42 vulnerable (63.64%), 7 not applicable (10.61%).<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> org.co, 334 not vulnerable (73.73%), 36 vulnerable (7.95%), 83 not applicable (18.32%).</p>
<p style="text-align: center;"><a title="Comparison of the presence of the vulnerability classified by Colombian third-level domains" rel="sexy[heartbleed]" href="http://www.sinfocol.org/archivos/2014/04/ComparisonVulnerabilityPresence.png" target="_blank"><br />
<img class="aligncenter" title="Comparison of the presence of the vulnerability classified by Colombian third-level domains" src="http://www.sinfocol.org/archivos/2014/04/ComparisonVulnerabilityPresence.png" alt="" /><br />
</a></p>
<p>Finally, we got the distribution of the vulnerable Colombian third-level domains:
<p style="text-align: center;"><a title="Overview of OpenSSL security bug classified by third-level domains" rel="sexy[heartbleed]" href="http://www.sinfocol.org/archivos/2014/04/OverviewHeartbleedCriticalColombianDomains2.png" target="_blank"><br />
<img class="aligncenter" title="Overview of OpenSSL security bug classified by Colombian third-level domains" src="http://www.sinfocol.org/archivos/2014/04/OverviewHeartbleedCriticalColombianDomains2.png" alt="" /><br />
</a></p>
<div id="retest">
<h3>Retest</h3>
<p style="text-align: center;">One month later 252 domains have been tested against the vulnerability, the results are shown:</p>
<p> <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> 228 (90.48%) domains do not have the bug anymore.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> 5 (1.98%) domains turn off their HTTPS support.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> 6 (2.38%) domains do not have an A record associated on the DNS.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> 18 (7.14%) domains on 16 IPs are still vulnerable.
</p>
<p>Comparison of vulnerable domains one month later:
<p style="text-align: center;"><a title="Comparison of vulnerable domains one month later" rel="sexy[heartbleed]" href="http://www.sinfocol.org/archivos/2014/05/ComparisonVulnerableDomainsRetest.png" target="_blank"><br />
<img class="aligncenter" title="Comparison of vulnerable domains one month later" src="http://www.sinfocol.org/archivos/2014/05/ComparisonVulnerableDomainsRetest.png" alt="" /></a></p>
<p>Final overview of the OpenSSL security bug on Colombian third-level domain names:
<p style="text-align: center;"><a title="Final overview of the OpenSSL bug security on Colombian third-level domain names" rel="sexy[heartbleed]" href="http://www.sinfocol.org/archivos/2014/05/FinalOverview.png" target="_blank"><br />
<img class="aligncenter" title="Final overview of the OpenSSL bug security on Colombian third-level domain names" src="http://www.sinfocol.org/archivos/2014/05/FinalOverview.png" alt="" /></a></p>
</div>
<h3>Incident handling</h3>
<p> <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> 08/04/2014 - Start of the security test.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> 09/04/2014 - <a href="http://www.colcert.gov.co/" target="_blank">colCERT</a> was contacted to coordinate the incident handling and communicate the issue to the affected domains.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> 10/04/2014 - First contact with colCERT (list of 252 affected domain names was provided), they are taking now all necessary steps to solve the issue on the affected domains.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> 11/04/2014 - First contact with NIC.CO, they are working together with colCERT to solve the issue on all the affected domains.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> 08/05/2014 - Start of the security retest.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> 10/05/2014 - Final update.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sinfocol.org/2014/04/overview-of-openssl-security-bug-cve-2014-0160-on-critical-colombian-domain-names/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Campus Party Colombia 2013</title>
		<link>http://www.sinfocol.org/2013/10/campus-party-colombia-2013/</link>
		<comments>http://www.sinfocol.org/2013/10/campus-party-colombia-2013/#comments</comments>
		<pubDate>Mon, 14 Oct 2013 00:19:17 +0000</pubDate>
		<dc:creator>Daniel Correa</dc:creator>
		
		<category><![CDATA[Criptografía]]></category>

		<category><![CDATA[Ingeniería Inversa]]></category>

		<category><![CDATA[Retos informáticos]]></category>

		<category><![CDATA[Seguridad]]></category>

		<category><![CDATA[Campus Party]]></category>

		<category><![CDATA[CTF]]></category>

		<guid isPermaLink="false">http://www.sinfocol.org/?p=1058</guid>
		<description><![CDATA[Esta semana, del 7 al 13 de Octubre, se llevó a cabo la sexta edición de Campus Party Colombia en la ciudad de Medellín. En el área de seguridad se encontraba la propuesta de la competencia para este año, en total fueron 30 retos, de los cuales se solucionaron 23.
En el siguiente enlace puede encontrar [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Esta semana, del 7 al 13 de Octubre, se llevó a cabo la sexta edición de <a href="http://www.campus-party.com.co/" target="_blank">Campus Party Colombia</a> en la ciudad de Medellín. En el <a href="http://www.campus-party.com.co/2013/seguridad.html#wargame" target="_blank">área de seguridad</a> se encontraba la propuesta de la competencia para este año, en total fueron 30 retos, de los cuales se solucionaron 23.</p>
<p style="text-align: justify;">En el siguiente enlace puede encontrar la solución para cada uno de lo 23 retos resueltos:</p>
<p> <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> <a href="http://null-life.com/writeups/Campus%20Party%20Colombia/WriteUpCampusPartyCo2013.zip">Solución retos de seguridad Campus Party Colombia 2013</a></p>
<p style="text-align: justify;">En el sitio principal de <a href="http://www.null-life.com/">NULL Life</a> puede encontrar solucionarios a otros eventos organizados a nivel nacional e internacional.</p>
<p style="text-align: justify;">El tablero "final" de puntuación es el siguiente:<br />
<img src="http://www.sinfocol.org/archivos/2013/10/ScoreboardCTFCPO06.png" width="600" alt="Scoreboard Campus Party Colombia 2013"  /></p>
<p style="text-align: justify;">Tanto en el juego presencial como en la gráfica se puede evidenciar el juego no limpio, la gráfica con los valores reales queda a consideración de los organizadores.</p>
<p style="text-align: justify;">Debido a esto, y a otros sucesos, el equipo <a href="http://www.null-life.com/">NULL Life</a>, anuncia públicamente que no volverá a participar en este tipo de eventos, a menos que reglas claras y concisas sean establecidas antes del juego, y estas se respeten.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sinfocol.org/2013/10/campus-party-colombia-2013/feed/</wfw:commentRss>
		</item>
		<item>
		<title>One-time pad challenge</title>
		<link>http://www.sinfocol.org/2013/07/one-time-pad-challenge/</link>
		<comments>http://www.sinfocol.org/2013/07/one-time-pad-challenge/#comments</comments>
		<pubDate>Sun, 14 Jul 2013 00:21:39 +0000</pubDate>
		<dc:creator>Daniel Correa</dc:creator>
		
		<category><![CDATA[Criptografía]]></category>

		<category><![CDATA[Retos informáticos]]></category>

		<category><![CDATA[OTP]]></category>

		<category><![CDATA[Vernam Cipher]]></category>

		<guid isPermaLink="false">http://www.sinfocol.org/?p=1053</guid>
		<description><![CDATA[El día 7 de Marzo de 2013 publiqué en  el grupo de Sinfocol en Facebook un mini reto relacionado con el cifrado One-time pad, cuyo funcionamiento constituye el esquema perfecto de cifrado si es usado correctamente:
Los tres ganadores fueron:
1. Everth Gallegos (PerverthsO)
2. Manuel Suárez (Blackubay)
3. Juan Escobar
La descripción del reto todavía se encuentra en [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">El día 7 de Marzo de 2013 publiqué en <a href="https://www.facebook.com/groups/107415515957353/" target="_blank"> el grupo de Sinfocol en Facebook</a> un mini reto relacionado con el cifrado <a href="https://en.wikipedia.org/wiki/One-time_pad" target="_blank">One-time pad</a>, cuyo funcionamiento constituye el esquema perfecto de cifrado si es usado correctamente:</p>
<p>Los tres ganadores fueron:<br />
1. <a href="https://twitter.com/PerverthsO" target="_blank">Everth Gallegos (PerverthsO)</a><br />
2. <a href="https://twitter.com/Unnamedlab" target="_blank">Manuel Suárez (Blackubay)</a><br />
3. <a href="https://twitter.com/itsecurityco" target="_blank">Juan Escobar</a></p>
<p>La descripción del reto todavía se encuentra en el grupo:<br />
<center><br />
<img src="http://www.sinfocol.org/archivos/2013/07/OTP_Facebook.png" /><br />
</center></p>
<p>El contenido del archivo dota2.txt  es el siguiente:</p>
<pre>
ekFAEUFdTRFQU05RFV9VWEEeE3oTW1VcGFhSF3BHXVdYRR4UWEMXXVJTRl5eXhNC
UVwZRklQUldRU0UZWVEWX04XU1dTQkVTQUMfFXoVV1ZbV1tBF0VWVF4KF1pARhV4
Fl1aXUAURl9VQhZHUVRQQRJAVUFDQFhKW0ddEUBbQ1dGGVdaX1ZDQBNYVlZcEF1W
E1JdS1JXQhBCUVoWehBAUksRHhJAR1teEkBYRxNAUVUXU1VUVlBMElZeGERfUF4K
GVRcURFJVE0QRVlQThNQUkJUGF9YQVRbSRJCRVtbXVcRVRlOXEZcGFtXFkNHRU1a
GhR1Q0UUW1FYTxhRSxJGXlFRQhBXV1RHUl9bXlVLFURSRlcfFEFcUUBRE0BQQxda
XVwQWFEXQFxcVBJHXlBWXRFGRVtDUxFZXllMVVISW1QIExwTcRRYXVJeEEdfUFwQ
QFxcShNMXVpRFkldTBdCXxZVVhdEQVxcEElYRUsTVU1WQl0dElZaUBNZW0MQQFgS
X1VCGU9WQkVBVVVFVEMRVlQWXVdbVl9OVF0QUEwVRV1UEF5ZR1RRFlxRF19IEVRe
WkNGXVdUXRoUZl1VTBZWQFReTRZDWBBfWUNRFFtcU1cZV0RRVVtdUhRbUxRKUUxQ
VlAZR1lfQBoYWlxRUkVDXBhDUVZIEkBSQVMRRE1AVBVAXRRbXBlWV01QVEJWURFV
SxJBX1dcFlhLGXwRVkNTWF1UE15IGF5cQksYV1dXGVxdSkZYV0xUVBVVSxBdVl9b
UFBdXFpNAxhDUVZKElNWREZUWVdYTRNVWFMTUUFCVllDGUNfFlpREVteR0QTSl9R
XFxUVkRFF1BdEkNXQVpcXxJHX19HGhRNXlhXSkYTU0gYRFpWEl5YSlFQEFZeEVxY
WkRNVFtQVRFDXVNOEVpWV18TR1pVFl9XQ1JXFV9fGUJDTUVQAxFTVkEQQFlTVxB6
FVVaGVFWXF1QVRlSUFhRRBdGX1JMFn8XUlUVXVVbQ0ddWU0cEnpBTRlRVxJYV0EY
VFxeVFBFUVdGF1gWRlFNGFJDVlUUQFxWX0FHFw==
</pre>
<p style="text-align: justify;">
Las pistas proporcionadas durante el transcurso de cada día en la semana fueron:<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> Base64.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> Esquema de cifrado perfecto, indestructible, inquebrantable, inmejorable, irrompible, etc... en ciertos casos, cuando es usado de forma correcta.<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> La primera palabra del texto plano es: "How".<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> La última pista es: Número E!<br />
 <img src='http://www.sinfocol.org/ac8ce9c0fb4e688da3cf425a83bc8da1/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /> Texto plano = b64.decode(dota2.txt) ^ Número E</p>
<p>La última verdadera pista contenía la forma de resolver el acertijo, acertijo que puede ser encontrado en forma de código fuente (Gracias a Juan Escobar por permitirme <a href="http://www.sinfocol.org/archivos/2013/07/dota.py">publicar su código</a>):</p>
<div class="geshi no python" style="font-family: monospace;"><span class="co1"># Reto Sinfocol</span><br />
<span class="co1"># https://www.facebook.com/groups/107415515957353/422375584461343/</span><br />
<span class="co1"># Juan M. Escobar T. @itsecurityco</span></p>
<p><span class="kw1">import</span> <span class="kw3">base64</span></p>
<p>ciphertext = <span class="kw3">base64</span>.<span class="me1">b64decode</span><span class="br0">&#40;</span><span class="st0">&quot;ekFAEUFdTRFQU05RFV9VWEEeE3oTW1VcGFhSF3BHXVdYRR4UWEMXXVJTRl5eXhNCUVwZRklQUldRU0UZWVEWX04XU1dTQkVTQUMfFXoVV1ZbV1tBF0VWVF4KF1pARhV4Fl1aXUAURl9VQhZHUVRQQRJAVUFDQFhKW0ddEUBbQ1dGGVdaX1ZDQBNYVlZcEF1WE1JdS1JXQhBCUVoWehBAUksRHhJAR1teEkBYRxNAUVUXU1VUVlBMElZeGERfUF4KGVRcURFJVE0QRVlQThNQUkJUGF9YQVRbSRJCRVtbXVcRVRlOXEZcGFtXFkNHRU1aGhR1Q0UUW1FYTxhRSxJGXlFRQhBXV1RHUl9bXlVLFURSRlcfFEFcUUBRE0BQQxdaXVwQWFEXQFxcVBJHXlBWXRFGRVtDUxFZXllMVVISW1QIExwTcRRYXVJeEEdfUFwQQFxcShNMXVpRFkldTBdCXxZVVhdEQVxcEElYRUsTVU1WQl0dElZaUBNZW0MQQFgSX1VCGU9WQkVBVVVFVEMRVlQWXVdbVl9OVF0QUEwVRV1UEF5ZR1RRFlxRF19IEVReWkNGXVdUXRoUZl1VTBZWQFReTRZDWBBfWUNRFFtcU1cZV0RRVVtdUhRbUxRKUUxQVlAZR1lfQBoYWlxRUkVDXBhDUVZIEkBSQVMRRE1AVBVAXRRbXBlWV01QVEJWURFVSxJBX1dcFlhLGXwRVkNTWF1UE15IGF5cQksYV1dXGVxdSkZYV0xUVBVVSxBdVl9bUFBdXFpNAxhDUVZKElNWREZUWVdYTRNVWFMTUUFCVllDGUNfFlpREVteR0QTSl9RXFxUVkRFF1BdEkNXQVpcXxJHX19HGhRNXlhXSkYTU0gYRFpWEl5YSlFQEFZeEVxYWkRNVFtQVRFDXVNOEVpWV18TR1pVFl9XQ1JXFV9fGUJDTUVQAxFTVkEQQFlTVxB6FVVaGVFWXF1QVRlSUFhRRBdGX1JMFn8XUlUVXVVbQ0ddWU0cEnpBTRlRVxJYV0EYVFxeVFBFUVdGF1gWRlFNGFJDVlUUQFxWX0FHFw==&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>key = <span class="st0">&quot;2.7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274274663919320030599218174135966290435729003342952605956307381323286279434907632338298807531952510190115738341879307021540891499348841675092447614606680822648001684774118537423454424371075390777449920695517027618386062613313845830007520449338265602976067371132007093287091274437470472306969772093101416928368190255151086574637721112523897844250569536967707854499699679468644549059879316368892300987931277361782154249992295763514822082698951936680331825288693984964651058209392398294887933203625094431173012381970684161403970198376793206832823764648042953118023287825098194558153017567173613320698112509961818815930416903515988885193458072738667385894228792284998920868058257492796104841984443634632449684875602336248270419786232090021609902353043699418491463140934317381436405462531520961836908887070167683964243781405927145635490613031072085103837505101157477041718986106873969655212671546889570350354&quot;</span><span class="sy0">;</span><br />
<span class="co1"># http://www.greatplay.net/uselessia/articles/e2-1000.html</span></p>
<p>plaintext = <span class="st0">&#39;&#39;</span><br />
<span class="kw1">for</span> i <span class="kw1">in</span> <span class="kw2">range</span><span class="br0">&#40;</span><span class="nu0">0</span>,<span class="kw2">len</span><span class="br0">&#40;</span>ciphertext<span class="br0">&#41;</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; plaintext += <span class="kw2">unichr</span><span class="br0">&#40;</span><span class="kw2">ord</span><span class="br0">&#40;</span>ciphertext<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span> ^ <span class="kw2">ord</span><span class="br0">&#40;</span>key<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></p>
<p><span class="kw1">print</span> plaintext</div>
<p>El texto plano es el siguiente:</p>
<blockquote><p>
How you have felt, O men of Athens, at hearing the speeches of my accusers, I cannot tell; but I know that their persuasive words almost made me forget who I was - such was the effect of them; and yet they have hardly spoken a word of truth. But many as their falsehoods were, there was one of them which quite amazed me; - I mean when they told you to be upon your guard, and not to let yourselves be deceived by the force of my eloquence. They ought to have been ashamed of saying this, because they were sure to be detected as soon as I opened my lips and displayed my deficiency; they certainly did appear to be most shameless in saying this, unless by the force of eloquence they mean the force of truth; for then I do indeed admit that I am eloquent. But in how different a way from theirs!
</p></blockquote>
<p>Felicitaciones a los ganadores!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sinfocol.org/2013/07/one-time-pad-challenge/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PAXCracker: Pick Ax secure image browser bruteforce tool</title>
		<link>http://www.sinfocol.org/2013/04/paxcracker-pick-ax-secure-image-browser-bruteforce-tool/</link>
		<comments>http://www.sinfocol.org/2013/04/paxcracker-pick-ax-secure-image-browser-bruteforce-tool/#comments</comments>
		<pubDate>Wed, 10 Apr 2013 06:38:53 +0000</pubDate>
		<dc:creator>Daniel Correa</dc:creator>
		
		<category><![CDATA[Programación]]></category>

		<category><![CDATA[Seguridad]]></category>

		<category><![CDATA[Bruteforce]]></category>

		<category><![CDATA[Cracking]]></category>

		<category><![CDATA[PAX]]></category>

		<guid isPermaLink="false">http://www.sinfocol.org/?p=1047</guid>
		<description><![CDATA[Finally I got some time to develop a random tool, this time is a wordlist-based bruteforce tool intended to obtain the password of .pax files (Pick Ax image browser). At the moment, PAXCracker is not a sophisticated tool for bruteforcing, but instead it is a simple wordlist iterator that try to read the contents of [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Finally I got some time to develop a random tool, this time is a wordlist-based bruteforce tool intended to obtain the password of .pax files (<a href="http://www.smalleranimals.com/pickaxe.htm" target="_blank">Pick Ax image browser</a>). At the moment, PAXCracker is not a sophisticated tool for bruteforcing, but instead it is a simple wordlist iterator that try to read the contents of .pax files by using <a href="http://www.smalleranimals.com/isource.htm" target="_blank">ImgSource</a> library (_ISource50.dll).</p>
<p>This is a screenshot of the tool guessing a password:<br />
<center><img src="http://www.sinfocol.org/archivos/2013/04/PAXCracker.png" /></center></p>
<p>The magic is in this piece of code (is5_ReadPAX takes care of the "dirty work"):</p>
<div class="geshi no c" style="font-family: monospace;">&nbsp; _is5_Seek<span class="br0">&#40;</span>paxFile, <span class="nu0">0</span>,<span class="nu0">0</span><span class="br0">&#41;</span>;<br />
&nbsp; result <span class="sy0">=</span> _is5_ReadPAX<span class="br0">&#40;</span>paxFile, <span class="sy0">&amp;</span>width, <span class="sy0">&amp;</span>height, <span class="nu0">24</span>, <span class="nu0">0</span>, password, <span class="nu0">0</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>result <span class="sy0">!=</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp;cracked <span class="sy0">=</span> <span class="nu0">1</span>;<br />
&nbsp; &nbsp;<span class="kw2">break</span>;<br />
&nbsp; <span class="br0">&#125;</span></div>
<p>You can find the whole source code in the <a href="https://github.com/sinfocol/PAXCracker">PAXCracker GitHub Project</a>.</p>
<p>You can find too the <a href="http://www.sinfocol.org/archivos/2013/04/PAXCracker.exe">tool compiled on Windows XP x86</a>, you should download <a href="http://www.smalleranimals.com/isource.htm" target="_blank">ImgSource DLL</a> from the original source, and copy the library to the same directory of PAXCracker.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sinfocol.org/2013/04/paxcracker-pick-ax-secure-image-browser-bruteforce-tool/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
