[+] Como proteger nuestros USB de infecciones con AUTORUN.INF y nuestro Equipo

Iniciado por seclogman, 14 Mayo 2009, 16:52 PM

0 Miembros y 1 Visitante están viendo este tema.

seclogman

1er Metodo.

Panda ha desarrollado USB Vaccine, una herramienta antivirus USB gratuita que permite evitar que se ejecute el autorun de los dispositivos que se conecten e impedir que se creen archivos autorun.inf en nuestros dispositivos USB. Recomiendo encarecidamente este metodo para proteger la autoejecucion en los usb.

Panda USB Vaccine: http://www.pandasecurity.com/spain/homeusers/downloads/usbvaccine/

2º Metodo.

Deshabilitar la ejecucion de los autorun.inf, crando un archivo.reg con el bloq de notas con este contenido ->

      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
       @=" @SYS:DoesNotExist"


En algunas ocasiones, el valor no se agrega a la entrada asique habria que comprobarlo manualmente en la direccion y si el valor estuviera vacio, añadirlo manualmente introduciondo " @SYS:DoesNotExist"

3er metodo.

Otra manera MUY interesante de bloquear totalmente nuestro autorun.inf, sin que nosostros mismos podamos sobrescribirlo es aprovechandonos de FAT32

hora, otra cosa a tomar en cuenta es que la mayoría de memorias USB tiene el sistema de archivos FAT o FAT32.


Ahora si revisamos a fondo la estructura del sistema de archivos FAT32, encontraremos cosas interesante.
Citar


Nota: Si deseas saber más sobre sistemas de archivos puedes leer los siguientes enlaces:
http://es.wikipedia.org/wiki/FAT
http://en.wikipedia.org/wiki/File_Allocation_Table


Algo muy interesante en el sistema de archivos FAT32 es un atributo que estoy seguro que la mayoría de nosotros desconocíamos: EL ATRIBUTO DE DISPOSITIVO, que es de uso interno solamente para el sistema Operativo y que no debería estar presente en un disco de manera normal, jejeje.






Este atributo designa a un dispositivo y no permite que el dispositivo en sí pueda ser modificado a nivel de dispositivo. Pero la pregunta es: ¿Se puede asignar este atributo a un archivo? ¿Cómo?


Como ya vimos, en linea de comandos o usando la shell del explorador no podremos asignar este atributo a los archivos. En este caso si podríamos asignar este atributo al archivo AUTORUN.INF, podríamos indicarle al sistema operativo que este archivo sería un dispositivo y por lo tanto no podría ser modificado ni borrado por ningún proceso usando la vía normal o común de escritura de archivos.


Aquí entra a tallar, el conocimiento extremo, el poder Geek o Hacker, jejeje.


Aquí con esta guía veremos cómo es posible que podamos crear un archivo autorun.inf con permisos de Dispositivo que contendrá cualquier cosa de modo que no pueda ser sobreescrito por ningún otro archivo de software malicioso y por nosotros mismos!


Para esto, usaremos un Editor Hexadecimal, en mi caso usaré uno de los mejores: WinHEX.


Procedamos


1.   Formateemos nuestra memoria USB en formato FAT32.


















2.  Crear el archivo autorun.inf. En este caso lo hice usando la línea de comandos, a la antigua y no por eso menos poderosa, jejeje.


H: Enter # en tu caso debes poner la letra de tu unidad
copy con autorun.inf
Enter
el texto que quieras  y CTRL+Z y         Enter











3. - Abrimos nuestro editor hexadecimal.



Luego seleccionamos la Opción “Tools”, “Open Disk”.

Seleccionamos nuestra unidad a Proteger.







Una vez abierto nuestra Unidad de memoria USB, vemos el contenido tal y como lo ve el Sistema Operativo. Vemos las estructuras del Boot Sector (Sector de Arranque), FAT1 y FAT2 (Tabla de asignación de archivos y copia), el Root Directory (Directorio Raíz donde se almacenan los nombres de los archivos, sus atributos, su tamaño y ubicación).


Nosotros vamos a trabajar directamente sobre el Directorio Raíz, pues ubicaremos la entrada correspondiente al archivo AUTORUN.INF que creamos previamente. Cabe recordar que en FAT32 cada entrada de archivo tiene designada los primeros 8 bytez para el nombre del archivo, los 3 bytes siguientes para la extensión y el byte en la posición 11 indica el atributo :





Al ubicarnos en el Directorio Raíz con nuestro editor hexadecimal al ubicar el byte 11 (Offset B) - en mi caso - vemos que tiene el atributo 0×20, que indica que es un archivo de almacenamiento.



Entonces lo que ahora haremos en escribir el valor 0×40 en lugar de 0×20 y con esto le atribuiremos el atributo de Dispositivo a nuestro archivo AUTORUN.INF.







Procedemos a guardar los cambios en la memoria USB, haciendo click en el ícono del Diskette .

Aceptamos…

Cerramos el programa WinHEX y vamos a nuestra memoria USB y la exploramos.


Tratemos ahora de editar el archivo dándole doble click, y veamos que sucede:



Ahora intentemos eliminar el archivo:









