Copy Link
Add to Bookmark
Report
Minotauro Magazine Issue 09 03 Marca de infecci¢n por atributos Gusano, Los Alegres Colchoneros
MINOTAURO MAGAZINE #9:
Marca de infecci¢n por atributos
Gusano, Los Alegres Colchoneros
Seguramente toda su vida trataron de hacer una marca en los
archivos infectados que sea f cil de verificar, como para hacer stealth
y anti-heur¡stica, entonces por la primera condici¢n tenemos que descartar
la posibilidad de que la marca este adentro del file, porque habr¡a que
andar leyndolo para verificar, y un dir si no hay ning£n cache cargado
tardar¡a lo mismo que el windoze 95 en cargarse y no queremos que eso
pase, entonces nos queda la info que guarda el DOS del file en cada entrada
de directorio:
Offset Tama¤o Descripci¢n
00h 8 BYTEs nombre
08h 3 BYTEs extenci¢n
0Bh BYTE atributos
0Ch 10 BYTEs reservado
Usado por el DR-DOS para guardar el
password.
16h WORD Hora
18h WORD Fecha
1Ah WORD Primer Cluster del file
1Ch DWORD Tama¤o del file
Lo primero que vemos son esos 10 bytes en el offset 0Ch que si miramos un
HD siempre est n en 00, ah¡ podemos escribir hasta "INFECTADO" y nadie se
da cuenta a menos que lo mire con el disk edit, pero este valor no aparece
en la DTA, as¡ que no es r pido como queremos. Si modificamos el siglo o
los segundo de manera que el usuario no se de cuenta que cambiaron, saltan
alarmas en todos los antivirus, as¡ que por ah¡ no viene la cosa, ni el
nombre ni el tama¤o hay bytes al pedo as¡ que ah¡ no podemos tocar nada,
as¡ que nos quedan los atributos. Los atributos son 1 Byte que el D.O.S
almacena sobre cada archivo, y cada uno de sus bits, representa un tipo
de atributo:
Bit(s) Descripci¢n
7 shareable (Novell NetWare)
6 no usado
5 archivo
4 directorio
3 volume label
execute-only (Novell NetWare)
2 system
1 hidden
0 read-only
Seguramente en sus tablas de atributos el bit 7 tambin esta como no usado,
pero si Ralf dice que lo usa Novell, mejor no lo tocamos, pero nos queda
el 6, con setearlo ya indicamos que el archivo esta infectado por nosotros.
Esta manera de indicar es buena porque cuando leemos la DTA tenemos los
atributos ah¡ sin ning£n esfuerzo. El £nico problema es setear este bit.
La primera manera que se nos viene a la mente es con la int
021h, pero si activamos este bit, nos devuelve que estamos queriendo setear
un atributo inv lido. Entonces nos quedan dos maneras de setearlo:
1) La primera y la mas normal seria a mano, ¢sea, buscar la entrada de
directorio del file a infectar, leerla (hay que leer todo el sector)
cambiarla y grabar todo el sector de nuevo. Esto seria bastante f cil,
si no fuera porque para encontrar la entrada de directorio que queremos
hay que hacer bastantes cosas como leer el registro de arranque, ver cuantos
sectores por cluster tiene el disco, buscar la entrada '.' para saber donde
empieza el dir, leer todos los sectores del dir donde esta el file hasta
encontrarlo y recin ah¡ modificarlo y escribirlo.
2) Esta es la manera mas f cil y funciona perfecto. V¡a SFT, solo hay que
hay que hacer un OR OFFSET 04h de la SFT, 01000000b. Y cuando cerramos el
archivo se guarda el cambio. No les voy a explicar como obtener las SFT
porque ya esta muy bien explicado en la Minotauro 7 por Trurl.