<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>48Bits Blog &#187; Retos 48bits</title>
	<atom:link href="http://blog.48bits.com/category/retos-48bits/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.48bits.com</link>
	<description>48Bits ... The one and a half architecture land.</description>
	<lastBuildDate>Thu, 19 Jan 2012 11:31:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>48bits exploit4f00d #2</title>
		<link>http://blog.48bits.com/2008/05/28/48bits-exploit4f00d-2/</link>
		<comments>http://blog.48bits.com/2008/05/28/48bits-exploit4f00d-2/#comments</comments>
		<pubDate>Wed, 28 May 2008 16:22:11 +0000</pubDate>
		<dc:creator>48bits</dc:creator>
				<category><![CDATA[48Bits exploits]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Retos 48bits]]></category>

		<guid isPermaLink="false">http://blog.48bits.com/?p=246</guid>
		<description><![CDATA[- Reto powered by Matalaz - Ya hay segundo reto &#8220;exploit4f00d&#8221; en 48bits. Visto que el anterior reto a cambio de un bocata de nocilla de los buenos con solera ha tenido éxito os presentamos otro más, esta vez, además el clásico bocata de nocilla, regalamos pincho de anchoa y &#8220;txikito&#8221; a aquellos que descubran [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://static.consumer.es/www/imgs/2006/11/4046.gif" align="texttop" height="191" width="291" /></p>
<p><strong>- Reto powered by Matalaz -</strong></p>
<p>Ya hay segundo reto &#8220;exploit4f00d&#8221; en 48bits. Visto que el anterior reto a cambio de un bocata de nocilla de los buenos con solera ha tenido éxito os presentamos otro más, esta vez, además el clásico bocata de nocilla, regalamos pincho de anchoa y &#8220;txikito&#8221; a aquellos que descubran esta vulnerabilidad y la exploten de un modo diferente.</p>
<p><strong>¿En qué consiste el reto?</strong></p>
<p>Esta vez también os enfrentáis al mundo real, tendréis que explotar una vulnerabilidad “0day” en un software de una compañia importante. Esta compañía es en esta ocasión el gigante IBM.</p>
<p><span id="more-246"></span></p>
<p><strong>¿Eso no está mal?</strong></p>
<p>No, si resulta que la empresa pasa de todo y vía e-mail no consigues nada.</p>
<p>No, si, además, los servicios de soporte, tras una llamada telefónica, solo te preguntan por tu comercial.</p>
<p>No, si la vulnerabilidad es tan obvia que mi abuela la encontraría en menos de una hora.</p>
<p>No, si además de todo esto añadimos que como es la ultimísima versión nadie lo está utilizando en producción (hasta que no pasan 1 o 2 años mínimo nadie pone un software de base de datos nuevo en producción).</p>
<p><strong>Vale, me mola el asunto, ¿qué software es?</strong><br />
El software a explotar es IBM DB2 v9.5 (lo último de lo último) en su versión para Windows. Podéis usar la versión express (freeware) o probar con la enterprise (disponible en versión demo). Funciona en todas.</p>
<p><strong>¿Donde me lo bajo?</strong><br />
Tienes que bajarte el siguiente <a href="https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?lang=en_US&amp;source=swg-db2expresscviper2">fichero</a>. Hace falta registrarse, sin embargo, siempre hay <a href="http://www.bugmenot.com/view/ibm.com">alternativas</a> 0:-)</p>
<p><strong>¿Y cuáles son las reglas y el objetivo?</strong><br />
El objetivo del reto es conseguir un exploit funcional para la vulnerabilidad <strong>local</strong> con el payload que se quiera.</p>
<p>Las reglas son las siguientes:</p>
<p>El proceso vulnerable debe seguir corriendo sin interrupción durante todo el proceso, incluso despues de haberse ejecutado el exploit. La vulnerabilidad no puede ser explotada con el típico DLL injection (¿Hacen falta más detalles?). Buscaros la vida y hacerlo del modo más original que se os ocurra.</p>
<p><strong>Vale, ya lo he conseguido ¿ahora qué hago?</strong></p>
<p>Para poder acceder a la comida tendrás que enviarnos tu solución que debería incluir:<br />
Descripción de las herramientas que has usado para descubrir la vulnerabilidad.<br />
Descripción del fallo.<br />
Descripción del proceso para explotarlo.<br />
Código fuente del exploit y cualquier material adicional que consideres oportuno.</p>
<p><strong>Además de la comida, ¿qué gano con esto?</strong><br />
Devolver a la comunidad lo que la comunidad te dá.<br />
Tu explicación, una vez publicada, puede ayudar a gente a aprender cosas interesantes y/o aficionarse por el tema. Además quién sabe, puede que alguna empresa se interese por tí…</p>
<p><strong>No controlo mucho, ¿es muy chungo?</strong><br />
No, precísamente es un fallo muy fácil de descubrir, explotar y documentar. Lo descubriría mi abuela. Así que sin miedo!!</p>
<p><strong>¿Alguna pista sobre el fallo?</strong><br />
No. Búscate la vida.</p>
<p><strong>¿Cuánto tiempo tengo?</strong><br />
No hay límite de tiempo, en el momento que recibamos al menos dos soluciones, lo comunicaremos unos días antes para que los que estén en ello todavía puedan terminarlo. En el improbable caso de que resultara desierto, pues publicaremos nuestra solución o daremos algo más de tiempo si alguien lo pide.</p>
<p><strong>¿HOYGA, AHONDE EMBIO MI SOLUZION?</strong><br />
staff (at) 48bits (dot) com</p>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.48bits.com/2008/05/28/48bits-exploit4f00d-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Siguen los retos</title>
		<link>http://blog.48bits.com/2007/08/02/siguen-los-retos/</link>
		<comments>http://blog.48bits.com/2007/08/02/siguen-los-retos/#comments</comments>
		<pubDate>Thu, 02 Aug 2007 19:32:30 +0000</pubDate>
		<dc:creator>Victor Manuel Alvarez</dc:creator>
				<category><![CDATA[Retos 48bits]]></category>

		<guid isPermaLink="false">http://blog.48bits.com/?p=145</guid>
		<description><![CDATA[Para no perder el ritmo seguimos proponiendo nuevos retos en 48bits, y esta vez no se trata de ingeniería inversa, se trata de un reto de programación, porque un buen reverser tiene que ser además un buen programador. Para este reto haremos lo mismo que antes, las soluciones me las envían por correo a plusvic[at]yahoo[dot]com, [...]]]></description>
			<content:encoded><![CDATA[<p>Para no perder el ritmo seguimos proponiendo nuevos retos en 48bits, y esta vez no se trata de ingeniería inversa, se trata de un reto de programación, porque un buen <em>reverser</em> tiene que ser además un buen programador. Para este reto haremos lo mismo que antes, las soluciones me las envían por correo a plusvic[at]yahoo[dot]com, y dentro de una semana más o menos publicaremos las soluciones recibidas y eligiremos la mejor. Se admite cualquier lenguaje de programación razonablemente usado en el siglo XXI, ya sabéis: C y familia, incluyendo al primo sharp, Java, Python, Perl &#8212; que sé que hay algún fan de Perl por ahí <img src='http://blog.48bits.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  &#8212; , Pascal, Ruby, ensamblador si hay algún valiente &#8211;pero nada de MASM que Mario se pone de mala leche&#8211;, y que hostias&#8230;. el que les de la gana, a ver si hay huevos y alguien manda el programa para la máquina de Turing. Pero al grano, el problema es este:</p>
<p>Dada una lista de N números enteros (positivos y negativos), encontrar el mayor valor que es posible obtener sumando cualquier grupo de números consecutivos dentro de la lista. Por ejemplo, si la lista fuera: 1,-2,5,3,-4,5,0,2,-2,3,-7,5,1. La mayor suma que se puede obtener es 12, resultado de sumar los valores 5,3,-4,5,0,2,-2,3. No hay otra suma de números consecutivos dentro de la lista que sea mayor que 12. El programa naturalmente recibirá como entrada una lista con una cantidad arbitraria de números (en un fichero, por teclado, o como se prefiera) y retornará el valor de la suma máxima, y si es posible, también la secuencia de números que forman parte de la suma. Se valorará la eficiencia en cuanto a tiempo de ejecución para valores grandes de N.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.48bits.com/2007/08/02/siguen-los-retos/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>And the Oscar goes to&#8230;. Miguel!</title>
		<link>http://blog.48bits.com/2007/08/02/and-the-oscar-goes-to-miguel/</link>
		<comments>http://blog.48bits.com/2007/08/02/and-the-oscar-goes-to-miguel/#comments</comments>
		<pubDate>Thu, 02 Aug 2007 08:36:48 +0000</pubDate>
		<dc:creator>Victor Manuel Alvarez</dc:creator>
				<category><![CDATA[Retos 48bits]]></category>

		<guid isPermaLink="false">http://blog.48bits.com/?p=141</guid>
		<description><![CDATA[Pues sí, el ganador en la categoría de mejor reverser de la segunda edición de los 48bits Academy Awards ha sido nuestro amigo Miguel, con esta solución. En efecto, como se puede ver en la solución de Miguel, el fichero de licencia comienza con un byte de control, seguido de un entero de 32 bits, [...]]]></description>
			<content:encoded><![CDATA[<p>Pues sí, el ganador en la categoría de mejor reverser de la segunda edición de los 48bits Academy Awards ha sido nuestro amigo Miguel, con esta <a href='http://blog.48bits.com/wp-content/uploads/2007/08/solucion.txt' title='solucion.txt'>solución</a>. </p>
<p>En efecto, como se puede ver en la solución de Miguel, el fichero de licencia comienza con un byte de control, seguido de un entero de 32 bits, y a continuación un array de 511 bytes. Estos 511 bytes son los nodos de un árbol binario perfecto de profundidad 8. Recordemos que un árbol binario es aquel en el que cada nodo puede tener 0, 1 o 2 dos hijos, y es perfecto cuando no hay ningún nodo que tenga un solo hijo, y todas las hojas están en el mismo nivel de profundidad. Los 511 nodos están dispuestos según el recorrido inorder del árbol, que consiste en hacer el recorrido del subárbol izquierdo, procesar el nodo actual, y luego recorrer el subárbol derecho. El array resultante parece ser una representación aplastada del árbol, como se muestra en la figura. Además, al tratarse de un árbol perfecto, la raíz del árbol cae justo en el centro del array.</p>
<p><a href='http://blog.48bits.com/wp-content/uploads/2007/08/arbolbinario.JPG' title='arbolbinario.JPG'><img src='http://blog.48bits.com/wp-content/uploads/2007/08/arbolbinario.thumbnail.JPG' alt='arbolbinario.JPG' /></a></p>
<p>El algoritmo de verficación consiste en recorrer el árbol comenzando por la raíz, hasta una de sus hojas, usando los bits del byte de control para decidir en cada nivel si descendemos por la rama izquierda o derecha del nodo actual. Si el bit es 0 vamos por la izquierda, si es 1 por la derecha. Naturalmente el árbol tiene 8 niveles (o 9 se cuenta la raíz) porque el byte de control tiene 8 bits,  y se usa un bit para tomar la decisión &#8220;izquierda o derecha&#8221; en cada nivel. Al hacer el recorrido se van sumando los valores de los nodos por lo que se pasa, y al final este valor tiene que ser igual al entero de 32 bits que sigue al byte de control.</p>
<p>Como ven el algoritmo es muy sencillo, pero es un buen ejercicio para refrescar algunos conceptos básicos relacionados con la recursividad y los recorridos de árboles. Además vale la pena echarle una ojeada a la solución de Miguel, que aprovecha las características del árbol y su recorrido para hacer una implementación iterativa del algoritmo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.48bits.com/2007/08/02/and-the-oscar-goes-to-miguel/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Come on baby, crack my file</title>
		<link>http://blog.48bits.com/2007/07/26/come-on-baby-crack-my-file/</link>
		<comments>http://blog.48bits.com/2007/07/26/come-on-baby-crack-my-file/#comments</comments>
		<pubDate>Thu, 26 Jul 2007 11:40:23 +0000</pubDate>
		<dc:creator>Victor Manuel Alvarez</dc:creator>
				<category><![CDATA[Ingeniería inversa]]></category>
		<category><![CDATA[Retos 48bits]]></category>

		<guid isPermaLink="false">http://blog.48bits.com/?p=137</guid>
		<description><![CDATA[Teniendo cuenta la buena acogida que tuvo el &#8220;reverse me&#8221; anterior entre el público asistente, les dejo mi última creación. Para que todo el mundo pueda hacerlo sin caer en la tentación de ver la respuesta, pedimos que no se publiquen las soluciones en los comentarios del blog. Los que tengan la solución antes del [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://blog.48bits.com/wp-content/uploads/2007/07/tree.thumbnail.jpg' alt='tree.jpg' /><br />
Teniendo cuenta la buena acogida que tuvo el &#8220;reverse me&#8221; anterior entre el público asistente, les dejo mi <a href="http://www.48bits.com/crackmes/r2/reverseme2.rar">última creación</a>. Para que todo el mundo pueda hacerlo sin caer en la tentación de ver la respuesta, pedimos que no se publiquen las soluciones en los comentarios del blog. Los que tengan la solución antes del próximo jueves 2 de agosto me la pueden enviar a plusvic[at]yahoo[dot]com, después de ese día publicaremos todas las soluciones enviadas. Aclaro que es bastante fácil encontrar un fichero de licencia válido sin entender el algoritmo de verificación, el objetivo del &#8220;reverse me&#8221; es entender el algoritmo. Así que&#8230;.</p>
<p>&#8230;come on baby crack my file,<br />
come on baby crack my file,<br />
try to set the key on&#8230;&#8230; file.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.48bits.com/2007/07/26/come-on-baby-crack-my-file/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Please, reverse me!</title>
		<link>http://blog.48bits.com/2007/07/23/please-reverse-me/</link>
		<comments>http://blog.48bits.com/2007/07/23/please-reverse-me/#comments</comments>
		<pubDate>Mon, 23 Jul 2007 11:28:01 +0000</pubDate>
		<dc:creator>Victor Manuel Alvarez</dc:creator>
				<category><![CDATA[Retos 48bits]]></category>

		<guid isPermaLink="false">http://blog.48bits.com/?p=132</guid>
		<description><![CDATA[El sábado me quedé con ganas de Hack it en la Euskal . Está mal que lo diga yo, pero formamos un dream team que arrasó con las pruebas finales en tiempo récord, y al final todos nos quedamos deseando que hubieran más pruebas por hacer. Así que mientras regresaba en el metro me puse [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.48bits.com/wp-content/uploads/2007/07/cono1.jpg" title="cono1.jpg"><img align="right" src="http://blog.48bits.com/wp-content/uploads/2007/07/cono1.thumbnail.jpg" alt="Alegoría de reverser tallada en bronce" title="Alegoría de reverser tallada en bronce" /></a><br />
El sábado me quedé con ganas de Hack it en la <a href="http://www.euskalencounter.org">Euskal </a>. Está mal que lo diga yo, pero formamos un dream team que arrasó con las pruebas finales en tiempo récord, y al final todos nos quedamos deseando que hubieran más pruebas por hacer. Así que mientras regresaba en el metro me puse a pensar en un algoritmo interesante para un &#8220;reverse me&#8221;, y el resultado ha sido <a href="http://www.48bits.com/crackmes/reverseme.rar">este</a>.</p>
<p>Solo adelantaré que no es demasiado difícil, y que hay que desempolvar un poco las matemáticas elementales. ¿Alguna pregunta o comentario&#8230;?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.48bits.com/2007/07/23/please-reverse-me/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

