¿Qué es un troyano?

Consiste un programa de acceso remoto o programa de administración remota.   Este tipo de programas, conocidos también como RATs (Remote Administration Tool), se han desarrollado para el control remoto de un PC o un sistema, valga la redundancia.   Es decir, permiten un manejo prácticamente total de un PC, que físicamente no se encuentra al alcance de nuestras manos, por medio de una conexión directa desde otro PC.   El programa de acceso remoto deben estar instalado en ambos PCs y su comunicación se produce generalmente vía internet o vía red.  

Sin embargo un troyano tiene unas características propias que le confieren un carácter malicioso:

 

Volver al Inicio

Es decir, un troyano es un programa malicioso insertado en un PC sin consentimiento de su dueño que permite el control de ese PC por parte de una persona no autorizada, pudiéndose incluso considerar un tipo de virus, ya que el PC atacado se “infecta” con él.

  ¿Cómo se contagia un troyano?

Para que un troyano se instale en un PC atacado necesita de la actuación del usuario del PC en cuestión, ya que éste debe ejecutarlo personalmente. La forma habitual es la de enviar el servidor del troyano al PC que se quiere atacar, habitualmente por medio de un emilio o a través de un intercambio de ficheros vía IRC, ICQ, FTP,... con la intención de que la víctima lo ejecute. Normalmente se utilizan dos formas de engañar al usuario para que ejecute el servidor del troyano en su PC.

La primera consiste en enviar el servidor renombrado y con extensión doble, aprovechando la peculiaridad de los sistemas Windows para ocultar las extensiones conocidas (opción por defecto). Es decir, que si tenemos en el PC un fichero “foto.gif”, el usuario tan sólo verá “foto”. Sin embargo, si el fichero se llamase “foto.gif.gif” (extensión doble) nosotros veríamos “foto.gif”. En este caso la última de las dos es la extensión real del archivo pasando la primera de ellas a formar parte del nombre en sí (archivo de nombre “foto.gif” y extensión “.gif”).

Volviendo al tema en cuestión, el servidor del troyano se envía al usuario al que se va a atacar como un archivo renombrado y con extensión doble. Por ejemplo, si el servidor del troyano se llamase “servidor.exe”, el atacante lo podría manipular fácilmente para que se llamase ”foto.gif.exe”, en cuyo caso veríamos en nuestro PC tan sólo “foto.gif”. De esta forma, el usuario atacado piensa que el archivo en cuestión es una foto, cuando en realidad es un programa. Ahora solo hay que esperar a que el incauto abra la foto y el troyano se instalará en su PC. Con este método lo que observa el atacado es que le ha sido enviada una foto y que, cuando intenta visualizarla, ésta no se ve. Lo cual es lógico porque el archivo no es en realidad una foto. Este sistema suele venir acompañado de una técnica de ingeniería social que suele diferir poco de este ejemplo resumido:

1.     

  1. Bien vía IRC o ICQ, bien vía emilio, se manda el troyano camuflado como un archivo con doble extensión tipo foto.gif, película.avi, sonido.wav, salvapantallas.scr,... etc, pudiendo enviarse, por ejemplo, un archivo fotográfico con cualquier extensión conocida por windows, tal que bmp, jpg, gif, ... Lo mismo sucede con los demás tipos de archivos (sonidos wav, mid, mp3,... vídeos avi, mov, mpg,...). O simplemente se envía un archivo tipo “fotos.zip.exe” resultando que a simple vista aparezca “fotos.zip”.

  2. El que ha recibido el archivo lo ejecuta y observa que el fichero en cuestión no funciona, por lo que pide explicaciones a la persona que se lo ha mandado.

  3. La persona que lo ha enviado se disculpa alegando un error en el envío, en la transmisión, que se ha corrompido el archivo, que se ha comprimido mal,... y lo vuelve a enviar. Esta vez, la foto, película, sonido, salvapantallas,... en cuestión sí que funciona (el atacante envía esta vez el fichero real) por lo que el “pequeño” problema en la ejecución del primer archivo recibido queda en el olvido del atacado.

La segunda forma de enviar el troyano es más limpia que la primera, ya que el atacado no nota nada raro. Este sistema consiste en adherir el troyano a un fichero real (hay programillas que hacen esto) de forma que se fundan dos ficheros en uno sólo, pero resultando los dos 100% operativos. El fichero resultante se llamará igual que el archivo que no es el troyano (sería de tontos hacerlo al revés). De esta forma cuando el atacado ejecuta el archivo en realidad ejecuta los dos a la vez, pero como el archivo que sirve de “portador” del troyano es completamente funcional, el atacado no nota nada.

