<?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>DisidentS Team &#187; FlashFXP Reversing</title>
	<atom:link href="http://www.disidents.org/tag/flashfxp-reversing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.disidents.org</link>
	<description>-= Sharing Knowledge since 1996! =- Seguridad, Ingeniería Inversa, Redes, Programación, Noticias</description>
	<lastBuildDate>Fri, 03 Sep 2010 13:10:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Sólo quiero bajar algo por ftp! (con FlashFXP xD)</title>
		<link>http://www.disidents.org/2009/02/05/solo-quiero-bajar-algo-por-ftp-con-flashfxp-xd/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=solo-quiero-bajar-algo-por-ftp-con-flashfxp-xd</link>
		<comments>http://www.disidents.org/2009/02/05/solo-quiero-bajar-algo-por-ftp-con-flashfxp-xd/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 01:18:45 +0000</pubDate>
		<dc:creator>spark</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Papers]]></category>
		<category><![CDATA[Aplicaciones Inseguras]]></category>
		<category><![CDATA[Cracking]]></category>
		<category><![CDATA[Downloader]]></category>
		<category><![CDATA[FlashFXP Reversing]]></category>
		<category><![CDATA[Ingeniería Inversa]]></category>
		<category><![CDATA[SparK]]></category>
		<category><![CDATA[Troyano]]></category>
		<category><![CDATA[Virus]]></category>

		<guid isPermaLink="false">http://www.disidents.org/?p=33</guid>
		<description><![CDATA[Hola a todos, el otro día buscando un FlashFXP para bajar algo , encontré la última versión&#8230;.la bajé&#8230;.al ejecutarla, me pidió número de serie&#8230; utilicé el keygen que lo acompañaba. Cuando puse el serial el programa siguió su camino, me apareció una ventanita que decía c:\windows\system32 &#8230;. Me pareció muy raro y sospeché de un [...]]]></description>
			<content:encoded><![CDATA[<p>Hola a todos, el otro día buscando un FlashFXP para bajar algo , encontré la última versión&#8230;.la bajé&#8230;.al ejecutarla, me pidió número de serie&#8230; utilicé el keygen que lo acompañaba.</p>
<p>Cuando puse el serial el programa siguió su camino, me apareció una ventanita que decía c:\windows\system32 &#8230;.</p>
<p>Me pareció muy raro y sospeché de un virus&#8230; obviamente seguí utilizando el programa, y NOD me avisó que &#8220;algo&#8221; se quería conectar&#8230; algo con nombre como qsyrjrwes.exe en la carpeta Datos de Programa de mi usuario en Windows XP.</p>
<p>Obviamente, escribí en arroba sobre ese EXE, para ver de que se trataba, era un simple downloader, definido como downloader.Win32&#8230; Ya postearé el artículo explicando de qué se trata&#8230; <img src='http://www.disidents.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Bueno obviamente, el EXE de flashfxp estaba &#8220;envuelto&#8221; por un dropper, éste sacaba el downloader, y después hacía ejecutar al flashfxp normalmente&#8230;</p>
<p>Empezando a mirar el EXE, encontramos algunas strings que se cargan, y mirándolas por arriba, pienso que son strings encriptadas que desencripta en tiempo de ejecución&#8230;</p>
<p><a href="http://www.disidents.org/wp-content/uploads/2008/12/1.jpg"><img class="aligncenter size-medium wp-image-34" title="1" src="http://www.disidents.org/wp-content/uploads/2008/12/1-300x96.jpg" alt="Strings Encriptadas" width="300" height="96" /></a></p>
<p>Seguramente para evitar que los AV&#8217;s detecten el proceso&#8230;</p>
<p>Cuando debuggeemos por las strings &#8220;.dll&#8221; y &#8220;.exe&#8221;, más precisamente en las direcciones 408D03 y 408D15 veremos estas cosas en la pila:</p>
<p style="text-align: center; ">0012FFAC   01141C30  0  ASCII &#8220;C:\WINDOWS\system32\niksr.dll&#8221;</p>
<p>y luego,</p>
<p style="text-align: center; "> </p>
<p>0012FFA8   01141CA4  ¤  ASCII &#8220;C:\DOCUME~1\SPARKR~1\CONFIG~1\Temp\setup.exe&#8221;</p>
<p style="text-align: left; ">Luego de eso, en estas direcciones podremos ver que el ejecutable creado en la carpeta temporal de nuestro windows, posee un icono de flashfxp&#8230; es raro.. <img src='http://www.disidents.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align: left; "> </p>
<p style="text-align: center; ">00408D39  |. A1 C8A94000    MOV EAX,DWORD PTR DS:[40A9C8]</p>
<p style="text-align: center; ">00408D3E  |. E8 BDFDFFFF    CALL setup-pr.00408B00</p>
<p style="text-align: left; ">En estas dos líneas se ejecuta el EXE liberado en la carpeta temporal de Windows. Igualmente no es el EXE final.</p>
<p style="text-align: left; ">Veremos que entrando al CALL mencionado dos líneas más arriba, y mirando un poco más, se crea un objeto Mutex.</p>
<p style="text-align: left; "><a href="http://www.disidents.org/wp-content/uploads/2008/12/2.jpg"><img class="aligncenter size-medium wp-image-36" title="2" src="http://www.disidents.org/wp-content/uploads/2008/12/2-300x93.jpg" alt="Mutex" width="300" height="93" /></a></p>
<p>Veamos para que sirve un mutex (una definición de la red&#8230;):</p>
<p><em>&#8220;Un mutex funciona exactamente del mismo modo que las secciones críticas. La única diferencia en las implementaciones Win32 es que la sección crítica esta limitada para ser usada con </em><span style="text-decoration: underline;"><em>solamente un proceso</em></span><em>. Si tienes un programa que usa varios hilos, entonces la sección crítica es liviana y adecuada para tus necesidades. Sin embargo, cuando escribes una DLL, es muy posible que diferentes procesos usen la DLL en el mismo momento. En este caso, debes usar mutexes, en lugar de secciones críticas.&#8221;</em></p>
<p>Veremos en la imagen, que genera un código único, que se utiliza como nombre del mutex, para crearlo, con la API CreateMutexA.</p>
<p>Seguido de esto, parece que nuestro troyano necesita descomprimir una dll denominada bcdsa.dll, veamos:</p>
<p>EAX apunta al string C:\WINDOWS\system32\bcdsa.dll.</p>
<p>El ejecutable busca el archivo bcdsa.dll y si no existe, lo crea.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-89" title="fxp1" src="http://www.disidents.org/wp-content/uploads/2009/02/fxp1.jpg" alt="fxp1" width="551" height="44" /></p>
<p>Luego de crear la DLL, descomprime el segundo EXE como hemos visto que el path estaba en memoria y crea el Thread finalmente con la DLL deseada. Capturemos la DLL, para futuro análisis. <img src='http://www.disidents.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Si vamos a buscar la DLL y vemos propiedades encontraremos una descripción extraña:</p>
<p><img class="aligncenter size-full wp-image-90" title="fxp2bcdsa" src="http://www.disidents.org/wp-content/uploads/2009/02/fxp2bcdsa.jpg" alt="fxp2bcdsa" width="402" height="502" /></p>
<p><img class="aligncenter size-full wp-image-91" title="fxp3bcdsa" src="http://www.disidents.org/wp-content/uploads/2009/02/fxp3bcdsa.jpg" alt="fxp3bcdsa" width="404" height="502" /></p>
<p>O es una librería que necesitará el flashfxp final o es algo más&#8230;</p>
<p><img class="aligncenter size-full wp-image-92" title="fxp4" src="http://www.disidents.org/wp-content/uploads/2009/02/fxp4.jpg" alt="fxp4" width="530" height="75" /></p>
<p>Luego de que el Thread es creado, nos aparecerá la ventanita con el mensaje: &#8220;c:\windows\system32&#8243;, esto es lo que me hizo sospechar de la actividad de este ejecutable. Es una falla de programación importante, ya que se da a conocer muy sencillamente, parece que el programador tenía pocos recursos para poder darse cuenta cuando la DLL estaba cargada en memoria&#8230; <img src='http://www.disidents.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Ahora veremos el segundo ejecutable.</p>
<p>Una vez que nuestro amigo está descomprimido veremos que al cargarlo está hecho en C, por eso mismo carga nuestra DLL, que se trata nada más ni nada menos de las MFC, librerías runtime necesarias. <img src='http://www.disidents.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Este EXE, descomprimirá el FlashFXP final, pero además agregará la descompresión de un downloader&#8230; <img src='http://www.disidents.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  para fines non santos&#8230;</p>
<p><img class="aligncenter size-full wp-image-97" title="fxp5" src="http://www.disidents.org/wp-content/uploads/2009/02/fxp5.jpg" alt="fxp5" width="575" height="146" /></p>
<p>El ejecutable de FlashFXP será descomprimido en c:\windows\ bajo el nombre de setup.exe</p>
<p><img class="aligncenter size-full wp-image-103" title="fxp6" src="http://www.disidents.org/wp-content/uploads/2009/02/fxp6.jpg" alt="fxp6" width="573" height="209" /></p>
<p>En esta imagen, podemos ver como ejecuta a FlashFXP original y a su vez, descomprime y crea el downloader, cuyo nombre es aleatorio.</p>
<p>Finalmente, tratará de ejecutar el Downloader, como veremos acá:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-104" title="fxp7" src="http://www.disidents.org/wp-content/uploads/2009/02/fxp7.jpg" alt="fxp7" width="539" height="75" /></p>
<p>Por último el proceso termina, llamando a ExitProcess. <img src='http://www.disidents.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Entonces si queremos nuestro EXE final de FlashFXP, directamente lo buscamos en la carpeta Windows de nuestro sistema.</p>
<p>Nos damos cuenta que el EXE es el original, porque al hacer botón derecho y propiedades, veremos los datos originales de la aplicación. Lo cuál ante un usuario atento, se dará cuenta que los otros ejecutables no son los originales. <img src='http://www.disidents.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Es importantísimo poder tener firmado los ejecutables de nuestras aplicaciones, además de poder tener la información guardada como propiedades del ejecutable, de manera que un usuario puede verificar la autenticidad de varias maneras.</p>
<p>Siempre hay que estar atento a actividades extrañas, como por ejemplo la ventana que sale a modo de información avisando que la DLL ya fue creada, para poder continuar la descompresión&#8230;. como lo vimos anteriormente.</p>
<p>Eso es todo, espero que les haya servido y gustado. <img src='http://www.disidents.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Nos vemos la próxima.</p>
 <span class="post2pdf_span" style="border: 1px solid gray; width: 160px; text-align: left; "><a href="http://www.disidents.org/wp-content/plugins/post2pdf/generate.php?post=!" rel="nofollow"><img src="http://www.disidents.org/wp-content/plugins/post2pdf/icon/pdf.png" width="16px" height="16px" />convert this post to pdf.</a></span>]]></content:encoded>
			<wfw:commentRss>http://www.disidents.org/2009/02/05/solo-quiero-bajar-algo-por-ftp-con-flashfxp-xd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
