Tutoriales

¡Asesino del registro de eventos de Windows! ! ! Tutorial de KaliLinux

Fantasma 0m es un asesino del registro de eventos de Windows. Svchost es esencial en la implementación de los llamados procesos de servicios compartidos, donde muchos servicios pueden compartir un proceso para reducir el consumo de recursos. La combinación de varios servicios en un solo proceso ahorra recursos informáticos, una consideración que preocupaba especialmente a los diseñadores de NT, ya que crear un proceso de Windows lleva más tiempo y consume más memoria que otros sistemas operativos (como la familia Unix).1

Esto significa que, en el sistema operativo Windows, svchost.exe administra el servicio y el servicio en realidad se ejecuta como un subproceso en svchost.exe. Phant0m apunta al servicio de registro de eventos y encuentra el proceso responsable del servicio de registro de eventos, detecta y elimina el subproceso responsable del servicio de registro de eventos. Entonces, aunque el servicio de registro de eventos parece estar ejecutándose en el sistema (porque Phant0m no eliminó el proceso), en realidad no se está ejecutando (porque Phant0m eliminó el hilo) y el sistema no recopila registros.

Servicio de registro de eventos de detección

Phant0m utiliza dos opciones diferentes para detectar el ID de proceso del servicio de registro de eventos. La primera es a través de la detección de SCM (Administrador de control de servicios) y la segunda es a través de la detección de WMI (Instrumentación de administración de Windows). El método que desea que utilice Phant0m para detectar el ID de proceso del servicio de registro de eventos, cambie la siguiente línea en el archivo main.cpp.

LEER  Cómo leer el archivo de propiedades en Java

Por ejemplo, si desea que SCM detecte el ID del proceso, debe editarlo de la siguiente manera. (No configure todos los valores al mismo tiempo, configure solo la técnica que desea.

// Sección de configuración de la tecnología de detección PID.
define PID_FROM_SCM 1 //Si se establece en 1, obtenga el PID del servicio de registro de eventos de Service Manager.
define PID_FROM_WMI 0 // Si se establece en 1, obtenga el PID del servicio de registro de eventos de WMI.

Por ejemplo, si desea utilizar la Técnica-1 para cerrar hilos, debe editarla de la siguiente manera. (No configure todos los valores al mismo tiempo, configure solo la técnica que desea.

Sección de configuración de la tecnología de detección y terminación TID.
define KILL_WITH_T1 1 // Si se establece en 1, se utilizará la técnica 1. Obtenga más información; https://github.com/hlldz/Phant0m
define KILL_WITH_T2 0 // Si se establece en 1, se utilizará la técnica 2. Obtenga más información; https://github.com/hlldz/Phant0m

Detectar y matar hilos

Phant0m usa dos opciones diferentes para detectar y terminar el hilo del servicio de registro de eventos.

tecnología uno

Cuando registra cada servicio en una computadora que ejecuta Windows Vista o posterior, el Administrador de control de servicios (SCM) asigna al servicio una etiqueta numérica única (en orden ascendente). Luego, cuando se crea el servicio, asigne la etiqueta al TEB del subproceso de servicio principal. Este token luego se propaga a cada subproceso creado por el subproceso de servicio principal. Por ejemplo, si el subproceso del servicio Foo crea un subproceso de trabajo de RPC (nota: el subproceso de trabajo de RPC ya no usará el mecanismo de grupo de subprocesos más adelante), ese subproceso tendrá la etiqueta de servicio del servicio Foo.2

Entonces, en esta técnica, Phant0m usará la API NtQueryInformationThread para instrumentar el subproceso del servicio de registro de eventos para obtener la dirección TEB del subproceso y leer la etiqueta SubProcessTag del TEB. Luego elimina el subproceso asociado con el servicio de registro de eventos.El código de esta técnica está en the technique_1.h documento.

Tecnología-2

En esta técnica, Phant0m detecta el nombre de la DLL asociada con el hilo. Uso del servicio de registro de eventos de Windows wevtsvc.dllLa ruta completa es %WinDir%\System32\wevtsvc.dllSi un subproceso utiliza la DLL, es un subproceso para el servicio de registro de eventos de Windows, entonces Phant0m terminará el subproceso.El código de esta técnica está en the technique_2.h documento.

uso

Puede usar Phant0m como un EXE independiente y una DLL de reflexión. Abra el proyecto en Microsoft Visual Studio, configúrelo (seleccione técnicas de detección y eliminación) y compílelo. También puede usar la versión DLL de reflexión con Cobalt Strike, para la cual hay un archivo de script Aggressor (phant0m.cna) en el repositorio.

Horquilla y método de inyección con bdllspawn En el tipo de ejecución de Aggressor Script de Cobalt Strike (phant0m.cna). Si desea inyectar Phant0m en su proceso existente y ejecutarlo, puede consultar este proyecto (https://github.com/rxwx/cs-rdll-ipc-example), puede hacerlo fácilmente. También puede convertir el código a DLL y luego usar Donut para convertirlo a Shellcode.

notas: Este proyecto solo es compatible con la arquitectura x64.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba