Detection rules › Sigma

Potentially Suspicious Execution Of PDQDeployRunner

Status
test
Severity
medium
Author
Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects suspicious execution of "PDQDeployRunner" which is part of the PDQDeploy service stack that is responsible for executing commands and packages on a remote machines

Event coverage

Rule body yaml

title: Potentially Suspicious Execution Of PDQDeployRunner
id: 12b8e9f5-96b2-41e1-9a42-8c6779a5c184
related:
    - id: d679950c-abb7-43a6-80fb-2a480c4fc450
      type: similar
status: test
description: Detects suspicious execution of "PDQDeployRunner" which is part of the PDQDeploy service stack that is responsible for executing commands and packages on a remote machines
references:
    - https://twitter.com/malmoeb/status/1550483085472432128
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-07-22
modified: 2024-05-02
tags:
    - attack.execution
logsource:
    category: process_creation
    product: windows
detection:
    selection_parent:
        ParentImage|contains: '\PDQDeployRunner-'
    selection_child:
        # Improve this section by adding other suspicious processes, commandlines or paths
        - Image|endswith:
              # If you use any of the following processes legitimately comment them out
              - '\bash.exe'
              - '\certutil.exe'
              - '\cmd.exe'
              - '\csc.exe'
              - '\cscript.exe'
              - '\dllhost.exe'
              - '\mshta.exe'
              - '\msiexec.exe'
              - '\regsvr32.exe'
              - '\rundll32.exe'
              - '\scriptrunner.exe'
              - '\wmic.exe'
              - '\wscript.exe'
              - '\wsl.exe'
        - Image|contains:
              - ':\ProgramData\'
              - ':\Users\Public\'
              - ':\Windows\TEMP\'
              - '\AppData\Local\Temp'
        - CommandLine|contains:
              - ' -decode '
              - ' -enc '
              - ' -encodedcommand '
              - ' -w hidden'
              - 'DownloadString'
              - 'FromBase64String'
              - 'http'
              - 'iex '
              - 'Invoke-'
    condition: all of selection_*
falsepositives:
    - Legitimate use of the PDQDeploy tool to execute these commands
level: medium

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_parent

selection_parent:
    ParentImage|contains: '\PDQDeployRunner-'

Stage 2: selection_child

selection_child:
    # Improve this section by adding other suspicious processes, commandlines or paths
    - Image|endswith:
          # If you use any of the following processes legitimately comment them out
          - '\bash.exe'
          - '\certutil.exe'
          - '\cmd.exe'
          - '\csc.exe'
          - '\cscript.exe'
          - '\dllhost.exe'
          - '\mshta.exe'
          - '\msiexec.exe'
          - '\regsvr32.exe'
          - '\rundll32.exe'
          - '\scriptrunner.exe'
          - '\wmic.exe'
          - '\wscript.exe'
          - '\wsl.exe'
    - Image|contains:
          - ':\ProgramData\'
          - ':\Users\Public\'
          - ':\Windows\TEMP\'
          - '\AppData\Local\Temp'
    - CommandLine|contains:
          - ' -decode '
          - ' -enc '
          - ' -encodedcommand '
          - ' -w hidden'
          - 'DownloadString'
          - 'FromBase64String'
          - 'http'
          - 'iex '
          - 'Invoke-'

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
CommandLinematch
  • -decode corpus 4 (sigma 4)
  • -enc corpus 7 (sigma 7)
  • -encodedcommand corpus 3 (sigma 3)
  • -w hidden
  • DownloadString corpus 8 (sigma 7, kusto 1)
  • FromBase64String corpus 13 (sigma 10, splunk 2, elastic 1)
  • Invoke- corpus 5 (sigma 5)
  • http corpus 38 (sigma 34, chronicle 2, elastic 1, splunk 1)
  • iex corpus 6 (sigma 6)
Imageends_with
  • \bash.exe corpus 22 (sigma 22)
  • \certutil.exe corpus 44 (sigma 44)
  • \cmd.exe corpus 134 (sigma 134)
  • \csc.exe corpus 9 (sigma 9)
  • \cscript.exe corpus 76 (sigma 76)
  • \dllhost.exe corpus 12 (sigma 12)
  • \mshta.exe corpus 69 (sigma 69)
  • \msiexec.exe corpus 25 (sigma 25)
  • \regsvr32.exe corpus 68 (sigma 68)
  • \rundll32.exe corpus 103 (sigma 103)
  • \scriptrunner.exe corpus 12 (sigma 12)
  • \wmic.exe corpus 61 (sigma 61)
  • \wscript.exe corpus 78 (sigma 78)
  • \wsl.exe corpus 11 (sigma 11)
Imagematch
  • :\ProgramData\ corpus 3 (sigma 3)
  • :\Users\Public\ corpus 16 (sigma 16)
  • :\Windows\TEMP\ corpus 13 (sigma 13)
  • \AppData\Local\Temp
ParentImagematch
  • \PDQDeployRunner-