|T1055.001||Dynamic-link Library Injection|
|T1055.002||Portable Executable Injection|
|T1055.003||Thread Execution Hijacking|
|T1055.004||Asynchronous Procedure Call|
|T1055.005||Thread Local Storage|
|T1055.008||Ptrace System Calls|
|T1055.011||Extra Window Memory Injection|
Adversaries may inject malicious code into suspended and hollowed processes in order to evade process-based defenses. Process hollowing is a method of executing arbitrary code in the address space of a separate live process.
Process hollowing is commonly performed by creating a process in a suspended state then unmapping/hollowing its memory, which can then be replaced with malicious code. A victim process can be created with native Windows API calls such as
CreateProcess, which includes a flag to suspend the processes primary thread. At this point the process can be unmapped using APIs calls such as
NtUnmapViewOfSection before being written to, realigned to the injected code, and resumed via
This is very similar to Thread Local Storage but creates a new process rather than targeting an existing process. This behavior will likely not result in elevated privileges since the injected process was spawned from (and thus inherits the security context) of the injecting process. However, execution via process hollowing may also evade detection from security products since the execution is masked under a legitimate process.
Agent Tesla has used process hollowing to create and manipulate processes through sections of unmapped memory by reallocating that space with its malicious code.
Astaroth can create a new process in a suspended state from a targeted legitimate process in order to unmap its memory and replace it with malicious code.
Azorult can decrypt the payload into memory, create a new suspended process of itself, then inject a decrypted payload to the new process and resume new process execution.
BADNEWS has a command to download an .exe and use process hollowing to inject it into a new process.
Bandook has been launched by starting iexplore.exe and replacing it with Bandook's payload.
Bazar can inject into a target process including Svchost, Explorer, and cmd using process hollowing.
BBSRAT has been seen loaded into msiexec.exe through process hollowing to hide its execution.
Clambling can execute binaries through process hollowing.
Cobalt Strike can use process hollowing for execution.
Denis performed process hollowing through the API calls CreateRemoteThread, ResumeThread, and Wow64SetThreadContext.
Dtrack has used process hollowing shellcode to target a predefined list of processes from
Duqu is capable of loading executable code via process hollowing.
Gorgon Group malware can use process hollowing to inject one of its trojans into another process.
ISMInjector hollows out a newly created process RegASM.exe and injects its payload into the hollowed process.
Kimsuky has used a file injector DLL to spawn a benign process on the victim's system and inject the malicious payload into it via process hollowing.
Lokibot has used process hollowing to inject itself into legitimate Windows process.
menuPass has used process hollowing in iexplore.exe to load the RedLeaves implant.
The NETWIRE payload has been injected into benign Microsoft executables via process hollowing.
Some Orz versions have an embedded DLL known as MockDll that uses process hollowing and Regsvr32 to execute another payload.
A Patchwork payload uses process hollowing to hide the UAC bypass vulnerability exploitation inside svchost.exe.
QakBot can use process hollowing to execute its main payload.
RCSession can launch itself from a hollowed svchost.exe process.
The Saint Bot loader has used API calls to spawn
Smoke Loader spawns a new copy of c:\windows\syswow64\explorer.exe and then replaces the executable code in memory with malware.
A Threat Group-3390 tool can spawn svchost.exe and inject the payload into that process.
TrickBot injects into the svchost.exe process.
Ursnif has used process hollowing to inject into child processes.
WhisperGate has the ability to inject its fourth stage into a suspended process created by the legitimate Windows utility
|M1040||Behavior Prevention on Endpoint||
Some endpoint security solutions can be configured to block some types of process injection based on common sequences of behavior that occur during the injection process.
|ID||Data Source||Data Component||Detects|
|DS0009||Process||OS API Execution||
Monitoring Windows API calls indicative of the various types of code injection may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances for known bad sequences of calls, since benign use of API functions may be common and difficult to distinguish from malicious behavior. Windows API calls such as
Monitor for processes being viewed that may inject malicious code into suspended and hollowed processes in order to evade process-based defenses.
Monitor for changes made to processes that may inject malicious code into suspended and hollowed processes in order to evade process-based defenses.