El proceso de Svchost revela

  

Svchost.exe es un proceso muy importante en la familia de sistemas operativos de Windows basada en el núcleo de NT. Muchos virus y troyanos están estrechamente relacionados con este proceso, por lo que es necesario tener una comprensión profunda del proceso. Este artículo se centra en las capacidades del proceso de Svchost y el conocimiento asociado con él.

Descripción general del proceso de Svchost

La definición de Microsoft de "Proceso de Svchost" es: Svchost.exe es el nombre de proceso de host genérico del servicio que se ejecuta desde la biblioteca de vínculos dinámicos (DLL). El archivo Svchost.exe se encuentra en la carpeta "% SystemRoot% \\ System32 " Cuando se inicia el sistema, Svchost verificará la sección de servicios del registro para crear una lista de servicios que deben cargarse. Varias instancias de Svchost pueden ejecutarse simultáneamente. Cada sesión de Svchost puede contener un conjunto de servicios para ejecutar diferentes servicios dependiendo de cómo se inicie Svchost y dónde esté ubicado, lo que permite un mejor control y una depuración más sencilla.

El grupo Svchost se identifica mediante el registro [HKEY_LOCAL_MACHINE \\ Software \\ Microsoft \\ Windows NT \\ CurrentVersion \\ Svchost]. Cada valor bajo esta clave de registro representa un grupo Svchost separado y se muestra como una instancia separada cuando vemos el proceso activo. Los valores clave aquí son todos los valores de tipo REG_MULTI_SZ y contienen el nombre del servicio que se ejecuta en el grupo de Svchost (ver Figura 1).

Figura 1 Svchost en el registro

De hecho, Svchost es solo una serie de servicios y no implementa ninguna función. Si necesita usar Svchost para iniciar un servicio implementado por una DLL, el cargador de la DLL apunta a Svchost. Cuando se inicia el servicio, Svchost llama a la DLL del servicio para lograr el propósito de inicio. El uso de Svchost para iniciar un archivo DLL de servicio está determinado por los parámetros en el registro. Bajo la clave de registro que necesita para iniciar el servicio, hay un subelemento "Parámetros", donde la clave "ServiceDll" indica el servicio. De qué archivo DLL es responsable, y este archivo DLL debe exportar una función ServiceMain () para admitir el procesamiento de tareas de servicio.

Sugerencia: las diferentes versiones de Windows tienen diferentes números de procesos Svchost. En general, Windows 2000 tiene dos procesos Svchost, mientras que Windows XP tiene cuatro o más procesos Svchost.

Instancias de proceso de Svchost

Para ver una lista de servicios que se ejecutan en Svchost, puede ingresar el comando " Tasklist /svc " en la ventana del símbolo del sistema de Windows XP y presionar Enter para ejecutar ( Si está utilizando Windows 2000, puede usar la herramienta Tlist proporcionada por Support Tools para ver el comando como " Tlist -s "). El comando Lista de tareas muestra una lista de procesos activos, y el modificador de comando /svc especifica una lista de servicios activos en cada proceso. Como puede ver en la figura, el proceso de Svchost inicia muchos servicios del sistema, como: RpcSs (llamada a procedimiento remoto), Dhcp (cliente DHCP), servicios de Netman (conexiones de red), etc.
(Figura 2).

Figura 2 Lista de servicios de Svchost

Aquí tomamos el servicio RpcSs como ejemplo para obtener más información sobre la relación entre el proceso de Svchost y el servicio. Ejecute Regedit, abra el Editor del Registro, expanda la rama [HKEY_LOCAL_MACHINE \\ SYSTEM \\

CurrentControlSet \\ Services \\ RpcSs] y tenga una clave llamada "ServiceDll" en la sección "Parámetros". El valor es "% SystemRoot% \\ system32 \\ rpcss.dll ". Esto significa que cuando el sistema inicia el servicio RpcSs, llama al archivo de biblioteca de vínculos dinámicos Rpcss.dll en el directorio "% SystemRoot% \\ system32".

A continuación, haga doble clic en " Herramientas administrativas ↠ Servicio " desde el Panel de control para abrir la Consola de servicio. En el panel derecho, haga doble clic en el elemento de servicio "Llamada a procedimiento remoto (RPC)" para abrir su cuadro de diálogo de propiedades. Puede ver que la ruta del archivo ejecutable del servicio RpcSs es "C: \\ Windows \\ system32 \\ svchost -k Rpcss ", lo que significa que el servicio RpcSs es iniciado por Svchost, y " -k rpcss " indica que este servicio está incluido en el grupo de servicio Rpcss de Svchost.

Figura 3 Información del módulo en el proceso de Svchost

Proceso de Svchost Análisis de troyanos

De la introducción anterior ya sabemos, en el registro [HKEY_LOCAL_MACHINE La rama \\ SOFTWARE \\ Microsoft \\ Windows NT \\ Current- Version \\ Svchost] almacena los servicios iniciados por Svchost y los servicios del grupo. Muchos troyanos y virus usan esto para lograr la carga automática. Los métodos habituales son:

· Agregar un nuevo grupo, agregar el nombre del servicio al grupo;

· Agregar el nombre del servicio al grupo existente o usar el grupo existente Servicio desinstalado;

· Modifique el servicio en el grupo existente y apunte su ServiceDll a su propio archivo DLL.

Por ejemplo, PortLess BackDoor es una herramienta típica de puerta trasera que usa el proceso Svchost para cargar. Entonces, ¿cómo detecta y elimina troyanos y virus como PortLess BackDoor? Tome Windows XP como ejemplo. Primero, podemos usar la herramienta de proceso como “Process Spy” para ver la información del módulo en el proceso de Svchost (ver Figura 3). En comparación con la información del módulo anterior, podemos encontrar que hay un proceso de Svchost sospechoso. Archivo DLL " SvchostDLL.dll ". Al mismo tiempo, en la lista "Herramientas administrativas y servicio", verá un nuevo servicio "Servicios de intranet" (nombre para mostrar), este nombre de servicio es: Iprip, iniciado por Svchost, " -k netsvcs " Este servicio está incluido en el grupo de servicios Netsvcs.

Sugerencia: en Windows 2000, el servicio Iprip del sistema escucha la información de actualización de enrutamiento que envían los enrutadores mediante el Protocolo de información de enrutamiento versión 1 (RIPv1). El nombre que se muestra en la lista de servicios es “Escucha de RIP”. .

Ejecute Regedit, abra el Editor del Registro, expanda la rama [HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\

Services \\ IPRIP] y vea su <; Parámetros " subkey, donde " ServiceDll " El valor apunta a la ruta y al nombre completo del archivo DLL que llama, que es el archivo DLL de puerta trasera. Sabiendo esto, puede borrarlo haciendo clic derecho en la lista de servicios y haciendo clic derecho en el servicio "Servicios de Intranet", seleccionando "Detener" en el menú, y luego eliminando el elemento "Iprip" en la rama del registro anterior. Reinicie la computadora y luego elimine el archivo principal de puerta trasera de acuerdo con la ubicación de la clave "ServiceDll". Finalmente, se debe recordar al lector que antes de que se modifique el registro, se debe hacer la copia de seguridad para que pueda restaurarse a tiempo cuando se produce un error.

Copyright © Conocimiento de Windows All Rights Reserved