Can create a suspended instance of a legitimate process (e.g., ctfmon.exe), allocate memory within the suspended process corresponding to Pikabot's core module, then redirect execution flow via SetContextThread API so that when the thread resumes the Pikabot core module is executed.1
Thread Execution Hijacking T1055.003
- Tactics
- Privilege Escalation, Stealth
- Platform
- Windows
- Version
- 2.0
- Created
- 14 January 2020
- Last modified
- 12 May 2026
Adversaries may inject malicious code into hijacked processes in order to evade process-based defenses as well as possibly elevate privileges. Thread Execution Hijacking is a method of executing arbitrary code in the address space of a separate live process.
Thread Execution Hijacking MITRE reference T1055.003
4 software entries are documented implementing this technique. MITRE files each as a tool or as malware; newest first, then by how many groups carry them.
Can use thread injection to inject shellcode into the process of security software.1
Performs thread execution hijacking to inject its orchestrator into a running thread from a remote process.12
Can inject a suspended thread of its own process into a new process and initiate via the ResumeThread API.1
All 4 software entries for this technique
Offense vs defense T1055.003
Is defensive coverage keeping up with adversary use? Eight counts, each ranked against all 697 ATT&CK techniques. Attack sits left, defense right, so a shape leaning left means adversaries are better documented here than defenders are equipped. Hover any spoke for its percentile and the share of techniques that have more. The timeline below shows when each side arrived.
How it got here
Adversary activity (campaign spans) over cumulative rule output. Each source is plotted independently from zero, so neither line includes the other. Campaign dates are year-granularity.
Thread Execution Hijacking detection strategy DET0295
MITRE names one behaviour worth catching for this technique and breaks it into 1 analytic, one per platform. Each carries the log sources it needs and the fields you tune per environment.
Behavioral Detection of Thread Execution Hijacking via Thread Suspension and Context Switching
AN0822 · Windows
Detects hijacking of an existing thread (OpenThread) through a behavioral chain involving thread suspension (SuspendThread), memory modification (VirtualAllocEx + WriteProcessMemory), context manipulation (SetThreadContext), and thread resumption—all within another live process's address space (ResumeThread).
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Process ModificationDC0020 | WinEventLog:Sysmon | EventCode=8 |
| OS API ExecutionDC0021 | etw:Microsoft-Windows-Kernel-Process | API Calls |
| Process CreationDC0032 | WinEventLog:Sysmon | EventCode=1 |
| Process AccessDC0035 | WinEventLog:Sysmon | EventCode=10 |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| TargetProcessList | Sensitive processes that should never be targeted for thread hijack attempts |
| TimeWindow | Expected delay between SuspendThread and ResumeThread events; tight thresholds reduce evasion |
| SuspiciousThreadContextRegions | Memory regions or offsets that should not be targeted for SetThreadContext |
| ParentProcessAnomalyThreshold | Score deviation of the parent/child relationship in a thread injection chain |
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.
Tests from Atomic Red Team (MIT licence) · technique definition