Process Injection
Ver en attack.mitre.org →40 syscalls implementan esta técnica
- NtAllocateVirtualMemory
Reserva, confirma o ambas en una región de memoria virtual de un proceso objetivo.
- NtAllocateVirtualMemoryEx
Reserva o confirma memoria virtual con parámetros extendidos (nodo NUMA preferido, CFG, requisitos de dirección).
- NtProtectVirtualMemory
Cambia la protección de una región de memoria virtual confirmada en un proceso objetivo.
- NtWriteVirtualMemory
Escribe un búfer del invocador en el espacio de direcciones virtuales de un proceso objetivo.
- NtFreeVirtualMemory
Descommitea o libera una región de memoria virtual en un proceso objetivo.
- NtSetInformationVirtualMemory
Aplica una clase de información a una lista de rangos de memoria virtual: prefetch, prioridad de página u opt-in CFG.
- NtAllocateUserPhysicalPages
Asigna páginas de memoria física para Address Windowing Extensions (AWE).
- NtMapUserPhysicalPages
Mapea páginas físicas asignadas vía AWE en una ventana de direcciones virtuales previamente reservada.
- NtOpenProcess
Abre un handle a un proceso existente con una máscara de acceso solicitada.
- NtCreateSection
Crea un objeto sección respaldado por un archivo o el pagefile del sistema para mapeo de memoria compartida.
- NtCreateSectionEx
Crea un objeto sección con parámetros extendidos (nodo NUMA, requisitos de dirección, páginas físicas de usuario).
- NtMapViewOfSection
Mapea una vista de un objeto sección en el espacio de direcciones virtuales de un proceso objetivo.
- NtUnmapViewOfSection
Desmapea una vista de sección previamente mapeada del espacio de direcciones de un proceso.
- NtCreateThread
Syscall heredado de creación de hilos que requiere un INITIAL_TEB construido manualmente; sustituido por NtCreateThreadEx.
- NtCreateThreadEx
Crea un nuevo hilo en un proceso objetivo, opcionalmente suspendido, con soporte de listas de atributos.
- NtQueueApcThread
Encola una llamada a procedimiento asíncrono (APC) en modo usuario para un hilo objetivo.
- NtQueueApcThreadEx
Encola un APC de usuario a un hilo con objeto reserva opcional o flag special-user-APC para entrega forzada.
- NtTestAlert
Comprueba si el hilo llamante tiene una alerta pendiente y entrega, en su caso, las APC en cola en user-mode.
- NtAllocateReserveObject
Pre-asigna un reserve object de kernel (APC o completion) para que operaciones futuras no fallen bajo presión de memoria.
- NtCreateProcess
Creación de proceso NT heredada desde un objeto section preconstruido — predecesor de NtCreateProcessEx y NtCreateUserProcess.
- NtCreateUserProcess
Crea un nuevo proceso en modo usuario y su hilo inicial a partir de una imagen ejecutable.
- NtSuspendProcess
Suspende todos los hilos de un proceso objetivo incrementando el contador de suspensión de cada hilo.
- NtResumeProcess
Decrementa el contador de suspensión de cada hilo de un proceso objetivo y reanuda los que llegan a cero.
- NtResumeThread
Decrementa el contador de suspensión de un hilo, reanudando la ejecución cuando llega a cero.
- NtAlertResumeThread
Reanuda un hilo suspendido y lo alerta a la vez para entregar cualquier APC pendiente.
- NtCreateTimer2
Crea un objeto timer moderno de alta resolución que admite manual-reset y no-wake en una sola llamada.
- NtCreateIoCompletion
Crea un puerto de finalización de E/S — la cola del kernel que sustenta la entrega de trabajo del threadpool, la notificación de E/S asíncrona y (en PoolParty) los items de trabajo inyectados.
- NtSetIoCompletion
Postea un paquete de finalización a un puerto de finalización de E/S — el lado del kernel de PostQueuedCompletionStatus y el vector de entrega de los items falsificados de PoolParty.
- NtCancelWaitCompletionPacket
Cancela un wait-completion packet asociado previamente, eliminando el enlace al objeto dispatcher.
- NtAssociateWaitCompletionPacket
Enlaza un wait-completion packet a un dispatcher object para que su señal postee una entrada en un IOCP.
- NtCreateWorkerFactory
Crea un objeto worker factory del kernel — la primitiva de threadpool que la inyección PoolParty abusa para ejecutar shellcode sin NtCreateThreadEx.
- NtShutdownWorkerFactory
Indica a una worker factory que deje de crear hilos e informa cuántos workers siguen pendientes.
- NtSetInformationWorkerFactory
Establece una clase de configuración en una worker factory — incluyendo, en algunas variantes de PoolParty, la StartRoutine que ejecutarán los hilos de trabajo.
- NtQueryInformationWorkerFactory
Consulta la configuración y el estado de ejecución de una worker factory, incluyendo la StartRoutine actual y los recuentos de workers.
- NtReleaseWorkerFactoryWorker
Solicita al kernel hacer disponible al menos un worker en la factory — usado por el threadpool en modo usuario para despertar el pool al enviar trabajo.
- NtWaitForWorkViaWorkerFactory
Bloquea un worker de threadpool hasta que haya un item disponible en la cola de finalización de la factory — el bucle caliente secuestrado por PoolParty.
- NtAddAtom
Añade (o incrementa el refcount) una cadena en la tabla de átomos global del kernel y devuelve su ID de 16 bits.
- NtFindAtom
Busca un átomo global existente por nombre y devuelve su ID de 16 bits sin incrementar el refcount.
- NtDeleteAtom
Decrementa el contador de referencias de un átomo global y lo elimina cuando el contador llega a cero.
- NtQueryInformationAtom
Devuelve metadatos sobre un átomo individual o sobre toda la tabla global de átomos — nombre, refcount, pin count, contadores de uso.