Cómo se oculta y se instala el malware como servicio


Introducción

Un error común cuando se trabaja en la eliminación de malware de una computadora es que el único lugar desde donde comenzará una infección es en una de las entradas enumeradas por HijackThis. En su mayor parte, estas entradas son las más comunes, pero no siempre es así. Últimamente hay más infecciones que instalan una parte de sí mismas como servicio. Algunos ejemplos son Ssearch.biz y Home Search Assistant.

Al limpiar una computadora, el enfoque estándar es limpiar primero las entradas Ejecutar y las otras entradas de inicio más comunes. En su mayor parte, eso será suficiente para eliminar la infección. El problema surge cuando el registro parece limpio y, sin embargo, todavía hay problemas. Un lugar para continuar buscando la infección es en los servicios del sistema operativo para ver si hay un servicio que no pertenece allí y posiblemente podría estar cargando la infección. Un servicio es un programa que Windows NT / XP / 2000/2003 inicia automáticamente al iniciarse o por otros medios y generalmente se utiliza para programas que se ejecutan en segundo plano.

Tenga en cuenta que para utilizar correctamente las instrucciones a continuación, debe ejecutar los programas con privilegios de administrador.

Configuración del servicio
 

Un servicio se carga al inicio mediante svchost.exe o mediante Windows iniciando directamente la aplicación. Si Windows carga un servicio directamente, el nombre de archivo asociado que inicia el servicio se puede encontrar en el valor de ImagePath en la siguiente entrada de registro

HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services servicename

Cuando svchost.exe inicie el servicio, se colocará en un grupo de servicios en particular, que luego será lanzado por svchost.exe. Puede encontrar una lista de estos grupos y los servicios que se lanzan bajo ellos aquí:

HKEY_LOCAL_MACHINE Software Microsoft Windows NT CurrentVersion Svchost

Debajo de esta clave, encontrará varios grupos (netsvcs, LocalServices, etc.) en los que cada uno contiene múltiples servicios que se iniciarán cuando svchost.exe cargue el grupo. Estos grupos se cargan con el siguiente comando:

svchost.exe -k netsvcs

Cargará todos los servicios que se encuentran en el grupo netsvcs en la clave anterior y aparecerá como un proceso en la lista de procesos. Por lo tanto, cada vez que svchost.exe carga un nuevo grupo, encontrará un nuevo proceso svchost.exe en la memoria. Es por esta razón que hay varios procesos svchost.exe listados en una máquina. Si está utilizando Windows XP, ya que este comando no está disponible en Windows 2000, puede ver qué servicios controla cada proceso svchost.exe ejecutando el siguiente comando desde un símbolo del sistema: lista de tareas / SVC

Cuando se lanza un servicio de esta manera, el nombre de archivo real para el servicio se puede encontrar aquí:

HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services servicename Parameters \ ServiceDll

El valor de ServiceDLL es el archivo de servicio real que nos interesa.

Listar y analizar los servicios

Para obtener un informe de los servicios configurados en su computadora, armé un archivo por lotes simple que usa el programa de programa swsc de Bobbi Flekman para obtener una lista de los servicios y abrir un bloc de notas. Nada lujoso, pero ahorra tiempo al diagnosticar.

Este archivo se puede encontrar aquí: Getservices.zip

Para usar el script, simplemente descomprima el archivo en su unidad C: y ahora encontrará un directorio llamado c: getservice. Dentro de ese directorio hay un archivo por lotes llamado getservice.bat y el archivo psservice.exe. Simplemente haga doble clic en el archivo getservice.bat y creará un bloc de notas que contiene una lista de los servicios instalados en la computadora en la que lo está ejecutando. Nota: Debe ejecutarse como un usuario con privacidad de administrador o este script no funcionará o no dará suficiente información.

La salida del script contendrá información sobre cada servicio instalado en su computadora. La información importante a tener en cuenta en las entradas de servicio son:

NOMBRE DEL SERVICIO

Este es el nombre por el que pasa el servicio y bajo el cual se almacena en el registro.

BINARY_PATH_NAME

