Autorun y Autoplay - Ataque y protección


USB con infiltrado El autorun existe desde Windows 95. Fué creado para poder arrancar un programa .exe solo poniendo el CD en el lector. Servián por ejemplo para arranca rel famoso "setup.exe" para instalar el programa que llevaba el CD en su interior. También puede ser usado para cambiar el icono del dispositvo entre otras cosas. Por supuesto ahora mismo el autorun también funciona en las nuevas versiones de Windows como el 7 o el 8 y en todo tipo de dispositivos extraibles, también se puede incluir en ficheros .zip .

Creación del fichero

El fichero debe estar en el la raiz del dispositivo y su nombre y extesión deben ser "autorun.inf" . Es decir, si el dispositivo es el Z:su ruta absoluta será Z:/autorun.inf.

La estructura del fichero empezará con una línea escrita con [AUTORUN] . Los comentarios empezarán por ; y los parámetros empezarán por sus letras de inicio y se introducirá un valor con =.

La estructura básica para poner un icono al dispositivo seria esta.

[AUTORUN]
;Comentario que no se tendrá en cuenta.

Opciones del autorun.inf

  • Icon Si queremos añadir un icono podemos especificar un icono propio diciendole la ruta donde está alojado, dentro del mismo dispositivo, o bien podemos decirle que nos ponga un icono de un ejecutable o un dll que se encuentre en el dispositivo o en el mismo sistema Windows. Esto se especifica con el parámetro "Icon". Aparte de la ruta también podemos especificar el número de icono a mostrar del ejecutable, el primero sería 0. En caso de no saber cuantos iconos contiene es mejor no poner mas de 0. Un ejemplo de uso.
[AUTORUN]
icon=ejecutable.exe[,1]
  • Label Este parámetro le asigna una etiqueta para cuando aparezca el nombre del dispositivo. Es sencillo de usar, únicamente se especifica un texto.
[AUTORUN]
label=Este es mi pendrive
  • Open Si lo que queremos es abrir un ejecutable en cuanto se introduzca el dispositivo pondremos usaremos la općion "open". Solo tenemos que indicarle la ruta hacia el ejecutable. De esta forma
[AUTORUN]
open=ejecutable.exe

Por otra parte si lo que quieres ejeutar no es un ejecutable pero si que quieres que sea un fichero html por ejemplo deberás especificarlo con la opción start antes de especificar la ruta del fichero y/o el nombre. De esta forma Windows abrirá el archivo con el programa que tenga asignado para ese tipo de ficheros, en este caso el navegador. Lo pondremos en el fichero autorun.inf tal que así.

[AUTORUN]
open=Start "archivo_web.html"

Junto con el ejecutable se puede especificar los parámetros a pasar. De esta forma.

[AUTORUN]
open=ejecutable.exe parametro1 parametro2
  • ShellExecute Este parámetro solo es usado en sistemas Windows 2000 y Millennium con la libreria shell32.dll en su versión 5.0 o posterior. Por lo tanto no funcionaria en versiones mas recientes de windows.
  • Shell Esta oción se usa para especificar una acción en el menú contextual, es decir, el menú del botón drecho del ratón. De esta forma podemos decirle que añada una opción mas que se llame como nosotros queramos y que ejecute el programa que nosotros le digamos. Después de "shell" debemos poner un identificador verbal, de esta forma "shell\verb", de esta forma podremos definir los dos parámetros para una misma opción. He incluso definir varias acciones para el mismo menú . Esta opción contendrá el texto que aparecerá en el menú. La opción "shell\verb\command" será la que realiza la opción igual que "open" pudiendo usar también el "start".

Se puede colocar "&" en un palabra de la opción "shell\verb" para realizar un atajo de teclado, siendo la primera letra que toca la tecla a usar.

Tamibén se puede especificar la opción "shell=verb" para que sea la opción por defecto cuando se hace doble click sobre el dispositivo.

Al final las opciones quedarían así.

[AUTORUN]
shell\AbrirMiProgrma\command=archivo_ejecutable.exe
shell\AbrirMiProgrma=Ejecutar &MiPrograma<br>shell=AbrirMiPrograma

