T1134.002 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
.2
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.
Item | Value |
---|---|
ID | T1134.002 |
Sub-techniques | T1134.001, T1134.002, T1134.003, T1134.004, T1134.005 |
Tactics | TA0005, TA0004 |
Platforms | Windows |
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 .11 |
S0344 | Azorult | Azorult can call WTSQueryUserToken and CreateProcessAsUser to start a new process with local system privileges.12 |
S0239 | Bankshot | Bankshot grabs a user token using WTSQueryUserToken and then creates a process by impersonating a logged-on user.8 |
S0363 | Empire | Empire can use Invoke-RunAs to make tokens.6 |
S0356 | KONNI | KONNI has duplicated the token of a high integrity process to spawn an instance of cmd.exe under an impersonated user.910 |
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.1918 |
S0501 | PipeMon | PipeMon can attempt to gain administrative privileges using token impersonation.13 |
S0378 | PoshC2 | PoshC2 can use Invoke-RunAs to make tokens.7 |
S0496 | REvil | REvil can launch an instance of itself with administrative rights using runas.14 |
G0010 | Turla | Turla RPC backdoors can impersonate or steal process tokens before executing commands.17 |
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 .15 |
S0412 | ZxShell | ZxShell has a command called RunAs, which creates a new process as another user or process context.16 |
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. 3 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.4 |
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 |
---|---|---|
DS0017 | Command | Command Execution |
DS0009 | Process | OS API Execution |
References
-
Mathers, B. (2017, March 7). Command line process auditing. Retrieved April 21, 2017. ↩
-
Microsoft. (2016, August 31). Runas. Retrieved October 1, 2021. ↩
-
Brower, N., Lich, B. (2017, April 19). Create a token object. Retrieved December 19, 2017. ↩
-
Brower, N., Lich, B. (2017, April 19). Replace a process level token. Retrieved December 19, 2017. ↩
-
Microsoft TechNet. (n.d.). Runas. Retrieved April 21, 2017. ↩
-
Schroeder, W., Warner, J., Nelson, M. (n.d.). Github PowerShellEmpire. Retrieved April 28, 2016. ↩
-
Nettitude. (2018, July 23). Python Server for PoshC2. Retrieved April 23, 2019. ↩
-
Sherstobitoff, R. (2018, March 08). Hidden Cobra Targets Turkish Financial Sector With New Bankshot Implant. Retrieved May 18, 2018. ↩
-
Karmi, D. (2020, January 4). A Look Into Konni 2019 Campaign. Retrieved April 28, 2020. ↩
-
Threat Intelligence Team. (2021, August 23). New variant of Konni malware used in campaign targetting Russia. Retrieved January 5, 2022. ↩
-
CheckPoint. (2020, May 7). Naikon APT: Cyber Espionage Reloaded. Retrieved May 26, 2020. ↩
-
Yan, T., et al. (2018, November 21). New Wine in Old Bottle: New Azorult Variant Found in FindMyName Campaign using Fallout Exploit Kit. Retrieved November 29, 2018. ↩
-
Tartare, M. et al. (2020, May 21). No “Game over” for the Winnti Group. Retrieved August 24, 2020. ↩
-
Counter Threat Unit Research Team. (2019, September 24). REvil/Sodinokibi Ransomware. Retrieved August 4, 2020. ↩
-
Biasini, N. et al.. (2022, January 21). Ukraine Campaign Delivers Defacement and Wipers, in Continued Escalation. Retrieved March 14, 2022. ↩
-
Allievi, A., et al. (2014, October 28). Threat Spotlight: Group 72, Opening the ZxShell. Retrieved September 24, 2019. ↩
-
Faou, M. and Dumont R.. (2019, May 29). A dive into Turla PowerShell usage. Retrieved June 14, 2019. ↩
-
Novetta Threat Research Group. (2016, February 24). Operation Blockbuster: Tools Report. Retrieved March 10, 2016. ↩
-
Novetta Threat Research Group. (2016, February 24). Operation Blockbuster: Unraveling the Long Thread of the Sony Attack. Retrieved February 25, 2016. ↩