Luchando contra el Antivirus 2009

light-virus-1[1]Antivirus 2009

Acabo de terminar 10 horas de lucha para rescatar la laptop de mi esposa del famoso “Antivirus 2009”, y me pareció una épica historia digna de ser escrita, pero, te advierto, si no te interesa los temas técnicos, tal vez este artículo te va a resultar aburrido.

Cuando Internet Explorer le informó que había un peligro potencial en su computadora y que necesitaba presionar OK para arreglarla, ella no dudó y convirtió la computadora en una caja misteriosa que me puso varias veces al borde de la desesperación en las últimas 24 horas.

 Curiosidad personal

Hace años desarrollé una curiosidad por conocer cómo funcionaban los virus.  Me gustaba reunirme con los muchachos del equipo de NAV (Norton Antivirus), en ese tiempo yo trabajaba para pcA (pc Anywhere), ambos productos del Grupo Peter Norton, y averiguar cómo funcionaban los virus, cómo se transmitían.  Inicié mi colección de viruses, me gustaba analizarlos y tratar de adivinar qué dirección tomaría la siguiente versión.  En los años que han pasado, me he encontrado con muchas computadoras infectadas, de amigos y clientes, y siempre he logrado “curar” la computadora.  Nunca me han gustado las soluciones “fáciles”, como restaurar a una fecha anterior porque siento que no he logrado conquistar el virus, y porque el restaurar no me da tranquilidad de haberme desecho totalmente del problema.  Pero, les aseguro que en las últimas 5 horas estuve tentado a hacerlo.

 No era tan fácil

Antivirus 2009 es un virus de la famlia de Antivirus Xp y Antivirus 2008, pero ha evolucionado bastante y los métodos que usan ahora para perennizarse son una obra de arte.