Veamos un ejemplo práctico de este sistema. El atacante posee un archivo “sonido.wav” de 200KB y a él le une el “servidor.exe” del troyano de 100KB. El resultante es un archivo “sonido.wav” de unos 300KB, que en realidad está formado por los otros dos ficheros anteriores. Partiendo del hecho que el archivo “sonido.wav” original es efectivamente un sonido, cuando el atacado ejecute el “archivo.wav” de 300KB, portador de un troyano, se oirá el sonido en cuestión, pero además se instalará el troyano (hecho este del que el atacado no es consciente).

  Una variante de este método, cada vez en mayor uso, es la inclusión del troyano en archivos ejecutables de un supuesto desarrollo reciente. Se ha puesto de moda en foros, chats, tablones de noticias,... la aparición de sujetos que dicen haber desarrollado recientemente tal o cual programa, que siempre resulta muy apetecible, y pide a los internautas que lo prueben para detectar posibles fallos en su funcionamiento, para lo cual el sujeto en cuestión facilita la adquisición del programa, bien sea enviándolo vía emilio o chat, bien sea a través de una página web. Cuando los usuarios (normalmente un gran número de ellos) se hacen con él y lo prueban, descubren que, o bien el programa no funciona, o bien sus prestaciones son ridículas. Este hecho se notifica al desarrollador del programa, que pide perdón y promete mejorar el producto. A partir de entonces, ya no se vuelve a saber nada más este sujeto y un gran número de PCs han sido infectados con un troyano (o con un virus).

Una “subvariante” de este sistema es la de adherir un troyano a una pequeña aplicación ya existente y completamente funcional, que sea habitualmente muy solicitada por los internautas. En este caso, la aplicación original puede perder sus propiedades resultando que a la vista del atacado el programa no funcione. Este es el caso que se ha dado con una herramienta de Micro Trend (desarrolladores del antivirus PC-cillin) especializada en la eliminación del virus Nimda y que fue utilizada por algún desaprensivo para crear una versión gemela que en realidad contenía un troyano. Por este motivo, Enlaces de Seguridad se une a la recomendación de las más importantes casas expertas en seguridad de adquirir el software vía internet desde páginas oficiales o, en su defecto, de sitios de reconocido prestigio. Apurando mucho, incluso de personas de confianza, si bien esto no garantiza que la fuente inicial del software haya sido una fuente fiable.

 

Otro método de envío de un troyano, mucho menos utilizado, consiste en hackear un PC y, por medio de recursos compartidos, meter el troyano en el PC atacado, esperando o bien que en un momento dado dicho archivo sea ejecutado por el usuario infectado o bien instalarlo directamente. En el primer caso (activación por parte del infectado) queda a la imaginación del atacante la forma, nombre del archivo y colocación en una u otra carpeta del PC atacado para asegurarse la ejecución del troyano por parte del infectado. Usualmente se prodece a sustituir un fichero ejecutable del PC atacado por el troyano renombrado como aquél, esperando que tarde o temprano el usuario ejecute ese fichero. En este caso, se notaría que esa aplicación (ahora troyano) que tantas veces hemos ejecutado, misteriosamente ha dejado de funcionar. Aunque es posible que la sustitución se haya realizado reemplazando el archivo original por otro similar pero con el troyano adherido y, por lo tanto, por un archivo también funcional. Esta técnica requiere de bastantes conocimientos informáticos por parte del atacante, del conocimiento de la IP del PC atacado por parte del agresor, del nivel de privilegios que logre alcanzar y de una serie de características en la configuración de dicho PC que la hacen bastante complicada de llevar a cabo si no se es un experto, por lo que es un sistema relativamente poco utilizado, si nos basamos en las estadísticas.

  ¿Cómo se comunica un troyano con nuestro atacante?

Para producirse al comunicación del cliente de un troyano con su servidor, el primero necesita conocer la IP del PC en cual está instalado el servidor o el UIN del ICQ de la víctima. Esto es lógico ya que toda comunicación vía red o internet entre ordenadores se lleva a cabo a través de las correspondientes Ips de las máquinas, ya que la IP es el carnet de identidad de los ordenadores. Si la víctima es buscada a través del ICQ, pues un tanto de lo mismo, pero entonces se puede actuar bien a través de la IP o bien a través del UIN. Si el PC infectado tiene una IP estática, es decir, que siempre es la misma (como las de las conexiones ADSL o por cable) el atacante no tendrá ningún problema en ponerse en comunicación con el PC infectado, pues siempre se encontrará en la misma dirección IP.

