Msn-worms ¿Cómo funcionan?

1 11 2007

Hola gente

Estos últimos días he estado poniendome al día con los nuevos malwares y herramientas ya que lamentablemente me he estado alejando bastante del tema. Leyendo un poco, parece que la cosa no ha cambiado mucho, y sigue apareciendo los mismo malwares de siempre, que se limitan a bloquear el administrador de tareas, el regedit, mostrar propagandas y que generan otros problemas muy fáciles de solventar para usuarios experimentados, pero que se están propagando mucho últimamente. Se trata de los MSN-worms, gusanos que se propagan por el programa de mensajería instantánea MSN Messenger y Windows Live Messenger mediante ingeniería inversa. Seguramente alguna vez les ha aparecido una ventana de este mensajero enviandoles un archivo adjunto o un link de descarga (que es el portador de la infección), pues estos son estos gusanos que ya la verdad están cansado bastante. Debido a estos motivos, me puse a investigar sobre el tema, para entender un poco más su funcionamiento, hasta donde pueden llegar y como prevenirlos y erradicarlos…

Mirando algunas muestras y googleando un poco les puedo decir que a mi parecer, estos molestos worms están apareciendo bastante gracias a que son muy fácil de programar (todos los que he visto están programados con Visual Basic o Delphi, y hay mucho código «basura» en páginas underground que facilita su programación) y son una manera fácil de hacer mala publicidad para ganar algo de dinero, o simplemente llamar la atención.

Una vez expresado mi desahogo de desprecio contra sus productores, pasemos a lo que importa, que es el funcionamiento de estos gusanos. Como ya dije anteriormente se limitan a crear algunas políticas de restricción sin el consentimiento del usuario y generar algunos problemas menores, pero creo que lo más interesante de todo en este caso es su método de propagación, es decir, cómo es que logra enviarse por los mensajeros de Micro$oft. El «secreto» consiste en utilizar el API (conjunto de funciones que ofrece una librería) que trae incluída el Windows Messenger, lo que permite registrando un ejecutable como API, acceder a funciones que permiten interactuar con el Messenger directamente, sin tener que escribir mucho código. Esta API es llamada MessengerAPI (Messenger API Type Library) y la referencia para su ejecución es esta:

C:\Archivos de programa\Messenger\msmsgs.exe\3

CLSID = {E02AD29E-80F5-46C6-B416-9B3EBDDF057E}

Les comento que es muy sencillo utilizar las funciones de esta API, más desde Visual Basic, con solo registrarla en las Referencias, y luego crear un objeto de tipo MessengerAPI, ya podemos acceder a ellas.

A continuación, un simple código de Basic que permite saludar a un contacto:

Dim MSNobj as MessengerAPI.Messenger
Set MSNobj = New MessengerAPI.Messenger
MSNobj.InstantMessage «ejemplo@dominio.com»
SendKeys («Hola» & «{ENTER}»)

Con ese simple código, registrando la API y declaranco la función SendKeys, lo que hago es saludar al contacto ejemplo@dominio.com, por lo cual ya ven lo sencillo que es.
También existen otros métodos un poco más complicados, como por ejemplo mediante las funciones PostMessage, SendMessage y similares, que también permiten manipular el Messenger. Los worms de este tipo, siguen el siguiente procedimiento para propagarse:

  • Monitorizan las ventanas de conversación, generalmente con un Timer, para de esta manera saber cuando se abre una nueva ventana de conversación.
  • Obtienen el handle de la ventana con FindWindow, mediante la clase de las ventanas de conversación IMWindowsClass, de las ventanas de Conversación de Windows Live Messenger.
  • Obtienen el handle del RichText que pertenece al cuadro de texto de mensaje, con FindWindowEx, con el handle madre obtenido anteriormente.
  • Se envia una cadena de texto mediante SendMessage (o similar), o se copia desde el portapapeles un texto previamente adjuntado.
  • Se envia el mensaje anteriormente enviado con PostMessage, mediante el handle del botón de envío, también obtenido con FindWindowEx, o también con un ENTER enviado con SendKeys.

Los que utilizan como base el MessengerAPI, son incluso más sencillos, ya que solo requiere la creación de un objeto y unos simples comandos. El problema de estos, es que teoricamente son muchísimo más fáciles de detectar por los motores heurísticos, ya que con solo detectar la llamada a la API ya se podría marcar el ejecutable como sospechoso, y combinado con otras reglas directamente como infección (además de ser necesario una API de externa y no la propia de Windows), por lo cual la segunda opción es más favorable, aunque un poco más compleja.

Conclusiones
Como verán cualquier persona con conocimientos básicos de programación, o simplemente con ganas de buscar, es capas de programar uno de estos worms, es más, lamentablemente hasta existen códigos fuentes enteros en foros underground que pueden servir como base. Como prevención, lo mejor es no recibir ningún ejecutable vía Messenger que nosotros no hallamos pedido y no presionar ningún link (a menos que sean de páginas que ustedes conozcan). Con solo tener un poco de conciencia basta para no infectarse y seguir propagando la infección. En el caso de que otras personas utilizen la PC además de ustedes, recomiendo desactivar el envió de Links, la transferencia de archivos de tipos conocidos y configurar el antivirus para analizar las transferencias, además de mantener su antivirus actualizado obviamente. Cuando tenga un poco de tiempo, les daré algunos consejos de protección.

Salu2


Acciones

Information

2 responses

20 01 2008
Jdark

Una pregunta, veo que sabes sobre gusanos de MSN, y mi pregunta, es la siguiente, el msn me deja entrar como si nada, pero cuando le doy en el icono de correo y abre explorer no abre la pagina de hotmail y se queda en blanco, de casualidad sabes que gusano es, ya he buscado en google y hay varios sitios que mencionan el mismo problema pero no tienen la solucion, de ante mano gracias por tu tiempo, por cierto elRegUnlocker muy buena utilidad.

25 01 2008
Hardrive

Hola Jdark

Hay millones de gusanos y de malwares en general, inclusopodría no ser una infección en realidad. Para solucionar tu problema te recomiendo que crees un tema en este foro del cuál soy miembro:

http://www.forospyware.com

Suerte

Deja un comentario