Intentemos cambiarle de nombre también:









Y vemos que no podemos hacer ningún tipo de cambio a este archivo. Entonces la idea es que ningún programa malicioso pueda crear su archivo AUTORUN.INF maligno en nuestra querida memoria USB.



Referencias:


http://en.wikipedia.org/wiki/File_Allocation_Table
http://es.wikipedia.org/wiki/FAT
http://www.x-ways.net/winhex/index-e.html
http://support.microsoft.com/kb/154997
http://milw0rm.com/papers/314


Espero que os sirva.

Un saludo.





Axus

Exelente informacion ;)

Merece estar en los Temas Frecuentes de esta sección.

Un saludo ;)

Novlucker

... o, tenemos el batch RDAP.CMD de 0x0309 que funciona a la perfección creando un archivo en las unidades removibles que no puede ser sobreescrito por los worms  :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Arcano.

Muy buenas!

Muy interesante la información zer0byte...

Sobretodo el tercer método. Muchos usarán las técnicas más simples o automáticas,
Es más, a día de hoy yo mismo utilizo la segunda opción que comentas junto a la 'Desactivación de reproducción automática' que nos brinda el Gpedit.

Si bien, nunca va mal conocer 'el porqué de algunas cosas' y éste último método me ha parecido muy interesante... Se agradece. Tampoco conocía lo que comenta Novlucker . Habrá que investigar.

De igual forma, para que el tema quede algo más completito, agrego el link de otro post donde se comentó esto anteriormente: http://foro.elhacker.net/seguridad/sospecho_que_mi_usb_tiene_un_virus-t253157.0.html

Y ya para acabar, otra utilidad de 'zonavirus' con la misma finalidad: http://www.zonavirus.com/descargas/elipen.asp

Saludos!
La curiosidad es la antesala al conocimiento...

javijack

Me sale esto al analizar mi USB con el NOD32:

Citar
F:\autorun.inf error abriendo

¿Es un virus? Ya me he descargadoi el panda vaccunate ese... ¿Que hago?

Novlucker

Pero has hecho lo que muestra zer0byte como tercera opción? porque de ser así sería correcto que muestre eso, ese autorun.inf no se va a borrar a menos que formates el pendrive  :-X

Saludos

P.D: se puede eliminar desde linux
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Arcano.

Muy buenas!

javijack tal y como te comenta Novlucker, si has hecho el tercer paso, es normal que ese archivo esté ahí... Por otro lado, el NOD32 no debería considerarlo como virus...

A no ser que lo hayas colocado tú mismo, NO debe haber ningún 'autorun.inf' en el pendrive.


Para eliminarlo mediante el Panda Vaccine:

(1) Colocas el pendrive en el ordenador.
(2) Lo seleccionas desde la opción 'Select an USB drive'.
(3) Le das a 'vaccinate usb'.



También puedes hacerlo mediante 'CMD':

Citar

(1) Te colocas en la unidad del usb---> <letra unidad>: (dos puntos).

(2) Haces un 'dir /a:s'. Si entre los archivos ves alguno con el nombre 'autorun.inf'. Podrás borrarlo mediante el siguiente paso.

(3) Le das atributos para poder borrarlo---> 'attrib -h -r -s'.

(4) Lo borras ----> del autorun.inf



Aunque, será más fácil con la utilidad de Panda  :silbar:

Saludos.

PD: Cuando tengo un momentico voy a ponerme con el tercer paso, tengo curiosidad...
La curiosidad es la antesala al conocimiento...

Novlucker

Supongo que el paso tres debe de ser similar al script de 0x0309, el cual crea una carpeta de nombre AUTORUN.INF, y dentro un archivo de nombre NULL, el cual por más que intentes no se puede sobreescribir o eliminar  :P


Saludos  ;D
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

seclogman

Cita de: Novlucker en 18 Mayo 2009, 17:24 PM
Supongo que el paso tres debe de ser similar al script de 0x0309, el cual crea una carpeta de nombre AUTORUN.INF, y dentro un archivo de nombre NULL, el cual por más que intentes no se puede sobreescribir o eliminar  :P


Saludos  ;D

si, lo que hace ese script es crear un archivo NUL que se hace tomar como dispositivo conectado, NO como archivo; al igual que si se creara un archivo con alguno de estos nombres CON, PRN, AUX, CLOCK$, NUL, COM0, COM1, COM2, COM3, COM4 etc

Con el metodo hexadecimal es mas trabajoso, pero le das ese atributo de dispositivo directamente al archivo AUTORUN.INF en vez de crear un archivo con los nombres anteriores, haciendolo hexadecimalmente no puede ser eliminado el AUTORUN.INF de ninguna forma, en cambio 0x0309 ya dijo que con su metodo si se podia borrar la carpeta AUTORUN.INF con el archivo NUL, pero logicamente ningun malware tendra esa capacidad de hacerlo debido a que no es conocida o casi conocida esta tecnica de proteccion

en fin para los que quieran mas info sobre los archivos que actuan a modo de dispositivo http://en.wikipedia.org/wiki/Filename



Un saludo; zer0byte





Novlucker

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein