| ID | Name |
|---|---|
| T1134.001 | Token Impersonation/Theft |
| T1134.002 | Create Process with Token |
| T1134.003 | Make and Impersonate Token |
| T1134.004 | Parent PID Spoofing |
| T1134.005 | SID-History Injection |
Adversaries may create a new process with an existing token to escalate privileges and bypass access controls. Processes can be created with the token and resulting security context of another user using features such as CreateProcessWithTokenW and runas.[1]
Creating processes with a token not associated with the current user may require the credentials of the target user, specific privileges to impersonate that user, or access to the token to be used. For example, the token could be duplicated via Token Impersonation/Theft or created via Make and Impersonate Token before being used to create a process.
While this technique is distinct from Token Impersonation/Theft, the techniques can be used in conjunction where a token is duplicated and then used to create a new process.
| ID | Name | Description |
|---|---|---|
| S0456 | Aria-body |
Aria-body has the ability to execute a process using |
| S0344 | Azorult |
Azorult can call WTSQueryUserToken and CreateProcessAsUser to start a new process with local system privileges.[3] |
| S0239 | Bankshot |
Bankshot grabs a user token using WTSQueryUserToken and then creates a process by impersonating a logged-on user.[4] |
| S0363 | Empire | |
| S0356 | KONNI |
KONNI has duplicated the token of a high integrity process to spawn an instance of cmd.exe under an impersonated user.[6][7] |
| G0032 | Lazarus Group |
Lazarus Group keylogger KiloAlfa obtains user tokens from interactive sessions to execute itself with API call |
| S0501 | PipeMon |
PipeMon can attempt to gain administrative privileges using token impersonation.[10] |
| S0378 | PoshC2 | |
| S0496 | REvil |
REvil can launch an instance of itself with administrative rights using runas.[12] |
| S1239 | TONESHELL |
TONESHELL included functionality to create sub-processes with a specific user’s token.[13] |
| G0010 | Turla |
Turla RPC backdoors can impersonate or steal process tokens before executing commands.[14] |
| S0689 | WhisperGate |
The WhisperGate third stage can use the AdvancedRun.exe tool to execute commands in the context of the Windows TrustedInstaller group via |
| S0412 | ZxShell |
ZxShell has a command called RunAs, which creates a new process as another user or process context.[16] |
| ID | Mitigation | Description |
|---|---|---|
| M1026 | Privileged Account Management |
Limit permissions so that users and user groups cannot create tokens. This setting should be defined for the local system account only. GPO: Computer Configuration > [Policies] > Windows Settings > Security Settings > Local Policies > User Rights Assignment: Create a token object. [17] Also define who can create a process level token to only the local and network service through GPO: Computer Configuration > [Policies] > Windows Settings > Security Settings > Local Policies > User Rights Assignment: Replace a process level token.[18] Administrators should log in as a standard user but run their tools with administrator privileges using the built-in access token manipulation command |
| M1018 | User Account Management |
An adversary must already have administrator level access on the local system to make full use of this technique; be sure to restrict users and accounts to the least privileges they require. |
| ID | Name | Analytic ID | Analytic Description |
|---|---|---|---|
| DET0456 | Behavior-chain detection for T1134.002 Create Process with Token (Windows) | AN1253 |
A process (often after stealing/creating a token) calls CreateProcessWithTokenW/CreateProcessAsUserW or uses runas to spawn a new process whose security context (SID/LogonId/IntegrityLevel) differs from its parent. Chain: (1) suspicious command/API → (2) privileged handle or token duplication/open → (3) new child process running as another user / higher integrity → (4) optional follow‑on privileged/lateral actions. |