Desinstalar Antivirus 2009 fue bastante fácil, simplemente vas al panel de control y lo desinstalas.  Pero, después de esto, me dí cuenta que el AVG fallaba la actualización.  Intenté abrir la página de avg (http://free.grisoft.com) y me direccionó a otro lugar.  Ah, dije, yo he visto esto antes.  Fui a editar el archivo hosts para borrar las redirecciones y me dí con la sorpresa que el archivo hosts estaba limpio!  Es decir, sólo la entrada de localhost.  Para los que ya se perdieron, cuando uno entra una dirección de Internet, la computadora tiene que ir a un servidor a preguntar cómo llegar hasta el sitio que estás buscando.  Si hay un grupo de sitios a los que siempre vas y no quieres que cada vez tu computadora los vuelva a buscar, los puedes entrar en el archivo hosts.  El problema es que algunos virus editan ese archivo y agregan entradas para sitios conocidos (como los sitios de antivirus, Microsoft, Google, etc.) y los redireccionan a otros sitios donde tu computadora quedará aún más infectada que antes.

Subestimé al enemigo

Entonces, me dí cuenta de algo que algo no estaba bien…

1. nslookup retornaba la dirección correcta para avg.com
2. Internet Explorer me redireccionaba a otra página
3. ping estaba redireccionado también!!!

Ahora, cuando contemplé estos tres factores comprendí que esto es algo que no había visto antes.  El hecho de que nslookup retornaba la dirección correcta pero ping no, era insólito.  IE tiene muchos agujeros, pero no comprendía cómo podía afectar ping.

El problema no podía estar en el DNS (hosts o el servicio DNS client) porque entonces afectaría a nslookup, tampoco podía estar en IE, puesto que no podría afectar ping.  Tenía que estar en algún lugar del IP stack.

Aún más curioso era el hecho de que al entrar a Google y buscar alguna idea, entraba a Google, pero los resultados que me daba eran sólo links lugares de dudosa credibilidad.  Entendí que también estaba redireccionando google a algún otro servidor!

Desde otra computadora busqué referencias en lugares que no son tan públicos.  Todos los resultados que encontré se referían a una versión anterior del Antivirus 2009, puesto que al intentar seguir sus instrucciones invariablemente fallaba.

IP stack

Intenté reconstruir el IP stack usando

netsh int ip reset resetlog.txt

Este comando resetea el interface IP por completo, básicamente removiendo cualquier componente o atributo que no reconoce.  Muy útil para solucionar problemas relacionados a corrupción (intencional o no) del acceso a redes en general, y, lo más útil, escribe todo lo que ha hecho al archivo resetlog.txt.  El log muestra que corrigió varias cosas, pero el sistema seguía malogrado.

DrWeb

Encontré muchas referencias al DrWeb Cure It (http://www.freedrweb.com/) que clama curar el Antivirus 2009, intenté bajarlo, pero el virus impedía la instalación.  La misma suerte siguieron Malwarebytes y, lo que me llamó mucho la atención, incluso una versión portable de malwarebytes (yo pensaba que el virus impedía la instalación basado en interferir con el servicio de intalación, pero aparentemente era mucho más inteligente y no dejaba a malwarebytes arrancar, aunque tuviera un nombre diferente).  Inclusive, instalé malware bytes en una máquina diferente e intenté copiar los archivos (registrando los dlls y ocxs manualmente), infructuosamente, el virus terminaba las aplicaciones antes que pudieran terminar de levantar.

Registry

Fuí al registry y me dió el famoso error de “El administrador ha deshabilitado la modificación del Registro”, pero, como ese es un viejo truco, simplemente hay que usar gpedit.msc para cambiar el acceso.  ¿Qué?  gpedit.msc también está deshabilitado!  Para corregir este problema había que escribir algo de código.  Por si acaso, me metí a Google a ver si alguien ya lo había hecho y !Bingo! (http://www.dougknox.com/security/scripts_desc/regtools.htm) y lo que es mejor… es un script, de manera que puedes leerlo y saber lo que va a hacer antes de ejecutarlo en tu preciosa computadora.  Ok, logré rehabilitar el acceso al registro, pero al entrar… no había nada fuera de lo común allí.  Busqué en todos los sitios conocidos (HKLMSoftwareMicrosoftWindowsCurrentVersionRun, etc.).

Autoruns

Usé una herramienta de sysinternals autoruns que me ha sido extremadamente útil para eliminar otras pestes.  Windows es un sistema operativo extremadamente complejo.  En mis días de gloria (DOS ;)), si querías saber lo que estaba cargado en el sistema ibas a dos archivos: config.sys y autoexec.bat.  Nada podía cargar en el sistema si no estaba en uno de estos dos archivos.  Inclusive, esto siguió siendo parcialmente cierto en las primeras versiones de Windows (siendo que corría encima de DOS).  Pero hoy, hay cientos de formas de cargar cosas en Windows.  Microsoft inicialmente ensayó con una herramienta llamada msconfig, que te ayudaba a ver lo que había en cuatro o cinco lugares desde donde se cargaban cosas en Windows, pero al final se rindió ante el poderío de autoruns.  Autoruns es una herramienta escrita originalmente por Mark Russinovich en su compañía SysInternals, que ahora ha sido comprada por Microsoft.  Autoruns va en busca de las cosas que se cargan automáticamente en tu sistema operativo y las encuentra en más de una dozena de lugares.  Aproveché para remover muchas cosas que se habían ido agregando con el tiempo, pero que no eran necesarias, logrando así que la computadora corra un poquito más rápido.  Aún así, autoruns no pudo encontrar el motivo de mis problemas.

McAfee

Cansado y frustrado instalé el McAfee antivirus.  Instaló, se actualizó (deben tener su número de ip en el código, en lugar del nombre), e inclusive pude hacer un barrido completo, pero no encontró absolutamente nada.

Rootkit

Entonces comprendí, era obvio que estaba enfrentándome a un Rootkit.  Un Rootkit es un tipo especial de virus que alcanza el nivel máximo de acceso en una computadora y logra pasar desapercibido a la mayor parte de antivirus.  Un Rootkit generalmente se instala como un driver (drivers corren en un nivel protegido del procesador con mayor acceso inclusive que el administrador del sistema), por lo tanto tiene acceso directo tanto al hardware como a la memoria y puede hacer cosas que una aplicación no podría (por ejemplo, puede impedir que cierto tipo de aplicaciones se instale en el sistema, o apagar ciertas partes de tu antivirus).

Era hora de actuar.  Rootkits se instalan como parte del sistema y es muy delicado jugar con ellos, haces un pequeño error al tratar de removerlos y tu sistema operativo no levanta más. Empecé mi exploración utilizando RootkitRevealer de sysinternals.  RootkitRevealer no cura nada, sólo revela posibles rootkits.  Una de las formas que tienen los rootkits de ocultarse es crear nombres que empiezan con el caracter 0.  Regedit y muchas otras herramientas no podrán ver esta entrada, pero el sistema operativo si.  RootkitRevealer busca anomalías como esta y te presenta una lista de entradas en tu registro que no aparecerían con regedit.  !Voilá!  Una de estas entradas me llamó la atención… TDSS en la lista de interfaces de red.  Fuí a un lugar en el que confío para información sobre viruses (http://research.sunbelt-software.com/threatdisplay.aspx?name=Rootkit.TDss.Gen&threatid=414535) y !Sí! es un rootkit!!!

ProcessExplorer

Nuevamente, encontré varias páginas en google acerca de cómo malwarebytes era el único que podía curar este virus, sin embargo, yo ya había tratado aún cambiándole de nombre y no me había resultado, decidí hacerlo a mano.  SysInternals tiene otra herramienta que me gusta mucho, ProcessExplorer.  ProcessExplorer te permite mirar en detalle a todo lo que está sucediendo en tu computadora a tiempo real, algunos le llaman TaskManager glorificado, pero yo creo que va mucho más allá.  Corrí el ProcessExplorer (a propósito, ninguna de las herramientas de sysinternals necesita ser instalada, sólo necesitas una copia del ejecutable y ya).  En el ProcessExplorer fuí a buscar todos los procesos que estuvieran en memoria que contengan las letras TDSS en el nombre de alguno de sus archivos o librerías.  Oh… encontró varios programas, incluyendo Explorer.exe, IExplore.exe, Hamachi.exe, Skype.exe, y varios otros.  Al ir a mirar el detalle, ví que todos ellos incluían un archivo TDSSciou.dll.  Con ProcessExplorer, no puede preguntar dónde está la imagen desde la que se levantó esta librería.  Me dijo que estaba en C:windowssystem32.  Qué raro, estaba seguro que había mirado allí.  Fuí otra vez.

dir c:\windows\system32\tdss*.*

—- nada, pero esto es entendible… dir no encuentra archivos escondidos o del sistema, pero attrib sí, así que…

attrib c:\windows\system32\tdss*.*

— a attrib no se le escapa nada… Plop! Nada.

De todas maneras, ProcessExplorer tiene la capacidad de liberar un handle aún sin que la aplicación termine.  Así que fuí de ejecutable en ejecutable que mostraba el uso de este archivo y liberé el handle.  Magia!  Tan pronto como liberé el último handle, dir c:\windows\system32\tdss*.* mostró cinco archivos, como por arte de magia.  Decidí borrar estos archivos, pero hacer una copia primero, sólo por si acaso.

Al hacer la copia, McAfee inmediatamente los borró diciendo que eran virus!!!  Qué gracioso, me hizo recordar al vendedor de veneno para pulgas que quería que agarres a la pulga y le metas un granito del veneno en la boca!  Los archivos estaban allí, contaminando mi disco duro y eran cargados en memoria y ni McAfee ni AVG protestaron, pero en cuanto agarro al gigante, lo tumbo al suelo y lo estoy amarrando me lo quitan y se llevan la gloria de haber limpiado la máquina de mi esposa!

De todas maneras.  Después de reempezar la máquina, la red volvió a su normalidad.  AVG, McAfee y Malwarebytes se actualizaron exitósamente, y ahora sí, encontraron varias trazas que el virus había dejado por varias partes.

Acápite

La computadora está sana, más veloz que antes, mi esposa está contenta y ya me está guiñando el ojo.  Qué más podría pedir!