| | Última Modificació del Document 6 d'agost de 2001 |
|
|
 | | | Resum | | Valoració | | Descripció d'un nou cuc, derivat de “Code Red” que afecta als servidors Windows amb IIS que no estiguin convenientment actualitzats | Severitat |
| Fiabilitat |
| Probabilitat |
| Sistemes afectats | | | Màquines amb Microsoft Windows NT 4.0 o Windows 2000 i el servidor web Internet Information Server actiu. | | | Data publicació avís | ID a CVE | | 06-08-2001 20:10 | | Data modificació avís | Utilització remota | 06-08-2001 20:10 | Sí | | Versió de l'avís | Obtenció privilegis administrador | 1 | Sí | | |
|
 |  | | ACLARACIMENT SOBRE ELS NOMS DE LES VARIANTS DE “CODE RED” Sembla que hi ha una certa confusió en la forma d'anomenar al cuc “Code Red”. A quands.com seguim la denominació utilitzada per SANS Institute: CRv1: La versió orignal del cuc que realitza la substitució de les pàgines web i realitza la propagació utilitzant com a base la mateixa adreça IP. CRv2: Mutació de CRv1 funcionalment equivalent i amb dues petites diferències: no realitza cap substitució de pàgines web i cada thread del procés de cerca utilitza una base diferent per a obtenir la relació d'adreces IP a analitzar. CRv3: Funcionalment igual a CRv2, però amb petites diferències en el mecanisme de selecció de l'adreça IP de la víctima durant el procés de recerca. CodeRed II: La versió de la que parlem en aquesta anàlisi. |
|
 |  | | En les últimes hores, els tràfic generat pel cuc “Code Red” ha augmentat considerablement en gran part com a conseqüència d'una nova variant que s'ha anomenat “Code Red II”. |
 | Anàlisi del cuc “Code Red II” |
 |  | | Aquest nou cuc va ser detectat per primera vegada la tarda del 4 d'agost. En aquest article es presenta un resum de les troballes realitzades per les diverses anàlisi en profunditat realitzades. Vulnerabilitat explotada Aquesta variant del cuc fa servir el mateix mecanisme que la versió original de “Code Red” per tal d'infectar els servidors vulnerables. És a dir, el cuc cerca servidors amb l'Internet Information Server (IIS) als quals bé no s'ha instal·lat l'actualització per solucionar un desbordament de memòria intermèdia a IDQ.DLL o bé no s'han eliminat els mapejos dels scripts ISAPI. Per a informació sobre aquesta vulnerabilitat, podeu consultar l'avís original del cuc “Code Red”. Exceptuant el mecanisme de infecció utilitzant aquest desbordament de memòria per tal d'executar el codi del cuc a un servidor IIS vulnerable, la resta del cuc és totalment nova i totalment diferent de les diverses varietat des “Code Red” conegudes (Code Red CRv1 i Code Red CRv2). |
 | Nota: Segons eEye, el codi d'aquest cuc només funciona correctament als sistemes Windows 2000 que executin una versió vulnerable de l'IIS. Els servidors que fan servidor Windows NT senzillament es quedaran penjats alhora d'executar el codi del cuc. Els experiments que hem realitzat, així com els comentaris d'altres usuaris semblen demostrar aquest punt. |
|
 | Porta secreta
