Access Token Manipulation: Create Process with Token

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: T1134.002
Sub-technique of:  T1134
Platforms: Windows
Defense Bypassed: File system access controls, System access controls, Windows User Account Control
Contributors: Jonny Johnson; Vadim Khrykov
Version: 1.2
Created: 18 February 2020
Last Modified: 11 April 2023

Procedure Examples

ID Name Description
S0456 Aria-body

Aria-body has the ability to execute a process using runas.[2]

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

Empire can use Invoke-RunAs to make tokens.[5]

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 CreateProcessAsUserA under that user's context.[8][9]

S0501 PipeMon

PipeMon can attempt to gain administrative privileges using token impersonation.[10]

S0378 PoshC2

PoshC2 can use Invoke-RunAs to make tokens.[11]

S0496 REvil

REvil can launch an instance of itself with administrative rights using runas.[12]

G0010 Turla

Turla RPC backdoors can impersonate or steal process tokens before executing commands.[13]

S0689 WhisperGate

The WhisperGate third stage can use the AdvancedRun.exe tool to execute commands in the context of the Windows TrustedInstaller group via %TEMP%\AdvancedRun.exe" /EXEFilename "C:\Windows\System32\sc.exe" /WindowState 0 /CommandLine "stop WinDefend" /StartDirectory "" /RunAs 8 /Run.[14]

S0412 ZxShell

ZxShell has a command called RunAs, which creates a new process as another user or process context.[15]

Mitigations

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. [16] 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.[17]

Administrators should log in as a standard user but run their tools with administrator privileges using the built-in access token manipulation command runas.[18]

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.

Detection

ID Data Source Data Component Detects
DS0017 Command Command Execution

Monitor executed commands and arguments to detect token manipulation by auditing command-line activity. Specifically, analysts should look for use of the runas command or similar artifacts. Detailed command-line logging is not enabled by default in Windows.[19]

DS0009 Process OS API Execution

Monitor for API calls associated with detecting token manipulation only through careful analysis of user activity, examination of running processes, and correlation with other endpoint and network behavior. Analysts can also monitor for use of Windows APIs such as CreateProcessWithTokenW and correlate activity with other suspicious behavior to reduce false positives that may be due to normal benign use by users and administrators.

References