|
VSantivirus No. 394 - Año 5 - Lunes 6 de agosto de 2001
CodeRed. La tercera versión del gusano examinada a fondo
Nombre: CodeRed.v3
Tipo: Caballo de Troya y gusano de Internet
Alias: CodeRed.C, CodeRedII, CodeRed III, W32.Bady.C, W32/CodeRed.c.worm, W32/CodeRed.c
Fecha: 4/ago/01
El gusano se propaga a través de conexiones TCP/IP (1) al
puerto 80 (http) (2), instalándose a si mismo en servidores Web seleccionados al azar, utilizando para ello un conocido bug que afecta los servidores Microsoft IIS
(3) que no han sido actualizados con el parche que cierra dicha vulnerabilidad.
A través de un desbordamiento de búfer producido en el archivo
IDQ.DLL, se produce la ejecución del mismo en la computadora atacada.
Esta amenaza solo afecta los sistemas operativos Windows NT, 2000 y
XP, ejecutando servidores Web.
Sin embargo, usuarios hogareños ejecutando alguna de estas versiones de Windows siempre pueden ser vulnerables.
El riesgo es alto, si se cumplen las siguientes condiciones:
1. Tener instalado Microsoft Index Server 2.0 (4), o
Indexing Service bajo Windows 2000 o XP (se instalan por defecto con IIS).
2. No haber actualizado el sistema con el parche de Microsoft que lo soluciona (disponible desde junio de 2001).
Cuando un servidor es infectado, el gusano intercepta en la memoria, los procesos del kernel de Windows (solo Windows NT y 2000 son afectados). A través de llamadas al proceso
GetProcAddress del KERNEL32.DLL, el virus accede a una serie de APIs:
LoadLibraryA
CreateThread
..
..
GetSystemTime
También carga el archivo WS2_32.DLL para acceder a las funciones
socket (5), closesocket
y WSAGetLastError. Utiliza además la función ExitWindowsEx de
USER32.DLL para reiniciar el sistema.
El thread (hilo) principal examina la existencia de dos posibles marcas. La primera
(29A), controla si está instalado o no el troyano
"Trojan.VirtualRoot". La otra marca actúa como semáforo y se llama
"CodeRedII". Si este semáforo existe, el gusano entra en un bucle infinito.
Luego, el mismo thread examina el lenguaje por defecto del sistema operativo.
Si este lenguaje es el chino tradicional o chino simplificado, entonces crea
600 nuevos threads. Si el lenguaje es cualquier otro, crea
300 hilos.
Todos estos threads generan direcciones IP (1)
al azar, y son las que usará para buscar en Internet, nuevos servidores a infectar.
La forma de generar estas direcciones, está mucho más optimizada y es mucho más eficiente que en las versiones anteriores de
CodeRed. Si las IP generadas equivalen a sistemas locales
(127.x.x.x, 224.x.x.x, etc.), no las usará, y generará nuevas IP a cuyas máquinas intentará conectarse para poder infectarlas. Se piensa que esto generará más tráfico que las versiones anteriores, comprometiendo el funcionamiento de todo Internet.
Al mismo tiempo que estos threads están trabajando, el thread principal copia el shell de comandos de Windows,
CMD.EXE, ubicado en el directorio de sistema de Windows
(c:\winnt\system32\cmd.exe), a los siguientes directorios, si estos existen, pero con el nombre de
ROOT.EXE:
c:\inetpub\scripts\root.exe
d:\inetpub\scripts\root.exe
c:\progra~1\common~1\system\MSADC\root.exe
d:\progra~1\common~1\system\MSADC\root.exe
Si el troyano es liberado por el gusano, se modifica la siguiente entrada del registro (cómo se verá más adelante):
HKLM\SYSTEM\CurrentControlSet\Services
\W3SVC\Parameters\Virtual Roots
Esto habilita a un atacante externo, tomar el control total del servidor Web a través del envío de solicitudes
HTTP GET, para ejecutar el archivo SCRIPTS/ROOT.EXE en el servidor infectado.
El proceso principal se mantiene luego dormido por 48 horas si el lenguaje del sistema es el chino, y 24 en caso contrario. Durante ese periodo, los restantes hilos (300 o 600 según la versión del idioma de Windows), continuarán trabajando, e intentarán infectar otros equipos.
Una vez que el periodo de 24 o 48 horas se cumple, el gusano procede a reiniciar la computadora infectada. Además de esto, los demás threads examinan si el año es
menor de 2002, o si el mes actual es menor de 10
(octubre). Si es mayor, procede a reiniciar el sistema.
El gusano copia el shell de comandos (CMD.EXE) al directorio de ejecución habilitado por defecto en el servidor, permitiendo el control remoto de este.
También genera en el raíz de las unidades C: o D:, un archivo llamado
EXPLORER.EXE, con los atributos de oculto, de sistema y solo lectura. Este archivo es el troyano identificado como
Trojan.VirtualRoot (W32/CodeRed.trojan). El gusano trae este archivo en su propio código, en un formato comprimido, y lo descomprime al copiarlo en la máquina infectada.
La infección durará 24 o 48 horas, y luego de ese tiempo, la PC será reiniciada. Pero la misma máquina podrá ser infectada nuevamente, mientras no se instale el parche mencionado.
Si el mes es octubre, o el año 2002, la computadora también podrá ser reiniciada. Cada vez que esto ocurre, se ejecuta el troyano
Trojan.VirtualRoot cada vez que el sistema necesita ejecutar el legítimo
EXPLORER.EXE (escritorio, barra de tareas, etc.). Debido a la prioridad en la búsqueda del ejecutable en los paths de Windows, éste ejecutará antes el falso
EXPLORER.EXE en el raíz de C (o D). Esta vulnerabilidad conocida de Windows, recibe el nombre de
"Relative Shell Path Vulnerability".
Cuando el troyano se activa (C:\EXPLORER.EXE o D:\EXPLORER.EXE), permanece dormido unos 10 minutos, y luego setea el siguiente valor del registro para asegurarse deshabilitar el
SFC (System File Checker), o Comprobador de archivos del sistema:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
SFCDisable = 0xFFFFFF9D
También cambia estas entradas:
HKLM\SYSTEM\CurrentControlSet\Services\W3SVC
\Parameters\Virtual Roots
Scripts = 217
msadc = 217
c = c:\,,217
d = d:\,,217
Estos cambios (hechos cada 10 minutos), crean un acceso web virtual
(/c y /d), que corresponden a las unidades C: y
D: mapeadas como tales.
De esta forma, aunque se elimine el archivo ROOT.EXE (CMD.EXE) de las carpetas donde el virus lo copió, un atacante todavía tendría acceso virtual al sistema, con todo el riesgo que esto representa.
Por lo tanto, con el troyano ejecutándose, cualquiera podría acceder a un sistema infectado, con instrucciones del tipo:
http://IpAddress/c/inetpub/scripts/root.exe?/c+comando
o
http://IpAddress/c/winnt/system32/cmd.exe?/c+comando
Una posible manera de verificar si su sistema está infectado, es buscar la presencia de un archivo
EXPLORER.EXE en el directorio raíz de las unidades C o
D.
También debe verificar si en los directorios SCRIPTS y MSDAC existe un archivo
ROOT.EXE.
Tenga presente que la existencia de ROOT.EXE en otra ubicación, podría ser el producto de la acción de otro virus
(Sadmin)
(ROOT.EXE en esas carpetas, en realidad es el CMD.EXE renombrado por el virus. CMD.EXE normalmente se encuentra en la carpeta
WINNT\SYSTEM32 de Windows).
Para quitar el gusano de un sistema infectado, simplemente reinicie el sistema para sacarlo de la memoria, luego de borrar los archivos mencionados (especialmente
C:\EXPLORER.EXE). También es necesario que instale enseguida los parches que usted podrá conseguir en el sitio de Microsoft:
Unchecked Buffer in Index Server ISAPI Extension Could Enable Web Server Compromise
http://www.microsoft.com/technet/security/bulletin/MS01-033.asp
Debe tenerse en cuenta, que los filtrados utilizados para evitar la acción del
CodeRed A y B, no son válidos para esta versión.
La solución definitiva pasa por aplicar los parches mencionados, que por otra parte están disponibles (y ampliamente anunciados), desde junio de este año en Internet.
Se especula conque todas las acciones de este gusano, solo funcionarán correctamente bajo Windows 2000, pero no hay estimaciones de equipos bajo Windows NT o betas de XP que demuestren si esto es así.
También debe tenerse en cuenta, que aunque el CodeRed sea removido del sistema, y el parche instalado para evitar se repita la infección, existen posibilidades de que durante el tiempo de ejecución del troyano, este pueda haber permitido el ingreso de un atacante, lo que deja el riesgo latente de que otros troyanos o modificaciones peligrosas, hayan sido realizadas en el sistema, por lo que se sugiere un examen exhaustivo del mismo, o incluso, su reinstalación completa.
Aunque el blanco son máquinas corriendo el IIS bajo Windows NT, 2000 o XP, generalmente en entornos corporativos, pueden existir innumerables usuarios particulares que ejecuten estos sistemas (incluso con
IIS instalado por defecto sin su conocimiento), y que al tener acceso a Internet (vía telefónica, banda ancha, etc.), pueden ser vulnerables y estar infectados.
Si usted no tiene Windows NT o 2000 como sistema operativo, no puede ser infectado. Aunque algunas instalaciones de
Windows 98 contienen lo que Microsoft denomina Personal Web Server (Servidor Web Personal), que se activa, entre otras opciones, por ejemplo al instalarse el FrontPage, su presencia no representa peligro alguno para el usuario, puesto que el
PWS no es afectado por el gusano.
Si en cambio, su sistema operativo es Windows NT o 2000, tal vez si pueda tener instalado el
IIS (aunque no lo utilice para dar acceso a terceros desde Internet).
Y si además usted tiene una conexión dedicada de 24 horas a Internet, aún cuando no posea una dirección IP fija, podría tener muchas más posibilidades de generar la infección. O sea, ser infectado, e infectar desde su PC a otras computadoras.
Si posee Windows 2000 o NT, y desea saber si tiene instalado el servidor
IIS, verifique desde el Panel de control, Agregar o quitar programas, en la pestaña Instalación de Windows o Componentes de Windows, y busque el componente
"Internet Information Server (IIS)". Si la opción está tildada, desmárquela para quitar
IIS de su sistema (si no lo utiliza, claro).
Si lo utiliza, descargue e instale los parches que mencionamos
en este artículo.
En estos casos, además de los parches, se recomienda el uso de cortafuegos personales, como ZoneAlarm, que bloqueará cualquier intento de acceso furtivo al sistema (ver "VSantivirus No. 117 - Año 4 - Jueves 2 de noviembre de 2000,
Zone Alarm - El botón rojo que desconecta su PC de la red").
Parches disponibles:
Unchecked Buffer in Index Server ISAPI Extension
http://www.microsoft.com/technet/security/bulletin/MS01-033.asp
Más información:
New Code Red Worm in Circulation (The SANS Institute)
http://www.incidents.org
VSantivirus No. 394 -6/ago/01
CodeRed. Un cuento de llaves y cerraduras
VSantivirus No. 393 - 5/ago/01
Aparece nueva variante del CodeRed con puerta trasera
VSantivirus No. 391 - 3/ago/01
En 1988 fue el Morris. ¿En el 2001 es el CodeRed?
VSantivirus No. 390 - 2/ago/01
CodeRed volvió y seguimos vivos... pero...
VSantivirus No. 387 - 30/jul/01
Internet al borde del colapso por culpa de un virus
VSantivirus No. 380 - 23/jul/01
CodeRed se transforma y se hace más peligroso
VSantivirus No. 377 - 20/jul/01
CodeRed. Un gusano en la memoria de los servidores
VSantivirus No. 348 - 21/jun/01
Vulnerabilidad en las extensiones ISAPI en IIS (MS01-033)
Virus Attack! -
Una nueva variante del Code Red es detectada
http://virusattack.xnetwork.com.ar/noticias/VerNoticia.php3?idnotas=83
Virus Attack! - Un nuevo ciclo del Code Red ha comenzado
http://virusattack.xnetwork.com.ar/noticias/VerNoticia.php3?idnotas=80
Virus Attack! - Code Red sigue en ascenso y ahora tiene quien lo ayude
http://virusattack.xnetwork.com.ar/noticias/VerNoticia.php3?idnotas=77
Virus Attack! - Código rojo para los servidores Microsoft
http://virusattack.xnetwork.com.ar/noticias/VerNoticia.php3?idnotas=76
VSantivirus No. 117 - 2/nov/00
Zone Alarm - El botón rojo que desconecta su PC de la red
Glosario:
(1) TCP/IP (Transmission Control Protocol/Internet Protocol) - Básicamente describe dos mecanismos de software empleados para posibilitar la comunicación libre de errores entre múltiples computadoras. TCP/IP es el lenguaje común de Internet, el que permite que diferentes tipos de computadoras utilicen la red y comuniquen unas con otras, indiferentemente de la plataforma o sistema operativo que usen. Aunque menciona implícitamente solo a dos, en realidad está formado por más de 100 protocolos de comunicaciones de bajo nivel (TCP, IP, ICP, UDP, ICMP, PPP, SLIP, RARP, SMTP, SNMP, etc.).
(2) HTTP (Hypertext Transfer Protocol). Este protocolo funciona en el puerto 80 por defecto, y permite la transmisión de mensajes desde el cliente (browser) al servidor y viceversa. En la práctica, su acción más visible es la que nos permite la visualización de las páginas Web.
(3) IIS (Internet Information Server) - Es el servidor web que se instala bajo Windows 2000 Server.
(4) Index Server 2.0 - Es un programa que examina el equipo y crea catálogos que contienen un índice de elementos del sistema de archivos e información acerca de sus propiedades. El programa se ejecuta periódicamente para actualizar los catálogos. Los índices se utilizan cada vez que un usuario realiza una búsqueda en los catálogos.
(5) Socket - Canal de comunicación que se abre entre un puerto de nuestra computadora y la computadora a la que nos conectamos a través de la red.
Fuentes: Symantec AntiVirus Research Center (SARC), Network Associates, VirusAttack!, Computer Associates, Per Systems.
(c) Video Soft - http://www.videosoft.net.uy
|
|