La característica més perillosa d'aquest nou cuc és el fet que crea una porta secreta (backdoor) al servidor infectat, deixant el sistema oberta a qualsevol atacant. El cuc copia el fitxer %windir%\CMD.EXE als següents directoris: - c:\inetpub\scripts\root.exe
- c:\progra~1\common~1\system\MSADC\root.exe
- d:\inetpub\scripts\root.exe
- d:\progra~1\common~1\system\MSADC\root.exe
La instal·lació d'aquestes còpies de CMD.EXE permet a qualsevol atacant l'execució d'ordres arbitràries del sistema al servidor compromès. A més, el cuc crea una versió modificada de l'EXPLORER.EXE, tal com es descriu més endavant. Si s'utilitza aquesta versió modificada, IIS farà que el directoris arrel de les unitats C: i D: siguin accessibles a qualsevol atacant remot, fins i tot si el programa ROOT.EXE (CMD.EXE) ha estat esborrat dels directoris SCRIPTS i MSADC. Versió modificada de l'EXPLORER.EXE El cuc transporta la seva pròpia versió del fitxer EXPLORER.EXE i s'encarrega de copiar-la als directoris C:\ i D:\. El fet de copiar-les en aquests directoris farà que Windows les trobi i executi amb preferència a la versió real de l'EXPLORER.EXE donada la forma en que Windows cerca, per omissió, els fitxers executables. D'aquesta forma, si no s'ha instal·lat l'actualització que elimina la vulnerabilitat contra les vies d'accés relatives, la propera vegada que un usuari accedeixi al sistema s'executarà aquesta versió modificada de l'EXPLORER.EXE (per a més detalls sobre aquesta vulnerabilitat, podeu consultar el butlletí de Microsoft). En el moment d'executar aquesta versió modificada de l'EXPLORER.EXE, el cuc s'encarrega d'executar la versió autèntica del programa de forma que l'usuari no se n'adona de cap problema i, a continuació, comença a modificar el contingut del registre del sistema. Per començar, s'afegeix a el valor Això deshabilita completament el mecanisme de protecció de fitxers de Windows (Windows File Protection, WFP). WFP és qui s'encarrega de prevenir la sobreescriptura de determinats fitxers del sistema. Per a més informació podeu consultar el document de Microsoft. A continuació, el cuc modifica una sèrie de directoris virtuals dins el registre: SYSTEM\CurrentControlSet\Services\W3SVC\ Parameters\Virtual Roots\cripts amb el valor ,,217 SYSTEM\CurrentControlSet\Services\W3SVC\ Parameters\Virtual Roots\msadc amb el valor ,,217
|
 | El valor “217” indica que tant el directori scripts com el directori msadc (que tots dos contenen el programa ROOT.EXE, una còpia de CMD.EXE) tenen permís de lectura, escriptura i execució. Per últim, la versió modificada de l'EXPLORER.EXE crea dos directoris virtuals addicionals: SYSTEM\Current\ControlSet\Services\W3SVC\ Parameters\Virtual Roots\c amb el valor c:\,,217 SYSTEM\CurrentControlSet\Services\W3SVC\ Parameters\Virtual Roots\d amb el valor d:\,,217
Aquests directoris virtuals, que habitualment no existeixen, permeten accedir remotament als directoris arrels de les unitats C: i D: a través del servidor web, amb permisos de lectura, escriptura i execució. |
 |  | | Segons l'anàlisi d'eEye, l'objectiu d'aquests directoris virtuals és permetre instal·lar una porta secreta al sistema fins i tot en el cas que el fitxer ROOT.EXE hagi estat esborrat del directori /scripts. L'atacant podrà comprometre el sistema amb un atac semblant a aquest: http://AdreçaIP/c/inetpub/scripts/root.exe?/c+dir (en el cas de que root.exe continuï al directori scripts) http://AdreçaIP/c/winnt/system32/cmd.exe?/c+dir (on “dir” pot ser qualsevol ordre que vulgui executar l'atacant). |
