¿Qué programas se inician con Windows?
Aplicaciones en el arranque de Windows.
Esta es una pregunta muy interesante y repetida cientos de veces que puede sernos de mucha utilidad para conocer qué aplicaciones arrancan con el Sistema Operativo (SO) Windows y de este modo poder optimizar y mejorar el rendimiento en el inicio. Sin embargo, también se podría prestar atención a otro punto igual o más interesante: ¿cómo podrías descubrir un malware que se carga en el arranque del SO?
Nota: Verás que en alguna clave o ruta he puesto de nombre <usuario>. Lógicamente es para referirme al nombre de usuario.
Configuración del sistema
Posiblemente esta es la herramienta más conocida de Windows, para acceder a la herramienta Configuración del sistema puedes hacerlo desde:
- Ve al menú de Windows 1 y en el cuadro de texto donde aparece Buscar programas y archivos, escribe Ejecutar 2. Una vez encontrado 3, cliquea sobre él o pulsa Enter. Ahora en la nueva ventana de Ejecutar, escribe lo siguiente: msconfig
Nota: Para mostrar la ventana ejecutar puedes usar el siguiente atajo: tecla Windows + R. También puedes escribir directamente msconfig en el cuadro de texto 2.
- También puedes ejecutarla desde: menú de Windows 1 ? Panel de Control ? Herramientas administrativas ? Configuración del sistema (System Configuration). Si estás viendo el Panel de Control con iconos grandes, puedes acceder desde Panel de Control ? Sistemas y seguridad ? Herramientas administrativas ? Configuración del sistema (System Configuration).
De las dos formas anteriores aparecerá la ventana Configuración del sistema y ahí, si vas a la pestaña Inicio de Windows verás algo similar a esto:
Puedes tildar o destildar los elementos de inicio. Lo interesante de esta ventana es que en la Ubicación nos muestra dos interesantes rutas del registro que seguidamente veremos.
Servicios
Los servicios son tareas del Sistema Operativo o funciones para controlar aspectos como el control de accesos, seguridad etc. y se ejecutan en segundo plano. Puedes examinarlos en la imagen anterior, pestaña Servicios y desactivarlos (iniciar, pausar o detener) para que en el próximo arranque no se inicien. También puedes ver los que se están ejecutando en Windows 7 en el administrador de tareas (Ctrl + Alt + Supr ? Iniciar el Administrador de tareas) o ejecutar services.msc (escribiéndolo y buscándolo en el cuadro de texto 2).
Con cuidado: Hay que tener mucha precaución a la hora de detener o desactivar servicios porque puede afectar al Sistema Operativo de una forma que no esperas: no arranca el SO, da errores... Por eso antes de detener un servicio debes buscar información sobre el mismo.
Registro
La mayoría de aplicaciones que se inician con Windows están indicadas y guardadas en el registro (no te puedes llegar a imaginar la cantidad de claves que hay). Viendo la imagen anterior, podemos acceder al registro de Windows (Menú 1 ? y en el cuadro de texto donde aparece Buscar programas y archivos 2, escribe regedit). Ya estás en el editor del registro.
Clave Run
En el editor del registro busca lo siguiente:
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
La diferencia entre una y otra son HKCU (HKEY_CURRENT_USER, clave relacionada con el usuario que ha iniciado sesión) y HKLM (HKEY_LOCAL_MACHINE, esta clave contiene información del sistema sobre la configuración del hardware y software.)
En Windows a 64 bits, aparecerán como:
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
Pero no solo se pueden encontrar en esas ubicaciones. Ve de nuevo al registro y haz una búsqueda (Menú Edición ? Buscar) de claves que tengan el texto run y tildas la opción "Solo cadenas completas". Aparecerán casos como este ejemplo:
HKEY_USERS\S-1-5-21-6868686868-5959595959-5959595959-7777\Software\Microsoft\Windows\CurrentVersion\Run
con la siguiente información:
"C:\Users\<usuario>\AppData\Local\Google\Update\GoogleUpdate.exe" /c
Claves RunOnce y RunOnceEx
Si vas a las claves de registro "run" mencionadas en el apartado anterior, verás que justo debajo de ellas aparece una clave llamada RunOnce, que traducida significa: ejecutar una vez. Más información en la web de Microsoft [ENG].
También existe la clave RunOnceEx que existe de forma predeterminada en Windows 2000, Windows XP y Windows Server 2003, mientras que en Vista, 7 y Windows Server 2008 R2 hay que crearla. Por ejemplo:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
Clave BootExecute
Especifica las aplicaciones, servicios y comandos que se ejecutarán al inicio. Más información: BootExecute [ENG].
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute
Otras claves
Existen otras muchas claves del registro como estas:
HKLM\System\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\StartupPrograms
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AppSetup
HKLM\Software\Policies\Microsoft\Windows\System\Scripts\Startup
HKCU\Software\Policies\Microsoft\Windows\System\Scripts\Logon
HKLM\Software\Policies\Microsoft\Windows\System\Scripts\Logon
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell
HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Taskman
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Runonce
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\RunonceEx
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Load
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup\
HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Runonce
HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\RunonceEx
HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Classes\Protocols\Filter
HKLM\SOFTWARE\Classes\Protocols\Handler
HKCU\SOFTWARE\Microsoft\Internet Explorer\Desktop\Components
HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components
HKCU\SOFTWARE\Microsoft\Active Setup\Installed Components
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SharedTaskScheduler
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks
HKCU\Software\Classes\*\ShellEx\ContextMenuHandlers
HKLM\Software\Classes\*\ShellEx\ContextMenuHandlers
HKCU\Software\Classes\AllFileSystemObjects\ShellEx\ContextMenuHandlers
HKLM\Software\Classes\AllFileSystemObjects\ShellEx\ContextMenuHandlers
HKCU\Software\Classes\Folder\ShellEx\ContextMenuHandlers
HKLM\Software\Classes\Folder\ShellEx\ContextMenuHandlers
HKCU\Software\Classes\Directory\ShellEx\ContextMenuHandlers
HKLM\Software\Classes\Directory\ShellEx\ContextMenuHandlers
HKCU\Software\Classes\Directory\Background\ShellEx\ContextMenuHandlers
HKLM\Software\Classes\Directory\Background\ShellEx\ContextMenuHandlers
HKCU\Software\Classes\Folder\Shellex\ColumnHandlers
HKLM\Software\Classes\Folder\Shellex\ColumnHandlers
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
HKCU\Software\Microsoft\Ctf\LangBarAddin
HKLM\Software\Microsoft\Ctf\LangBarAddin
HKCU\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved
HKLM\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
HKCU\Software\Microsoft\Internet Explorer\UrlSearchHooks
HKLM\Software\Microsoft\Internet Explorer\Toolbar
HKCU\Software\Microsoft\Internet Explorer\Explorer Bars
HKLM\Software\Microsoft\Internet Explorer\Explorer Bars
HKCU\Software\Microsoft\Internet Explorer\Extensions
HKLM\Software\Microsoft\Internet Explorer\Extensions
HKLM\System\CurrentControlSet\Services
HKLM\System\CurrentControlSet\Services
HKLM\System\CurrentControlSet\Control\Session Manager\BootExecute
HKLM\System\CurrentControlSet\Control\Session Manager\SetupExecute
HKLM\System\CurrentControlSet\Control\Session Manager\Execute
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
HKLM\Software\Microsoft\Command Processor\Autorun
HKCU\Software\Microsoft\Command Processor\Autorun
HKLM\SOFTWARE\Classes\Exefile\Shell\Open\Command\(Default)
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\Appinit_Dlls
HKLM\System\CurrentControlSet\Control\Session Manager\KnownDlls
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\System
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UIHost
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GinaDLL
HKCU\Control Panel\Desktop\Scrnsave.exe
HKLM\System\CurrentControlSet\Control\BootVerificationProgram\ImagePath
HKLM\System\CurrentControlSet\Services\WinSock2\Parameters\Protocol_Catalog9
HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors
HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SecurityProviders
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Authentication Packages
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Notification Packages
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages
HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\load
HKCR\batfile\shell\open\command
HKCR\comfile\shell\open\command
HKCR\exefile\shell\open\command
HKCR\htafile\shell\open\command
HKCR\piffile\shell\open\command
HKLM\Software\Classes\batfile\shell\open\command
HKLM\Software\Classes\comfile\shell\open\command
HKLM\Software\Classes\exefile\shell\open\command
HKLM\Software\Classes\htafile\shell\open\command
HKLM\Software\Classes\piffile\shell\open\command
HKLM\System\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}\UpperFilters
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\VmApplet
HKLM\Software\Microsoft\Windows NT\CurrentVersion\InitFileMapping
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Aedebug
HKLM\Software\Classes\CLSID\{CLSID}\Implemented Categories\{00021493-0000-0000-C000-000000000046}
HKLM\Software\Classes\CLSID\{CLSID}\Implemented Categories\{00021494-0000-0000-C000-000000000046}
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\Application
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.cmd\Application
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.com\Application
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe\Application
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.hta\Application
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pif\Application
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.scr\Application
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\ProgID
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.cmd\ProgID
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.com\ProgID
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe\ProgID
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.hta\ProgID
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pif\ProgID
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.scr\ProgID
Infección en la ejecución
Más bien esta es una opción que puede ser utilizada por malware. ¿Cómo? Pues modifican en el registro una clave para que cada vez que se ejecute un programa, sea también ejecutado dicho virus o aplicación. Para eso, puede modificar las siguientes claves:
[HKCR\exefile\shell\open\command] @="\"%1\" %*"
Ejecutado cada vez que un archivo .EXE es ejecutado.
[HKCR\comfile\shell\open\command] @="\"%1\" %*"
Ejecutado cada vez que un archivo .COM es ejecutado.
[HKCR\batfile\shell\open\command] @="\"%1\" %*"
Ejecutado cada vez que un archivo .BAT es ejecutado.
[HKCR\htafile\Shell\Open\Command] @="\"%1\" %*"
Ejecutado cada vez que un archivo .hta (aplicación HTML) es ejecutado.
[HKCR\piffile\shell\open\command] @="\"%1\" %*"
Ejecutado cada vez que un archivo .PIF (Portable Interchange Format) es ejecutado.
[HKLM\Software\CLASSES\batfile\shell\open\command] @="\"%1\" %*"
Ejecutado cada vez que un archivo .BAT es ejecutado.
[HKLM\Software\CLASSES\comfile\shell\open\command] @="\"%1\" %*"
Ejecutado cada vez que un archivo .COM es ejecutado.
[HKLM\Software\CLASSES\exefile\shell\open\command] @="\"%1\" %*"
Ejecutado cada vez que un archivo .EXE es ejecutado.
[HKLM\Software\CLASSES\htafile\Shell\Open\Command] @="\"%1\" %*"
Ejecutado cada vez que un archivo .hta (aplicación HTML) es ejecutado.
[HKLM\Software\CLASSES\piffile\shell\open\command] @="\"%1\" %*"
Ejecutado cada vez que un archivo .PIF (Portable Interchange Format) es ejecutado.
Y lo mismo con otros archivos como .JS (JavaScript), .VBS (Visual Basic Script) etc.
Componentes Active-X
Se llegan a ejecutar incluso antes de explorer.exe:
[HKLM\Software\Microsoft\Active Setup\Installed Components\Nombre_de_la_clave]
StubPath=C:\Ruta_al_archivo\archivo.exe
Más claves...
Capa de Proveedores de Servicios, ejecutada antes del inicio de sesión del usuario:
HKLM\System\CurrentControlSet\Services\Winsock2\Parameters\Protocol_Catalog\Catalog_Entries
Ejecutado cuando un ejecutable de Windows a 16 bits es ejecutado:
HKLM\System\Control\WOW\cmdline
Ejecutado cuando una aplicación DOS a 16 bits es ejecutada:
HKLM\System\Control\WOW\wowcmdline
Restaurar Sistema:
HKLM\Software\Policies\Microsoft\Windows NT\SystemRestore
Pueden conectarse a sitios maliciosos remotos:
HKLM\System\CurrentControlSet\Services\Winsock2\Parameters\NameSpace_Catalog5\Catalog_Entries
HKLM\System\CurrentControlSet\Services\Winsock2\Parameters\Protocol_Catalog9\Catalog_Entries
Virus Sirefef
¿Sabes cómo se ejecutan algunos de los virus más conocidos? Por ejemplo, el virus Sirefef que quité el otro día de un ordenador. Este virus se ejecutaba en cada reinicio. ¿Cómo lo hizo?Este virus lo encontré en esta ubicación:
C:\$RECYBLE.BIN\S-1-5-18\$a1421fabbd35cfbea431344\@
El virus infecta de la siguiente forma, modifica la siguiente subclave:
HKLM\Software\Classes\clsid\{5839fca9-774d-42a1-acda-d6a79037f57f}\InprocServer32
Y modifica el valor "Default" y cambia los datos:
<carpeta de sistema>\wbem\wbemess.dll
por
<ruta al virus>
Más información en http://www.microsoft.com/security/portal/threat/encyclopedia/entry.aspx?Name=Win32%2FSirefef.
Menú inicio
Los programas que se encuentren en este menú serán ejecutados al inicio. Menú de Windows 1 ? Todos los programas ? Inicio.
En Windows 7, para todos los usuarios, se suele encontrar en:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
Mientras que para un determinado usuario:
C:\Users\<usuario>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Si trabajas todavía con Windows XP, las anteriores claves las tienes aquí:
C:\Documents and Settings\All Users\Start Menu\Programs\Startup
C:\Documents and Settings\<usuario>\Start Menu\Programs\Startup
Tareas de Windows
En Windows existe una herramienta que permite especificar cuándo queremos que una determinada tarea se realice. Esta es el programador de tareas que podemos encontrar en: Menú de Windows 1 ? Todos los programas ? Accesorios ? Herramientas del sistema ? Programador de tareas. ¿Sabes dónde se guardan? Sí, en el disco duro en estas rutas:
Windows XP:
C:\WINDOWS\Tasks
Windows Vista, 7, 8
C:\WINDOWS\System32\Tasks
Información del sistema
Puedes acceder a la información del sistema yendo al menú de Windows 1 y en el cuadro de texto donde aparece Buscar programas y archivos 2, escribe msinfo32. A la izquierda de esa nueva ventana dirígete a Entornos de software ? Programas de inicio.
Software para ver los programas que se inician con Windows
Como acabo de mostrar, y todavía podría seguir escribiendo, existen muchísimos modos de iniciar una aplicación en el Sistema Operativo Windows. Hay tantos que es difícil y tal vez casi imposible analizarlos uno a uno, así que vamos a recurrir a interesantes software que hagan todo el trabajo por nosotros.
Aunque hay muchos programas que muestran la aplicaciones que se inician con Windows, hoy voy a elegir dos de ellos. El programa Autoruns for Windows de Windows Sysinternals que es del mismo Microsoft. Su página web donde puedes descargarlo es Autoruns for Windows, no necesita instalación y verás que es muy completo (te pongo en el enlace la versión en inglés que está más actualizada que en nuestro idioma):
Es un programa que te informa de las aplicaciones que se ejecutan durante el arranque del sistema o al inicio de sesión. También te los ordena según Windows los procesa. La pestaña Everything (todo) te muestra todas las entradas pero puedes filtrarlas con las otras pestañas.
Y el programa System Explorer. Que también es portable y tienen interesantes opciones como abrir la clave del registro directamente o incluso analizar un archivo si lo consideras peligroso. Tiene muchas más opciones. Para obtener la pestaña de inicio, pulsa el + que aparece a la derecha de las pestañas y selecciona Ejecución automática:
Conclusiones
Realmente me ha parecido impresionante la cantidad de métodos que he recopilado para iniciar una aplicación en un Sistema Operativo Windows, y me dejo en el tintero cientos de ellos. Como puedes ver, un malware tiene muchas esquinas en las que esconderse... y cada nuevo virus que sale, ofrece otro nuevo modo de ejecutarse...
Referencias
Algunas claves de registro las he extraido de aquí: Windows Autorun FAQs: List of autostart locations
Si no puedes o no quieres desinstalarlo, usa el programa Autoruns (descárgalo de la web oficial de Microsoft, he puesto también el enlace en el artículo: https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns) y, como administrador, ve a la pestaña "Logon" y allí te tiene que aparecer una entrada similar a "XeroxEndeavorB ackgroundTask". Elimínala (clic botón derecho sobre esa entrada > delete).
El problema del reinicio es raro que sea solo por eso. ¿Solo sale ese error?