¿Puede un troyano ocultarse, por lo que su actividad no aparece en el proceso del administrador de tareas? [duplicar]

22

¿El software malintencionado puede ocultarse, por lo que su actividad no aparece en la lista de procesos del Administrador de tareas? ¿Puede ocultarse así cuando alguien controla su computadora, incluso si abre el Administrador de tareas, no verá ninguna actividad sospechosa?

Si es así, ¿cómo puede hacerlo? ¿Qué técnicas se pueden usar para ocultar de esta manera?

    
pregunta Steve 23.03.2015 - 09:23
fuente

2 respuestas

47

Sí. Hay varias maneras:

  • parchee directamente el proceso del Administrador de tareas en el tiempo de ejecución para que su código de enumeración omita su proceso.
  • Ejecute "processless", cargando una DLL en un proceso (por ejemplo, a través de AppInit_DLLs ) o inyectando código en la memoria de proceso e iniciando un hilo (a través de VirtualAllocEx / WriteProcessMemory / CreateRemoteThread ).
  • Enganche las funciones Process32First / Process32Next en cada proceso (incluido el administrador de tareas) para "omitir" su proceso cuando se realiza la enumeración.
  • Enganche CreateToolhelp32Snapshot de modo que la memoria de la sección asignada (vea Process32First / Process32Next termine leyendo de datos falsos.
  • Enganche ntdll.dll!NtQuerySystemInformation y, si se pasa SystemProcessInformation , parchea los resultados para omitir tu proceso. Este es un gancho de nivel inferior al de las llamadas anteriores.
  • Cargue un controlador de modo kernel que enganche el controlador de modo kernel para consultas SystemProcessInformation . No conozco el nombre real de esto en Windows (no está documentado), pero esencialmente hay una tabla de manejadores que NtQuerySystemInformation busca para este propósito, y usted solo tiene que enganchar el correcto. Aquí la implementación de ReactOS del controlador real. En esto, solo te metes con las estructuras devueltas para que tu proceso no se muestre.
  • Enganche el SSDT para detectar la transición entre el modo usuario y el modo kernel para cuando se llaman varios API de enumeración de procesos .
  • Use Manipulación directa de objetos del kernel (DKOM) para modificar las estructuras EPROCESS en la memoria para que su proceso esté oculto Del núcleo entero. El núcleo mantiene una lista enlazada circularmente de estructuras que representan todos los procesos en ejecución, con los campos FLink y BLink como punteros hacia adelante y hacia atrás respectivamente. Al manipular esos punteros para saltar sobre su proceso, y luego manipular los punteros de su proceso para volver a ellos mismos, el núcleo omitirá su proceso durante la enumeración. Esta es una técnica de rootkit común.
respondido por el Polynomial 23.03.2015 - 11:00
fuente
4

Ciertamente, hay varias formas de ocultarse desde el administrador de tareas. Lo más simple es esconderse a simple vista con el proceso llamado algo inocuo. Otra opción es esconderse como un subproceso que luego no aparece.

También podría instalarse como un servicio, de nuevo con un nombre inocente. Se mostraría en la lista de servicios, pero no se mostraría por separado en la lista de tareas. Seguramente habrá otros métodos más complejos que una búsqueda de Google.

    
respondido por el Julian Knight 23.03.2015 - 09:56
fuente

Lea otras preguntas en las etiquetas