|
 |  | | És important assenyalar n'hi ha prou amb executar una vegada la versió modificada de l'EXPLORER.EXE per tal que es facin aquests canvis al registre del sistema. Des del moment en que es facin aquestes modificacions i es reinici l'IIS, les portes secretes estaran actives. És més, les portes traseres continuaran actives amb independència de si l'EXPLORER.EXE està funcionant o no. Fins i tot, el fet d'aturar el procés de la versió modificada de l'EXPLORER.EXE no esborrarà les portes secretes. L'aturar l'EXPLORER.EXE i esborrar les copies de ROOT.EXE i esborrar les entrades del registre tampoc elimina les portes secretes. En el moment en que es torni a executar la versió modificada de l'EXPLORER.EXE (en el moment en que un nou usuari connecta al sistema) es tornaran a realitzar els canvis del registre i per tant els directoris C: i D: tornaran a ser accessibles des de l'exterior quan es torni a arrencar l'IIS (Podeu trobar més informació sobre els directoris virtuals de l'IIS a AVDF.COM). Com a consideració final, cal indicar que el fet d'esborrar les entrades del registre, esborrar les còpies de ROOT.EXE i esborrar la versió modificada de l'EXPLORER.EXE no és suficient per tal de netejar un sistema infectat. Des del moment en que hi ha una porta secreta al sistema hi ha la possibilitat més que real de que un atacant hagi instal·lat d'altres portes secretes que no estiguin associades de cap forma amb aquest cuc. El procés de la versió modificada de l'EXPLORER.EXE resta aturat la major part del temps, encara que cada 10 minuts comprova el valors de les variables modificades del registre. D'aquesta forma, en cas que l'administrador de la màquina se n'adoni dels canvi i els esborri, el cuc s'encarrega de restaurar els valors pocs minuts després. Propagació El mètode utilitzat pel cuc varia en funció de si l'idioma xinès està instal·lat a la màquina víctima. En cas de que estigui present, el cuc executarà 600 threads que intentaran propagar-se durant 48 hores. En cas de que l'idioma xinès no estigui instal·lat xinès, executarà 300 threads i el període de propagació serà de 24 hores. Un cop passat el període de propagació, el cuc força una aturada de la màquina i a continuació la reinicia. D'aquesta forma, el cuc desapareix de la memòria de l'ordinador, encara que les portes secretes continuen actives. Selecció de víctimes Els threads utilitzats per a la propagació (300 o 600) funcionen de forma simultània. Cada un d'ells escull una adreça IP de forma aleatòria i a continuació hi aplica una d'aquestes màscares de xarxa amb un índex de probabilitat. Això fa que l'acció de propagació del cuc quedi bàsicament restringida a adreces IP properes a les de l'ordinador infectat: |
 | | | Màscara | Índex de Probabilitat | Resultat | 0.0.0.0 | 12,5% | Adreça aleatòria | 255.0.0.0 | 50,0% | Dins la mateixa classe A | 255.255.0.0 | 37,5% | Dins la mateixa classe B |
|
 |  | | Les adreces IP de les classes 127.x.x.x i 224.x.x.x són excloses i també s'exclouen les 0 i 255. El cuc tampoc intenta tornar-se a infectar ell mateix. Procés d'infecció Abans de realitzar una connexió a una possible nova víctima, el cuc realitza una comprovació de la data. Si l'any és inferior al 2002 i el mes anterior a l'octubre. En cas de que no es compleixi alguna d'aquests requeriments, el cuc finalitza el cicle de propagació i reinicia el servidor. Això vol dir que el cuc deixarà de propagar-se el proper 1 d'octubre d'enguany. Per tal de millorar el rendiment, el cuc utilitza un socket sense bloqueig per tal de connectar a cada possible víctima. Com a conseqüència si un thread queda a l'espera d'una connexió molt lenta, la resta de threads no es veuran afectats. Un cop realitzada una connexió TCP/IP amb una possible víctima, el cuc envia tot el seu codi a la vegada i resta a l'espera de l'avís de recepció. A continuació, prova d'infectar a una altra possible víctima. A l'arribar a una víctima, el primer que fa el cuc a l'executar-se es verificar si la màquina ja està infectada. En cas afirmatiu, es deshabilita. Per fer-ho, verifica si l'àtom CodeRedII ha estat establert amb GlobalFindAtomA. En cas de trobar l'existència d'aquest àtom, queda en estat de suspensió. Si l'àtom no existeix, el cuc continua el seu procés d'execució. Referències Versió desensamblada del cuc i de la versió modificada de l'EXPLORER.EXE http://www.eikon.tum.de/~simons/ida_root/ Anàlisi d'eEye i versió desensamblada del cuc http://www.eeye.com/html/advisories/coderedII.zip Versió binària del cuc http://www.unixwiz.net/techtips/CodeRedII.html Anàlisi de CoreCode http://archives.neohapsis.com/archives/incidents/ 2001-08/0092.html Anàlisi de NAI http://vil.nai.com/vil/virusChar.asp?virus_k=99177 Anàlisi de SecurityFocus http://archives.neohapsis.com/archives/bugtraq/ 2001-08/0066.html
|
|