Si el PC infectado tiene en cambio una IP dinámica (que cambia con cada conexión, como en las conexiones por modem) el atacante deberá saber el valor que toma esa IP  con cada conexión a internet o a una red que efectúe el PC infectado. De ello se encarga el propio servidor del troyano instalado en el sistema infectado. Cada vez que el PC infectado se conecte a la red, el troyano comunicará a la persona que nos ha infectado la IP de ese PC para esa conexión. Esta notificación la puede llevar a cabo enviando un emilio a una dirección de correo prefijada por el atacante, a través de un canal IRC también predefinido,  a una IP,... Lo mismo ocurre con el UIN del ICQ.

Si el troyano no ha sido “personalizado”, esto es, que la persona que lo ha distribuido no ha puesto contraseña al troyano para su uso en exclusividad, el troyano queda a merced de cualquiera que tenga instalado en su PC el cliente de ese mismo troyano. Esta es otra forma de comunicación del servidor del troyano con su cliente, si bien en este caso es el cliente el que busca al servidor y no al revés como ocurría en el caso anterior. Una muestra de esto son los continuos ataques que sufrimos los internautas y que el firewall identifica como intentos de comunicación de tal o cual troyano. Estos ataques se deben a que alguien está escaneando la red en busca de servidores de ese troyano, a que está buscando PCs infectados esperando que alguno de ellos responda a su llamada.

  ¿Se puede detectar si un archivo es realmente un troyano antes de su instalación?

Pues sí que se puede o, por lo menos, se pueden dar una serie de circunstancias que nos hagan sospechar la presencia de un troyano o de algún tipo de virus.

Un hecho que delata la presencia de un troyano o virus es la presencia en un archivo de una extensión doble. Desconfía, por no decir rechaza, todo archivo con esta característica. Pero para detectar las extensiones dobles de los archivos deberemos retocar un poco nuestro explorador de Windows.

·    

Se aplica en todos los casos y se acepta. De esta forma siempre veremos las extensiones de todos los archivos.

Otra característica que puede delatar la presencia de un troyano es la de encontrarnos, por ejemplo, con un fichero “foto.jpg” de 700KB. Verdaderamente sería una foto gigantesca. Este hecho podría significar que esa foto tiene “pegado” un troyano. Pero los canallas que usan este sistema no suelen ser tan tontos y con este sistema de “adherir” el troyano a otro archivo suelen utilizar un tipo de ficheros que no creen suspicacias en el atacado, como por ejemplo archivos EXE, ZIP, AVI, PPS,... de los cuales es sabido que su tamaño puede ser muy considerable.

Pero la mejor opción para detectar un troyano es la de escanear todos los archivos que recibimos por internet con un antivirus o con cualquier otro programa específico para troyanos (es decir, un antitroyanos). Se podrían también configurar los distintos gestores de descarga de archivos para que apliquen un antivirus a todos los archivos que se bajen de internet por medio del propio gestor. Tampoco se haría ascos a tener un antivirus y/o antitroyanos monitorizando continuamente nuestro sistema. Los antitroyanos, además, suelen tener capacidades propias de firewall por lo que son capaces de detectar también posibles intentos de conexión por parte de un cliente troyano con nuestro PC vía internet, o la comunicación de un servidor de troyano instalado ya en nuestro PC con su respectivo cliente en caso de estar ya infectados por él.

¿Por qué usar un antitroyanos como complemento de un antivirus? Pues porque un troyano no tiene como finalidad la de reproducirse, ya que ésta es una cualidad de los virus. Por eso los escaneos heurísticos de los antivirus no suelen detectar la presencia de un troyano, si bien en los antivirus actuales  se han incorporado los troyanos a sus bases de datos y los suelen detectar, aunque con algunos problemas, si son fielmente actualizados. De todas formas es bien conocida la capacidad “antitroyana” del antivirus AVP. Teóricamente, con este antivirus el apoyo de un programa antitroyanos no se hace necesaria. No obstante, un antitroyanos tiene como función específica la caza y captura de los troyanos, por lo que generalmente están más preparados que los antivirus en este menester. De todas formas y como todo en seguridad informática, la presencia de un antitroyanos no garantiza una total protección del sistema ya que los malhechores siempre están un paso por delante de los sistemas de seguridad.

  ¿Se puede saber si un archivo era un troyano después de su instalación?

Pues también se puede. La instalación de un troyano en nuestro PC  suele venir acompañada de varias características más o menos comunes a todos los troyanos. Dado que la infección de nuestro PC por parte de un troyano es en realidad una instalación de una aplicación, nuestro sistema contará a partir de entonces con elementos nuevos dentro de nuestro disco duro, e incluso de la memoria.

La instalación de un troyano en un PC viene acompañada de la creación de nuevas librerías DLL, de archivos ejecutables, de nuevas entradas en el registro de windows y de nuevas líneas de comando en archivos tipo win.ini, system.ini,... Generalmente la instalación por defecto de un troyano conlleva la creación de los archivos DLL y EXE en las carpetas “c:\”, “c:\windows” y/o “c:\windows\system” (aunque ocasionalmente también se puede producir la creación de carpetas, además de archivos).

Las entradas de registro modificadas por prácticamente todos los troyanos son:

en todos los windows (win9x/Me/NT/2000):

“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” y/o “Run-“

 

en  los  windows 9x/Me

“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices” y/o “RunServices-“

 

y en los WinNT/2000

“HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Remote Administration Service”

 

Las líneas de comando dentro del win.ini que se modifican en todos los troyanos se encuentran, dependiendo del tipo de windows, en  los apartados “run=” y/o “load=” de los campos [boot] o [windows]

y las modificaciones dentro del fichero system.ini se realizan en el apartado “shell=” del campo shell.[boot] o del campo [boot], dependiendo también de la versión de windows que se tenga instalada.

Si bien la creación de más elementos en otras entradas de registro y en otros archivos de sistema también es llevada a cabo, las que se han enumerado son las más comunes a todos los troyanos, ya que son lugares desde donde windows actúa directamente a la hora de ejecutar automáticamente los programas, tanto al inicializar el sistema como, una vez arrancado el sistema,  apoyarse en los elementos aquí ubicados para un correcto funcionamiento de las distintas aplicaciones y permitir la comunicación remota entre distintos ordenadores. Estos son factores fundamentales para el buen funcionamiento de un troyano: inicialización automática del troyano, acceso a todo el sistema y capacidad de comunicación remota.

Se podría entonces, cada vez que se ejecuta un archivo que en teoría no debiera añadir nuevos elementos en nuestro PC (fotos, películas, vídeos, diapositivas,...), ordenar los ficheros y carpetas de “c:\”, “c:\windows” y “c:\windows\system”  por orden de fecha de creación  o modificación para ver si se acaba de crear algún fichero. Y algo parecido haríamos con las entradas de registro y el win.ini:

Si estas acciones denotan que alguna aplicación con acceso al inicio de windows y al acceso remoto de nuestro PC acaba de ser instalada en nuestro PC cuando no debería haberlo hecho, probablemente estemos hablando de un troyano.

La cosa se complica cuando el troyano ha venido adherido a una aplicación (fichero EXE, COM,...) ya que la alteración de los elementos mencionados al instalar una aplicación es frecuente en muchos casos y posiblemente no sabremos diferenciar si los cambios los ha producido la aplicación real o el troyano (en caso de existir este último, claro está).

Aunque teniendo en cuenta que la añadidura de los elementos ya mencionados en los campos descritos tiene como finalidades principales la de inicializar el troyano cada vez que se arranque el sistema, acceso total al mismo y establecimiento de una comunicación a través de la red con su correspondiente cliente, si la aplicación portadora del troyano no debiera actuar sobre el inicio de windows y/o sobre el control de acceso remoto y tras instalarla se comprueba que sí lo hace, tendríamos motivos para empezar a preocuparnos. Pero este aspecto se escapa del conocimiento informático de la mayoría de los usuarios, por lo que adentrarnos en este terreno solo crearía más confusión.

Una forma algo menos complicada de llevar a cabo estas comprobaciones consistiría en la utilización de un monitor de sistema que localice más fácilmente los nuevos archivos creados, un monitor de registro que informe de los cambios acontecidos en el registro de windows y la utilización también de un monitor de red que informe de las conexiones activas a través de internet. Estos monitores de red (e incluso de registro) pueden formar parte de algún antitroyanos tipo loockdown millenium, DSF3, jammer, ... o también formar parte de un firewall.

 

Aunque también se podría usar el comando netstat (estado de la red) del propio windows. Para ello abriríamos una ventana DOS en nuestro PC y teclearíamos “netstat –an”, mostrándose las conexiones de nuestro PC que se están llevando a cabo en ese preciso momento y nos fijaríamos en si hay alguna que resulte sospechosa. Nos aparecerán cuatro campos con la siguiente información:

·     

  1. Protocolo: TCP o UDP

  2. Dirección local: IP seguida de dos puntos (“:”) y número de puerto.

  3. Dirección remota: una dirección IP y un puerto (si se da el caso).

  4. Estado: estado en que se encuentra esa conexión (listening, established, ...).

Un ejemplo gráfico sería éste:

Si por ejemplo se observase una conexión UDP desde una dirección local a través del puerto 31337, se podría tratar del BackOrifice.