<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.windowstecnico.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Windows Técnico : Antivirus, Trucos</title><link>http://www.windowstecnico.com/archive/tags/Antivirus/Trucos/default.aspx</link><description>Etiquetas: Antivirus, Trucos</description><dc:language /><generator>CommunityServer 2008.5 (Build: 30929.2835)</generator><item><title>Detectando y eliminando Keyloggers</title><link>http://www.windowstecnico.com/archive/2010/02/02/detectando-y-eliminando-keyloggers.aspx</link><pubDate>Tue, 02 Feb 2010 13:23:54 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:1690</guid><dc:creator>Manuel Fernandez</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.windowstecnico.com/rsscomments.aspx?PostID=1690</wfw:commentRss><comments>http://www.windowstecnico.com/archive/2010/02/02/detectando-y-eliminando-keyloggers.aspx#comments</comments><description>&lt;p&gt;Durante este post volveremos a hablar, como no, de algunas de las herramientas de la suite de Sysinternals, aplicándolas a un caso práctico en donde se analizará el comportamiento de aplicaciones tipo ‘keylogger’ para aprender a detectarlas y eliminarlas. Para ello utilizaremos tres aplicaciones de Sysinternals, las cuales ya recomendé &lt;a href="http://www.windowstecnico.com/archive/2009/11/25/herramientas-gratuitas-indispensables-en-windows-para-los-profesionales-it.aspx"&gt;anteriormente&lt;/a&gt;. Estas aplicaciones son &lt;a href="http://technet.microsoft.com/es-es/sysinternals/bb896645(en-us).aspx"&gt;ProcessMonitor&lt;/a&gt; (ProcMon.exe), &lt;a href="http://technet.microsoft.com/es-es/sysinternals/bb896653(en-us).aspx"&gt;ProcessExplorer&lt;/a&gt; (ProcExp.exe) y &lt;a href="http://technet.microsoft.com/es-es/sysinternals/bb963902(en-us).aspx"&gt;Autoruns&lt;/a&gt; (autoruns.exe) .&lt;/p&gt;  &lt;p&gt;Todas estas aplicaciones y muchas más están contenidas en la suite de Sysinternals, descargable desde &lt;a href="http://download.sysinternals.com/Files/SysinternalsSuite.zip"&gt;http://download.sysinternals.com/Files/SysinternalsSuite.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;ProcessMonitor es una herramienta permite monitorizar todas las llamadas que realizan los procesos con respecto al sistema de archivos, registro de Windows, y creación subprocesos o hilos. Esto nos servirá para mantener nuestro equipo seguro en caso de tener sospechas o indicios de que nuestras conversaciones están siendo capturadas mediante un software que guarda en un fichero, o envía a través de una conexión ftp, email, etc nuestras conversaciones.&lt;/p&gt;  &lt;p&gt;Para iniciar el análisis, ejecutaremos la aplicación ProcMon.exe. Nada más abrir esta aplicación nos pedirá que especifiquemos filtros en los eventos capturados, para poder afinar la búsqueda.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image002_5F00_61E811D4.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image002" border="0" alt="clip_image002" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image002_5F00_thumb_5F00_7377FC9F.jpg" width="629" height="353" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Introduciremos dos filtros, que capturarán los eventos de escritura de archivos y envio de datos a través de conexiones TCP.&lt;/p&gt;  &lt;p&gt;· FileWrite&lt;/p&gt;  &lt;p&gt;· TCP Send&lt;/p&gt;  &lt;p&gt;Para ello, desplegaremos el primer ‘&lt;i&gt;Listbox&lt;/i&gt;’ y seleccionaremos ‘&lt;i&gt;Operation&lt;/i&gt;’, en el segundo desplegable seleccionaremos la opción ‘&lt;i&gt;is&lt;/i&gt;’, en el tercer desplegable escribiremos ‘&lt;i&gt;WriteFile&lt;/i&gt;’, y en el ultimo indicaremos ‘&lt;i&gt;Include&lt;/i&gt;’. Una vez hecho esto haremos clic en ‘&lt;i&gt;Add&lt;/i&gt;’ para agregar este filtro, y a continuación realizaremos los mismos pasos para agregar el filtro de ‘&lt;i&gt;TCP Send&lt;/i&gt;’ en vez de ‘&lt;i&gt;WriteFile&lt;/i&gt;’. De esta forma estaremos monitorizando todas las escrituras en disco y envío de datos a través de conexiones TCP de cualquier proceso del sistema.&lt;/p&gt;  &lt;p&gt;Nos debería quedar un filtro como el siguiente:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image004_5F00_19AA302B.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image004" border="0" alt="clip_image004" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image004_5F00_thumb_5F00_5FAAC771.jpg" width="481" height="547" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Antes de hacer clic en ‘OK’, deberíamos cerrar todas las aplicaciones posibles que estemos usando, ya que si realizan escrituras en disco o conexiones TCP, sus eventos se verán reflejados y podrían interferir en nuestro análisis, siendo más complejo para nosotros la localización del ‘&lt;i&gt;keylogger&lt;/i&gt;’.&lt;/p&gt;  &lt;p&gt;Una vez esté todo cerrado excepto el ProcessMonitor (ProcMon) , podremos hacer clic en ‘OK’.&lt;/p&gt;  &lt;p&gt;Ahora, si hacemos clic en la lupa que se ve en la captura de pantalla, empezará a capturar eventos. Si sobre la lupa aparece una ‘X’ roja es que la captura de eventos está parada, y puede ser iniciada haciendo clic sobre ella.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image006_5F00_28349076.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image006" border="0" alt="clip_image006" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image006_5F00_thumb_5F00_092E6CD8.jpg" width="648" height="364" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ahora, deberíamos forzar al keylogger a que guarde el buffer de lo que estamos escribiendo en un fichero, o lo envíe por TCP a algún equipo. Para ello, abriremos la aplicación Notepad, y escribiremos en ella. Utilizaremos también combinaciones de teclas como ‘copiar y pegar’, ya que la mayoría de los keyloggers capturan esta combinación y guardan su contenido inmediatamente.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image008_5F00_0CEC11A8.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image008" border="0" alt="clip_image008" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image008_5F00_thumb_5F00_1322C269.jpg" width="683" height="338" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Se puede ver, que la aplicación ‘SVCHOST.EXE’ está realizando escrituras en la ruta ‘C:\Windows\System32\DGL\INFO.DGL’ a la par que me dedicaba a escribir en el notepad.&lt;/p&gt;  &lt;p&gt;La aplicación ‘SVCHOST.EXE’ es la encargada de lanzar los servicios instalados en nuestro servicio, por lo que lo más probable es que el ‘&lt;i&gt;keylogger&lt;/i&gt;’ se haya instalado como tal.&lt;/p&gt;  &lt;p&gt;Para asegurarnos de que se trata de la aplicación que estamos buscando, analizaremos el contenido del archivo sobre el cual se está escribiendo:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image010_5F00_6D891F3A.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image010" border="0" alt="clip_image010" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image010_5F00_thumb_5F00_53F16C40.jpg" width="537" height="144" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Evidentemente, tal y como se sospechaba, el fichero INFO.DGL contiene el contenido capturado de las pulsaciones de mi teclado.&lt;/p&gt;  &lt;p&gt;Ahora ejecutaremos la otra herramienta de Sysinternals: ProcessExplorer (ProcExp.exe). &lt;u&gt;Es importante ejecutar esta aplicación con permisos de administrador&lt;/u&gt;.&lt;/p&gt;  &lt;p&gt;Ordenaremos la lista de aplicaciones por nombre de proceso, y buscaremos el nombre del servicio para poder pararlo y eliminarlo. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image012_5F00_6D0CC678.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image012" border="0" alt="clip_image012" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image012_5F00_thumb_5F00_6C04B0CE.jpg" width="584" height="309" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Al analizar los procesos con Process Explorer, observamos varias cosas:&lt;/p&gt;  &lt;p&gt;· El ‘&lt;i&gt;keylogger&lt;/i&gt;’ se hace pasar por un servicio que ejecutado a través de SVCHOST.exe original (c:\windows\system32\svchost.exe), sin embargo es ejecutado desde otra ruta (c:\windows\system32\DGL\SVCHOST.EXE).&lt;/p&gt;  &lt;p&gt;· El proceso SVCHOST.EXE que corre el ‘&lt;i&gt;keylogger&lt;/i&gt;’ no está firmado por Microsoft, el cual si debería estarlo si fuera un servicio.&lt;/p&gt;  &lt;p&gt;·&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image014_5F00_342246DE.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image014" border="0" alt="clip_image014" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image014_5F00_thumb_5F00_2E377D78.jpg" width="559" height="379" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Una vez matamos el proceso, vemos que vuelve a ejecutarse. Esto significa que hay otro proceso en memoria que se encarga de la ejecución de c:\Windows\DGL\SVCHOST.EXE cada vez que este no está en ejecución.&lt;/p&gt;  &lt;p&gt;Para localizar que proceso se está encargando de la ejecución del ‘&lt;i&gt;keylogger&lt;/i&gt;’ volvemos a utilizar Process Monitor (ProcMon.exe), borraremos los filtros introducidos anteriormente y pondremos un filtro en la detección del evento de operación ‘&lt;i&gt;Process Create&lt;/i&gt;’, quedando como la siguiente captura:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image016_5F00_5E31A92C.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image016" border="0" alt="clip_image016" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image016_5F00_thumb_5F00_123622B3.jpg" width="447" height="456" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ahora que estamos auditando los eventos de ejecución de procesos, volveremos a utilizar Process Explorer para matar al proceso ‘SVCHOST.EXE’, y podremos ver que el proceso que lo vuelve a ejecutar es ‘&lt;i&gt;C:\WINDOWS\SYSTEM32\DGL\SERVICES.EXE’&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image018_5F00_3385A282.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image018" border="0" alt="clip_image018" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image018_5F00_thumb_5F00_61AF786F.jpg" width="572" height="238" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Tras matar el proceso SERVICES.EXE, se detectó que SVHOST.EXE volvía a llamarlo para asegurarse su ejecución.&lt;/p&gt;  &lt;p&gt;Ante estos casos donde existen dos procesos que se ejecutan el uno al otro, es necesario matar al proceso padre y todo el árbol de subprocesos. Esto es posible en Process Explorer haciendo clic sobre ‘Kill Process Tree’.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image020_5F00_0A1E34B7.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image020" border="0" alt="clip_image020" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image020_5F00_thumb_5F00_715EE7A6.jpg" width="652" height="320" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ahora que no tenemos el Keylogger ejecutado en memoria, deberíamos asegurarnos de su deshabilitación eliminando las entradas del registro, o los mecanismos que utilize para su ejecución en el proximo arranque del sistema. Para ello utilizaremos Autoruns (autoruns.exe) de Sysinternals.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image022_5F00_652D47B2.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image022" border="0" alt="clip_image022" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image022_5F00_thumb_5F00_4863ACD0.jpg" width="646" height="343" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Buscando la cadena ‘&lt;i&gt;\dgl\&lt;/i&gt;’ (En File -&amp;gt; Find) localizaremos las entradas que contengan el directorio \DGL\ en su ruta de ejecución, detectando una entrada en ‘&lt;i&gt;HKCU\Software\Microsoft\Windows\CurrentVersion\Run&lt;/i&gt;’ con el nombre de ‘&lt;i&gt;SystemKbs&lt;/i&gt;’.&lt;/p&gt;  &lt;p&gt;Basta con eliminar dicha entrada del registro para asegurarse de que esa aplicación no se volverá a ejecutar en el arranque del sistema. Ahora solo queda eliminar los ficheros de C:\Windows\System32\DGL\ y el ‘&lt;i&gt;keylogger&lt;/i&gt;’ estará completamente borrado.&lt;/p&gt;  &lt;p&gt;¡Hasta otra!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.windowstecnico.com/aggbug.aspx?PostID=1690" width="1" height="1"&gt;</description><category domain="http://www.windowstecnico.com/archive/tags/Trucos/default.aspx">Trucos</category><category domain="http://www.windowstecnico.com/archive/tags/Seguridad/default.aspx">Seguridad</category><category domain="http://www.windowstecnico.com/archive/tags/Antivirus/default.aspx">Antivirus</category></item></channel></rss>