Este es el archivo real que se utiliza para iniciar el servicio.

NOMBRE PARA MOSTRAR

Este es el nombre bajo el que aparece el servicio en services.msc en el panel de control.

START_TYPE

Esto le indica si el servicio está deshabilitado, iniciado manualmente o iniciado automáticamente.

A continuación, se muestran ejemplos de cómo se vería una entrada para dos tipos diferentes de infecciones, explicaciones de cómo interpretar la información proporcionada:
 

SERVICE_NAME:? O ‘ŽrtñåȲ $ o
(nulo)
TIPO: 20 WIN32_SHARE_PROCESS
tipo_inicio: 2 AUTO_START
error_control: 0 IGNORE
BINARY_PATH_NAME: C: WINDOWS system32 d3xi.exe / s
LOAD_ORDER_GROUP:
TAG: 0
DISPLAY_NAME: llamada a procedimiento remoto (RPC) Auxiliar
DEPENDENCIAS:
SERVICE_START_NAME: LocalSystem

Ejemplo de asistente de búsqueda de inicio

El Home Search Assistant utiliza un servicio, entre las entradas estándar de Run, como parte de su infección. Los atributos importantes que podemos recopilar de la información anterior son los siguientes:

  1. Su nombre para mostrar en el panel de control de Servicios es Asistente de llamada a procedimiento remoto (RPC)
  2. Tiene un nombre de servicio de O? ‘ŽrtñåȲ $ i en el registro.
  3. Se inicia automáticamente al arrancar.
  4. El archivo que inicia este servicio es C: WINDOWS system32 d3xi.exe

Armados con esta información, ahora sabemos en qué entradas de registro se almacena el servicio y el archivo que se está utilizando como parte de la infección de Home Search Assistant.

El siguiente ejemplo es para el secuestrador Ssearch.biz, pero se carga de una manera ligeramente diferente, lo que nos obliga a trabajar un poco más para averiguar cuál es el archivo de infección.
 

SERVICE_NAME: pnpsvc
Proporciona soporte dispositivos plug and play SVC
TIPO: 120 WIN32_SHARE_PROCESS INTERACTIVE_PROCESS
tipo_inicio: 2 AUTO_START
error_control: 1 NORMAL
BINARY_PATH_NAME: C: WINNT system32 svchost.exe -k netsvcs
LOAD_ORDER_GROUP:
TAG: 0
DISPLAY_NAME: servicio Plug and Play SVC
DEPENDENCIAS:
SERVICE_START_NAME: LocalSystem

Ejemplo de SSearch.biz

 

El secuestrador SSearch.biz también utiliza un servicio como parte de su infección. Los atributos importantes que podemos recopilar de la información anterior son los siguientes:

  1. Su nombre para mostrar en el panel de control de Servicios es servicio de servicio Plug and Play
  2. Tiene un nombre de servicio de pnpsvc en el registro.
  3. Se inicia automáticamente al arrancar.
  4. El archivo que inicia este servicio es C: WINNT system32 svchost.exe -k netsvcs

Ahora bien, esta información, aunque útil, es algo inútil sin buscar más en el registro. Sabemos que el archivo que inicia el servicio es svchost.exe, pero es un programa legítimo, por lo que no queremos eliminarlo. Entonces, ¿cómo podemos encontrar el archivo apropiado para eliminar? ¿Recuerda lo que comentamos anteriormente sobre cómo funciona svchost.exe?

Desde BINARY_PATH_NAME sabemos que el archivo es parte del grupo netsvcs. Eso significa que cuando svchost carga ese grupo, que puede contener muchos servicios, también cargará el archivo asociado con este servicio. Para encontrar el nombre de archivo real para este servicio en particular, debemos verificar la siguiente clave de registro:

HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services pnpsvc Parameters \ ServiceDll

El valor de la clave ServiceDLL es el archivo real del que queremos deshacernos.

En la siguiente sección discutiremos cómo eliminar el servicio mediante la eliminación de entradas en el registro.
 

Eliminar un servicio

