PowerShell Remote Thread Creation (Windows CreateRemoteThread)

Alerts when PowerShell creates a remote thread in another process, excluding CompatTelRunner.exe activity.

FreeReviewedSigma · Medium · v5
Product
windows
Category
create_remote_thread
Author
Nikita Nazarov, oscd.community (SigmaHQ), DRL 1.1
Published
2020-10-06
Updated
2026-07-31
title: PowerShell Remote Thread Creation (Windows CreateRemoteThread)
id: e7769490-b512-495d-9c1f-b2da9efaeb15
related:
  - id: 99b97608-3e21-4bfe-8217-2a127c396a0e
    type: derived
  - id: eeb2e3dc-c1f4-40dd-9bd5-149ee465ad50
    type: derived
status: test
description: This rule identifies when a PowerShell process (powershell.exe or pwsh.exe) creates a remote thread in another process. Remote thread creation is a common technique for executing code within the context of a separate process, which can help attackers evade detection and persist execution. It relies on Windows telemetry that records remote thread creation events and includes the calling process image and parent image (notably excluding CompatTelRunner.exe).
references:
  - https://speakerdeck.com/heirhabarov/hunting-for-powershell-abuse
  - https://github.com/SigmaHQ/sigma/blob/master/rules-threat-hunting/windows/create_remote_thread/create_remote_thread_win_powershell_generic.yml
author: Nikita Nazarov, oscd.community, Huntrule Team
date: 2020-10-06
modified: 2023-11-10
tags:
  - attack.execution
  - attack.t1059.001
  - detection.threat-hunting
logsource:
  product: windows
  category: create_remote_thread
detection:
  selection:
    SourceImage|endswith:
      - \powershell.exe
      - \pwsh.exe
  filter_main_compattelrunner:
    SourceParentImage|endswith: :\Windows\System32\CompatTelRunner.exe
  condition: selection and not 1 of filter_main_*
falsepositives:
  - Unknown
level: medium
license: DRL-1.1