Esta opción solo funciona en Windows XP SP2 hacia atrás. En los nuevos windows esta opción se deshabilito por seguridad. - Autoplay Esta opción si viene definida se omitirán todos los "open" y "shell", se ejecutará únicamente el autoplay. Se especifica un 1 si se quiere que sea así o un 0 de lo contrario. Para activar la opción sería así.

[AUTORUN]
UseAutoPlay=1
  • Action Esta oción se usa para especificar una acción en el menú Autoplay, el menú que aparece cuando insertamos un dispositivo con las opción de imprimir, abrir imagenes, abrir carpeta,... De esta forma podemos decirle que añada una opción mas que se llame como nosotrs queramos y que ejecute el programa que nosotros le digamos. Entonces ejecutará el fichero puesto en el parámetro open "action=@" como si fuera un "open" , mostrará el texto de "action" junto con el icono de "icon" en el menú autoplay. Quería así.
[AUTORUN]
action=Ejecutar programa
action=@programa.exe

Que hay de malo en el autorun y autoplay?

Muy sencillo, tras el se propagan muchos worms ya que se autocopian en pendrives o cualquier dispositivo escribible y añadiendo el autorun se propagan en cuaquier otro sistema Windows. Se puede evitar deshabilitando en los registros la automatización de estas ejecuciones.

En caso de que queramos deshabilitar el autorun podemos usar los siguientes comandos en la terminal de windows.

reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\ /v NoDriveTypeAutoRun /t REG_DWORD /d 255 /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\ /v NoDriveTypeAutoRun /t REG_DWORD /d 255 /f

Si por el contrario lo queremos habilitar usaremos los siguientes

reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\ /v NoDriveTypeAutoRun /t REG_DWORD /d 149 /ff
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\ /v NoDriveTypeAutoRun /t REG_DWORD /d 149 /f

Como se realiza una propagación a través de autorun o autoplay

Hoy en dia todavia existen Windows XP, por lo tanto el autorun es fácil que funcione en algunos PCs, basta con con hacer referencia al ejecutable que infecta al pc y listo. Aparte se pueden hacer "trampas" para hacer caer al usuario y ser el mismo el que ejecute el binario dandolé al click en el Autoplay en windows mas recientes.

Por ejemplo si quisieramos que el usuario al pulsar sobre la opción del menú autoplay "Abrir carpeta para ver archivos" ejecutará el malware.exe sería de la siguiente forma.

[autorun]
;inicio
open=malware.com
icon=%SystemRoot%\system32\SHELL32.dll,4
action=Abrir carpeta para ver archivos
action=@malware.com
;fin

Sinos fijamos la línea de icon teiene el siguiente parámetro "%SystemRoot%\system32\SHELL32.dll,4" este parámetro adiere el icono de la carpeta de windows, el icono de la versión de windows que corresponda a una carpeta normal y corriente, esot se hace para suplantar el icono que sale en la opción "Abrir carpeta para ver archivos". El texto de action también es el mismo para dar el pego.

Si también queremos que ejecute la opción de Windows XP SP2 de ejecutarlo directamente con la opción shell y además queremos que se sustituyan las opción del menú contextual al pulsar sobre el dispositivo con el botón derecho sería de la siguiente forma.

[AUTORUN]
open=malware.exe
icon=%SystemRoot%\system32\SHELL32.dll,4
action=Abrir carpeta para ver archivos
action=@malware.exe
shell\\\\\Abrir\\\\\command=malware.exe
shell\\\\\Explorar\\\\\command=malware.exe
shell=malware.exe

De esta forma sustituiremos las opciones "Abrir" y "Explorar" del menú contextual.

Muchas veces el archivo autorun.inf se "ofusca", es decir, se añaden líneas con carácteres aleatorios que no tiene nungún sentido, esto lo hacen para dificultar la lectura del fichero, pero suele ser fácil de limpiar ya que son comentarios (líneas que empiezan por ;).

Para protegerse de esto lo mejor es desactivar el autorun y el autoplay y revisar con tu antovirus los dispositivos que conectas. La mayoria de antivirus tienen opciones para proteger el equipo contra estos ataques.