La eliminación manual de un servicio requiere la eliminación de entradas del registro. Esta puede ser una tarea peligrosa para la salud de su computadora. Si no se siente cómodo haciendo esto, pídale a otra persona que lo ayude con este paso del procedimiento de limpieza, ya que cometer un error puede hacer que la computadora en la que está trabajando no funcione correctamente.

Las entradas de servicio se almacenan en el registro en una sección llamada ControlSet. Un ControlSet se encuentra debajo de la siguiente clave:

HKEY_LOCAL_MACHINE SYSTEM

Un ControlSet es una copia completa de la configuración que se utiliza para iniciar con éxito servicios y otros archivos y controladores críticos para Windows. Cuando mire debajo de la clave anterior, siempre habrá al menos dos ControlSets y un CurrentControlSet. Por el bien de este tutorial, usaré lo que tengo en mi máquina, que es ControlSet1 y ControlSet2 (puede haber más hasta un máximo de 4). Uno de estos conjuntos de control numerados se refiere a la configuración predeterminada que se utiliza cuando las computadoras arrancan normalmente. El otro conjunto de control numerado se refiere al que se utiliza cuando elige arrancar con la última configuración buena conocida. El último, CurrentControlSet, es un espejo exacto del ControlSet que habíamos usado para arrancar en Windows,

Si desea saber con certeza a qué ControlSet apunta CurrentControlSet, puede examinar la siguiente clave:

HKEY_LOCAL_MACHINE SYSTEM Select

Esta clave nos brinda información importante sobre qué ControlSet se usó en el último arranque, cuál se usa de manera predeterminada y cuál está designado para LastKnownGoodConfiguration. Esta clave contiene los siguientes valores:

Actual

Esto contendrá el número del ControlSet que estamos usando actualmente y al que apunta CurrentControlSet.

Defecto

Este contendrá el número de ControlSet que Windows usa por defecto al arrancar.

Fallido

Esto indicará que con ControlSet fue el que falló en el último arranque. Si es 0, entonces no hubo fallas.

Último Conocido Bueno

Esto contendrá el número del ControlSet que usa Windows cuando elegimos la Última configuración buena conocida.

Si quisiéramos eliminar manualmente un servicio del registro, solo tendríamos que eliminarlo de los ControlSets numerados (recuerde que CurrentControlSet es un espejo de uno de los numerados). Por ejemplo, para eliminar el servicio de un secuestrador de SSearch.biz en mi computadora, simplemente eliminaríamos del registro las siguientes entradas:

HKEY_LOCAL_MACHINE SYSTEM ControlSet001 Services pnpsvc HKEY_LOCAL_MACHINE SYSTEM ControlSet002 Services pnpsvc

Una vez que reiniciamos, estos servicios ya no aparecerán en el panel de control de Servicios.

Sin embargo, en ocasiones, el malware también se instalará bajo estas claves:

HKEY_LOCAL_MACHINE SYSTEM ControlSet001 Enum Root
HKEY_LOCAL_MACHINE SYSTEM ControlSet002 Enum Root

como subclaves llamadas LEGACY_ svcname. Estas entradas LEGACY_ svcname también deben eliminarse, pero generalmente será necesario que cambie los permisos para eliminarlas. Simplemente cambie los permisos de seguridad en estas claves a Todos (Completo) y luego elimínelos.

Conclusión

Saber cómo diagnosticar un servicio que se ejecuta como malware es una parte importante de la lucha contra el software espía. A medida que más y más programas espía y virus utilizan esta técnica, la comprensión de cómo funcionan los servicios y cómo están configurados en el Registro marcará la diferencia entre reparar una computadora y no arreglarla.

Como siempre, si tiene algún comentario, pregunta o sugerencia sobre este tutorial, no dude en comunicárnoslo en los foros .

Para obtener asistencia experta en la eliminación de malware, puede solicitar ayuda en nuestros Registros de eliminación de virus, troyanos, spyware y malware .


Tutorial avanzado de eliminación de
software espía de Lawrence Abrams Guía Total GuíaTotal.es: Soporte informático y tutoriales para usuarios principiantes.

Deja un comentario