Process Injection
Auf attack.mitre.org ansehen →40 Syscalls implementieren diese Technik
- NtAllocateVirtualMemory
Reserviert, committet oder beides eine virtuelle Speicherregion in einem Zielprozess.
- NtAllocateVirtualMemoryEx
Reserviert oder committet virtuellen Speicher mit erweiterten Parametern (bevorzugter NUMA-Knoten, CFG, Adressanforderungen).
- NtProtectVirtualMemory
Ändert den Schutz eines committeten virtuellen Speicherbereichs in einem Zielprozess.
- NtWriteVirtualMemory
Schreibt einen Puffer des Aufrufers in den virtuellen Adressraum eines Zielprozesses.
- NtFreeVirtualMemory
Decommitet oder gibt eine virtuelle Speicherregion in einem Zielprozess frei.
- NtSetInformationVirtualMemory
Wendet eine Informationsklasse auf eine Liste virtueller Speicherbereiche an: Prefetch, Seitenpriorität oder CFG-Opt-in.
- NtAllocateUserPhysicalPages
Allokiert physische Speicherseiten für Address Windowing Extensions (AWE).
- NtMapUserPhysicalPages
Mappt AWE-allokierte physische Seiten in ein zuvor reserviertes virtuelles Adressfenster.
- NtOpenProcess
Öffnet ein Handle auf einen existierenden Prozess mit einer angeforderten Zugriffsmaske.
- NtCreateSection
Erzeugt ein Section-Objekt, gestützt durch eine Datei oder das System-Pagefile, für Shared-Memory-Mapping.
- NtCreateSectionEx
Erzeugt ein Section-Objekt mit erweiterten Parametern (NUMA-Knoten, Adress-Anforderungen, User-Physical-Pages).
- NtMapViewOfSection
Bildet eine View eines Section-Objekts in den virtuellen Adressraum eines Zielprozesses ab.
- NtUnmapViewOfSection
Hebt das Mapping einer zuvor gemappten Section-View aus dem Adressraum eines Prozesses auf.
- NtCreateThread
Legacy-Syscall zur Thread-Erzeugung mit manuell aufgebauter INITIAL_TEB; abgelöst durch NtCreateThreadEx.
- NtCreateThreadEx
Erzeugt einen neuen Thread in einem Zielprozess, optional suspendiert, mit Unterstützung von Attribute-Listen.
- NtQueueApcThread
Reiht einen Usermode-APC (Asynchronous Procedure Call) in die Queue eines Zielthreads ein.
- NtQueueApcThreadEx
Reiht einen User-APC für einen Thread mit optionalem Reserve-Objekt oder Special-User-APC-Flag zur erzwungenen Zustellung ein.
- NtTestAlert
Prüft, ob der aufrufende Thread einen anstehenden Alert hat, und stellt ggf. eingereihte User-Mode-APCs zu.
- NtAllocateReserveObject
Reserviert vorab ein Kernel-Reserve-Object (APC oder Completion), damit künftige Operationen unter Speichermangel nicht fehlschlagen.
- NtCreateProcess
Legacy-NT-Prozesserzeugung aus einem vorab gebauten Section-Objekt — Vorgänger von NtCreateProcessEx und NtCreateUserProcess.
- NtCreateUserProcess
Erzeugt einen neuen User-Mode-Prozess und dessen initialen Thread aus einem Executable-Image.
- NtSuspendProcess
Suspendiert alle Threads eines Zielprozesses, indem der Suspend-Zähler jedes Threads erhöht wird.
- NtResumeProcess
Verringert den Suspend-Zähler jedes Threads in einem Zielprozess und setzt diejenigen fort, die null erreichen.
- NtResumeThread
Verringert den Suspend-Count eines Threads; bei Wert null wird die Ausführung fortgesetzt.
- NtAlertResumeThread
Setzt einen suspendierten Thread fort und alarmiert ihn gleichzeitig, sodass anstehende APCs zugestellt werden.
- NtCreateTimer2
Erzeugt ein modernes Hochauflösungs-Timer-Objekt mit Unterstützung für Manual-Reset und No-Wake in einem Aufruf.
- NtCreateIoCompletion
Erzeugt einen I/O-Completion-Port — die Kernel-Queue, die Threadpool-Arbeitsauslieferung, asynchrone I/O-Benachrichtigung und (bei PoolParty) injizierte Work-Items trägt.
- NtSetIoCompletion
Sendet ein Completion-Paket an einen I/O-Completion-Port — die Kernel-Seite von PostQueuedCompletionStatus und der Lieferpfad für PoolPartys gefälschte Work-Items.
- NtCancelWaitCompletionPacket
Bricht ein zuvor zugeordnetes Wait-Completion-Packet ab und löst die Dispatcher-Object-Bindung.
- NtAssociateWaitCompletionPacket
Bindet ein Wait-Completion-Packet an ein Dispatcher-Object, sodass dessen Signal einen Eintrag in einen IOCP postet.
- NtCreateWorkerFactory
Erzeugt ein Kernel-Worker-Factory-Objekt — die Threadpool-Primitive, die PoolParty-Injection missbraucht, um Shellcode ohne NtCreateThreadEx auszuführen.
- NtShutdownWorkerFactory
Weist eine Worker Factory an, keine neuen Threads mehr zu erzeugen, und meldet, wie viele Worker noch ausstehen.
- NtSetInformationWorkerFactory
Setzt eine Konfigurationsklasse einer Worker Factory — darunter, in einigen PoolParty-Varianten, die StartRoutine, die Worker-Threads ausführen.
- NtQueryInformationWorkerFactory
Fragt Konfiguration und Laufzeitzustand einer Worker Factory ab, einschließlich aktueller StartRoutine und Worker-Zahlen.
- NtReleaseWorkerFactoryWorker
Fordert den Kernel auf, mindestens einen Worker in der Factory verfügbar zu machen — vom User-Mode-Threadpool benutzt, um den Pool beim Einreichen von Arbeit zu wecken.
- NtWaitForWorkViaWorkerFactory
Blockiert einen Threadpool-Worker, bis ein Work-Item in der Completion-Queue der Factory bereit ist — die Hot-Loop, die PoolParty hijackt.
- NtAddAtom
Fügt eine Zeichenkette in die globale Kernel-Atomtabelle ein (oder erhöht den Refcount) und liefert deren 16-Bit-Atom-ID.
- NtFindAtom
Sucht ein vorhandenes globales Atom über seinen Namen und liefert dessen 16-Bit-ID, ohne den Refcount zu erhöhen.
- NtDeleteAtom
Dekrementiert den Referenzzähler eines globalen Atoms und entfernt es bei Erreichen von Null.
- NtQueryInformationAtom
Liefert Metadaten zu einem einzelnen Atom oder zur gesamten globalen Atom-Tabelle — Name, Refcount, Pin-Count, Nutzungszähler.