Detection rules › Sigma

Sigma rules: 0s

RuleSeverity
Account takeover via account linking using a delegated user tokenhigh
AMSI Bypass Pattern Assembly GetTypehigh
AWS EC2 Disable EBS Encryptionmedium
AWS KMS Imported Key Material Usagehigh
AWS STS GetCallerIdentity Enumeration Via TruffleHogmedium
Axios NPM Compromise Malicious C2 Domain DNS Queryhigh
Files With System Process Name In Unsuspected Locationsmedium
Gatekeeper Bypass via Xattrlow
Google Workspace Application Access Level Modifiedmedium
HackTool - Koadic Executionhigh
HackTool - Potential CobaltStrike Process Injectionhigh
HackTool - Rubeus Execution - ScriptBlockhigh
Modification of IE Registry Settingslow
New BgInfo.EXE Custom DB Path Registry Configurationmedium
New Firewall Rule Added Via Netsh.EXEmedium
Potential APT10 Cloud Hopper Activityhigh
Potential DLL Injection Or Execution Using Tracker.exemedium
Potential Dtrack RAT Activitycritical
Potential EventLog File Location Tamperinghigh
Potential Hidden Directory Creation Via NTFS INDEX_ALLOCATION Streammedium
Potential Persistence Attempt Via ErrorHandler.Cmdmedium
Potentially Suspicious Execution From Tmp Foldermedium
Process Memory Dump Via Comsvcs.DLLhigh
PUA - Sysinternals Tools Execution - Registrymedium
RDP tunneling configuration enabled for port forwardinghigh
Registry Modification for OCI DLL Redirectionhigh
Regsvr32.EXE Calling of DllRegisterServer Export Function Implicitlymedium
Remote Access Tool - ScreenConnect Temporary Filelow
Remote Schedule Task Lateral Movement via ITaskSchedulerServicehigh
Remote Server Service Abuse for Lateral Movementhigh
Remove Immutable File Attribute - Auditdmedium
Rundll32 Execution Without CommandLine Parametershigh
Suspicious Browser Activityhigh
Suspicious File Download From File Sharing Websites - File Streamhigh
Suspicious GUP Usagehigh
Suspicious User Agenthigh
Suspicious Windows Defender Folder Exclusion Added Via Reg.EXEmedium
UNC4841 - SSL Certificate Exfiltration Via Opensslhigh
Unsigned .node File Loadedmedium
USB Device Pluggedlow
WinAPI Library Calls Via PowerShell Scriptsmedium
WinDivert Driver Loadhigh

Account takeover via account linking using a delegated user token

#
Status
experimental
Severity
high
Author
Okta
Source
github.com/auth0/auth0-customer-detections

Detects potential account takeover through abuse of Auth0 account linking. In the "Auth0 defaults" attack chain (e.g. an XSS or implicit-grant foothold in a SPA), an attacker obtains a current_user-delegated Management API token and adds an identity they control to another user's account via POST /api/v2/users/{id}/identities ("Link a User Account"). Once linked, authenticating with the attacker-controlled identity resolves to the victim's primary account, i.e. full account takeover. Benign self-service linking uses the exact same API call, so this rule keys on the delegated-token shape of the event and then on the tell-tale result of the attack: an account that holds more identities than distinct connections, i.e. at least two identities merged into one account that share a single connection, which normal cross-connection linking does not produce.

Known False Positives

  • Legitimate self-service account linking, especially bulk or migration flows executed through a delegated token. This rule is designed for threat hunting and to be a starting point for further investigation.
  • A user legitimately merging two of their own accounts on the same connection (self-service de-duplication) produces the same event shape and will trigger this rule.
  • Sigma-only conversions apply only the coarse gate (the delegated-token shape) because Sigma field matching cannot count identities or detect duplicate connections. Expect substantially more matches from a converted rule than from the Splunk query, which enforces the same-connection check. Deploy the Splunk logic for production.

MITRE ATT&CK Coverage

TacticTechniques
Persistence
Privilege Escalation

Rule Body

title: Account takeover via account linking using a delegated user token
id: 8801b462-0020-44c2-a656-b168a1473181
status: experimental
description: |
    Detects potential account takeover through abuse of Auth0 account linking.
    In the "Auth0 defaults" attack chain (e.g. an XSS or implicit-grant foothold in a SPA), an attacker obtains a
    current_user-delegated Management API token and adds an identity they control to another user's account via
    POST /api/v2/users/{id}/identities ("Link a User Account"). Once linked, authenticating with the
    attacker-controlled identity resolves to the victim's primary account, i.e. full account takeover.
    Benign self-service linking uses the exact same API call, so this rule keys on the delegated-token shape of the
    event and then on the tell-tale result of the attack: an account that holds more identities than distinct
    connections, i.e. at least two identities merged into one account that share a single connection, which normal
    cross-connection linking does not produce.
author: Okta
date: 2026-08-04
modified: 2026-08-04
logsource:
    product: auth0
detection:
    selection:
        data.type: sapi
        data.description:
            - Link a User Account
        data.details.response.statusCode: 201
    delegated_token:
        # channel=api plus a current_user write scope in the presented credentials indicates a user-delegated
        # Management API token, not an admin/dashboard action or an M2M integration.
        data.details.request.channel: api
        data.details.request.auth.credentials.scopes{}:
            - 'update:current_user_identities'
    # NOTE: the same-connection check (more identities than distinct connections) cannot be expressed in Sigma
    # field matching because it requires counting array elements and detecting duplicate values. It lives in the
    # Splunk query below. This Sigma condition is therefore the coarse delegated-token gate only, and a converted
    # rule will match more broadly than the Splunk detection.
    condition: selection and delegated_token
explanation: >
    The query collects successful "Link a User Account" Management API events (sapi, statusCode 201).
    It first isolates the attack backbone: a user-delegated token (request channel "api" and the
    update:current_user_identities scope present in the request credentials), which removes the bulk of benign
    linking performed by administrators via the dashboard or by M2M integrations.
    It then inspects the identities array returned in the response body and alerts when the account holds more
    identities than distinct connections, i.e. at least two identities share a single connection. Legitimate
    linking is cross-connection (unifying a user's different login methods), so a same-connection merge within the
    delegated population is the signature of attacker account farming and is the sole trigger used here; the
    identity count is reported alongside for triage.
splunk: |
    index=auth0 data.tenant_name="{your-tenant-name}"
    data.type=sapi data.description="Link a User Account"
    data.details.response.statusCode=201
    ``` Backbone: user-delegated Management API token, not an admin/dashboard or M2M action.
        channel=api together with a current_user write scope in the presented credentials. ```
    data.details.request.channel="api"
    data.details.request.auth.credentials.scopes{}="update:current_user_identities"
    | fields _time, data.ip, data.user_agent, data.details.request.path,
        data.details.response.body{}.user_id,
        data.details.response.body{}.connection,
        data.details.response.body{}.profileData.email
    | rename data.details.response.body{}.user_id as linked_user_ids
    | rename data.details.response.body{}.connection as linked_connections
    | rename data.details.response.body{}.profileData.email as linked_emails
    ``` Detection: the account now holds more identities than distinct connections, i.e. at least two identities
        share one connection. Normal linking is cross-connection (unifying a user's different login methods), so a
        same-connection merge within the delegated population isolated above is the account-farming signature seen
        in the attack PoC. identity_count is reported for triage (fan-in); it is not part of the trigger. ```
    | eval identity_count = mvcount(linked_user_ids)
    | eval distinct_connections = mvcount(mvdedup(linked_connections))
    | where identity_count > distinct_connections
    | table _time, data.ip, data.user_agent, data.details.request.path,
        identity_count, distinct_connections,
        linked_emails, linked_connections
comments:
    - The Splunk query must be tuned to reflect a valid tenant name.
    - The discriminating fields (data.details.request.channel, data.details.request.auth.*,
      data.details.response.body{}.*) are not exposed to Auth0 Dashboard log search (q=). Use the tenant_logs query
      only to locate candidate events, then analyse them in your SIEM.
    - The backbone (channel=api together with update:current_user_identities in the request credentials) removes
      admin/dashboard and M2M linking, which are the bulk of benign "Link a User Account" events. It does not by
      itself separate the attack from legitimate user self-service linking - that is the job of the same-connection
      check.
    - The link_with value in the request body is a signed JWT (id_token) whose claims are not directly queryable, so
      this rule uses the queryable response identities array instead. That array is the full resulting set of linked
      identities, which is exactly what the same-connection check operates on.
tenant_logs: |
    type:"sapi" AND description:"Link a User Account" AND details.request.auth.credentials.scopes:"update:current_user_identities"
prevention:
    - Disable the implicit grant and migrate single-page applications to Authorization Code with PKCE. This removes
      the token-theft foothold that makes delegated account linking possible and closes the associated logging gap.
    - Do not grant end-user-facing SPAs the update:current_user_identities scope. Perform account linking server-side
      with a scoped Management API token only after verifying both identities belong to the same user.
    - Require email verification (email_verified=true) on both the primary and the linked identity before allowing a
      link, and avoid linking multiple accounts of the same database connection.
    - Restrict Management API calls to trusted, static IP ranges using Auth0 Network ACLs scoped to "management".
falsepositives:
    - Legitimate self-service account linking, especially bulk or migration flows executed through a delegated
      token. This rule is designed for threat hunting and to be a starting point for further investigation.
    - A user legitimately merging two of their own accounts on the same connection (self-service de-duplication)
      produces the same event shape and will trigger this rule.
    - Sigma-only conversions apply only the coarse gate (the delegated-token shape) because Sigma field matching
      cannot count identities or detect duplicate connections. Expect substantially more matches from a converted
      rule than from the Splunk query, which enforces the same-connection check. Deploy the Splunk logic for
      production.
level: high
tags:
    - attack.persistence
    - attack.privilege-escalation
    - attack.t1098

Stages and Predicates

Stage 0: condition

selection and delegated_token

Stage 1: selection

selection:
    data.type: sapi
    data.description:
        - Link a User Account
    data.details.response.statusCode: 201

Stage 2: delegated_token

delegated_token:
    data.details.request.channel: api
    data.details.request.auth.credentials.scopes{}:
        - 'update:current_user_identities'

Indicators

These rows show field, operator, and value matches.

AMSI Bypass Pattern Assembly GetType

#
Status
test
Severity
high
Author
Florian Roth (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects code fragments found in small and obfuscated AMSI bypass PowerShell scripts

MITRE ATT&CK Coverage

TacticTechniques
Defense Impairment

Telemetry Coverage

Rule Body

title: AMSI Bypass Pattern Assembly GetType
id: e0d6c087-2d1c-47fd-8799-3904103c5a98
status: test
description: Detects code fragments found in small and obfuscated AMSI bypass PowerShell scripts
references:
    - https://www.mdsec.co.uk/2018/06/exploring-powershell-amsi-and-logging-evasion/
    - https://twitter.com/cyb3rops/status/1588574518057979905?s=20&t=A7hh93ONM7ni1Rj1jO5OaA
author: Florian Roth (Nextron Systems)
date: 2022-11-09
tags:
    - attack.defense-impairment
    - attack.t1685
    - attack.execution
logsource:
    product: windows
    category: ps_script
    definition: 'Requirements: Script Block Logging must be enabled'
detection:
    selection:
        ScriptBlockText|contains|all:
            - '[Ref].Assembly.GetType'
            - 'SetValue($null,$true)'
            - 'NonPublic,Static'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ScriptBlockText|contains|all:
        - '[Ref].Assembly.GetType'
        - 'SetValue($null,$true)'
        - 'NonPublic,Static'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ScriptBlockTextmatch
  • NonPublic,Static
  • SetValue($null,$true)
  • [Ref].Assembly.GetType
field:"ScriptBlockText" kind:match

AWS EC2 Disable EBS Encryption

#
Status
stable
Severity
medium
Author
Sittikorn S
Source
github.com/SigmaHQ/sigma

Identifies disabling of default Amazon Elastic Block Store (EBS) encryption in the current region. Disabling default encryption does not change the encryption status of your existing volumes.

Known False Positives

  • System Administrator Activities
  • DEV, UAT, SAT environment. You should apply this rule with PROD account only.

MITRE ATT&CK Coverage

Telemetry Coverage

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: AWS EC2 Disable EBS Encryption
id: 16124c2d-e40b-4fcc-8f2c-5ab7870a2223
status: stable
description: |
  Identifies disabling of default Amazon Elastic Block Store (EBS) encryption in the current region.
  Disabling default encryption does not change the encryption status of your existing volumes.
references:
    - https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisableEbsEncryptionByDefault.html
author: Sittikorn S
date: 2021-06-29
modified: 2021-08-20
tags:
    - attack.impact
    - attack.t1486
    - attack.t1565
logsource:
    product: aws
    service: cloudtrail
detection:
    selection:
        eventSource: ec2.amazonaws.com
        eventName: DisableEbsEncryptionByDefault
    condition: selection
falsepositives:
    - System Administrator Activities
    - DEV, UAT, SAT environment. You should apply this rule with PROD account only.
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    eventSource: ec2.amazonaws.com
    eventName: DisableEbsEncryptionByDefault

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
eventNameeq
  • DisableEbsEncryptionByDefault
field:"aws::eventName" kind:eq value:"DisableEbsEncryptionByDefault"
eventSourceeq
  • ec2.amazonaws.com corpus 13 (sigma 10, panther 2, splunk 1)
field:"aws::eventSource" kind:eq value:"ec2.amazonaws.com"

AWS KMS Imported Key Material Usage

#
Status
experimental
Severity
high
Author
toopricey
Source
github.com/SigmaHQ/sigma

Detects the import or deletion of key material in AWS KMS, which can be used as part of ransomware attacks. This activity is uncommon and provides a high certainty signal.

Known False Positives

  • Legitimate use cases for imported key material are rare, but may include, Organizations with hybrid cloud architectures that import external key material for compliance requirements.
  • Development or testing environments that simulate external key management scenarios. Even in these cases, such activity is typically infrequent and should not add significant noise.

MITRE ATT&CK Coverage

Telemetry Coverage

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: AWS KMS Imported Key Material Usage
id: 1279262f-1464-422f-ac0d-5b545320c526
status: experimental
description: |
    Detects the import or deletion of key material in AWS KMS, which can be used as part of ransomware attacks. This activity is uncommon and provides a high certainty signal.
references:
    - https://www.chrisfarris.com/post/effective-aws-ransomware/
    - https://docs.aws.amazon.com/kms/latest/developerguide/ct-importkeymaterial.html
    - https://docs.aws.amazon.com/kms/latest/developerguide/ct-deleteimportedkeymaterial.html
author: toopricey
date: 2025-10-18
tags:
    - attack.impact
    - attack.t1486
    - attack.resource-development
    - attack.t1608.003
logsource:
    product: aws
    service: cloudtrail
detection:
    selection:
        eventSource: 'kms.amazonaws.com'
        eventName:
            - 'ImportKeyMaterial'
            - 'DeleteImportedKeyMaterial'
    condition: selection
falsepositives:
    - Legitimate use cases for imported key material are rare, but may include, Organizations with hybrid cloud architectures that import external key material for compliance requirements.
    - Development or testing environments that simulate external key management scenarios. Even in these cases, such activity is typically infrequent and should not add significant noise.
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    eventSource: 'kms.amazonaws.com'
    eventName:
        - 'ImportKeyMaterial'
        - 'DeleteImportedKeyMaterial'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
eventNameeq
  • DeleteImportedKeyMaterial
  • ImportKeyMaterial
field:"aws::eventName" kind:eq
eventSourceeq
  • kms.amazonaws.com
field:"aws::eventSource" kind:eq value:"kms.amazonaws.com"

AWS STS GetCallerIdentity Enumeration Via TruffleHog

#
Status
experimental
Severity
medium
Author
Adan Alvarez @adanalvarez
Source
github.com/SigmaHQ/sigma

Detects the use of TruffleHog for AWS credential validation by identifying GetCallerIdentity API calls where the userAgent indicates TruffleHog. Threat actors leverage TruffleHog to enumerate and validate exposed AWS keys. Successful exploitation allows threat actors to confirm the validity of compromised AWS credentials, facilitating further unauthorized access and actions within the AWS environment.

Known False Positives

  • Legitimate internal security scanning or key validation that intentionally uses TruffleHog. Authorize and filter known scanner roles, IP ranges, or assumed roles as needed.

MITRE ATT&CK Coverage

Telemetry Coverage

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: AWS STS GetCallerIdentity Enumeration Via TruffleHog
id: 9b1b8e9b-0a5d-4af1-9d2f-4c4b6e7c2c9d
status: experimental
description: |
    Detects the use of TruffleHog for AWS credential validation by identifying GetCallerIdentity API calls where the userAgent indicates TruffleHog.
    Threat actors leverage TruffleHog to enumerate and validate exposed AWS keys.
    Successful exploitation allows threat actors to confirm the validity of compromised AWS credentials, facilitating further unauthorized access and actions within the AWS environment.
references:
    - https://www.rapid7.com/blog/post/tr-crimson-collective-a-new-threat-group-observed-operating-in-the-cloud/
    - https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html
    - https://github.com/trufflesecurity/trufflehog
author: Adan Alvarez @adanalvarez
date: 2025-10-12
tags:
    - attack.discovery
    - attack.t1087.004
logsource:
    product: aws
    service: cloudtrail
detection:
    selection:
        eventSource: 'sts.amazonaws.com'
        eventName: 'GetCallerIdentity'
        userAgent|contains: 'TruffleHog'
    condition: selection
falsepositives:
    - Legitimate internal security scanning or key validation that intentionally uses TruffleHog. Authorize and filter known scanner roles, IP ranges, or assumed roles as needed.
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    eventSource: 'sts.amazonaws.com'
    eventName: 'GetCallerIdentity'
    userAgent|contains: 'TruffleHog'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
eventNameeq
  • GetCallerIdentity corpus 4 (sigma 3, kusto 1)
field:"aws::eventName" kind:eq value:"GetCallerIdentity"
eventSourceeq
  • sts.amazonaws.com corpus 4 (sigma 3, panther 1)
field:"aws::eventSource" kind:eq value:"sts.amazonaws.com"
userAgentmatch
  • TruffleHog corpus 2 (sigma 2)
field:"userAgent" kind:match value:"TruffleHog"

Axios NPM Compromise Malicious C2 Domain DNS Query

#
Status
experimental
Severity
high
Author
Swachchhanda Shrawan Poudel (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects DNS queries for the malicious C2 domain associated with the plain-crypto-js/Axios npm package supply chain compromise. On March 30, 2026, malicious versions (1.14.1, 0.30.4) were published to npm, injecting a dependency (plain-crypto-js@4.2.1) that executed a postinstall script as a cross-platform RAT dropper. This detection detects endpoints attempting to resolve the attacker's C2 domain (sfrclak.com) used for command and control communication.

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

Rule Body

title: Axios NPM Compromise Malicious C2 Domain DNS Query
id: 73e5d24f-493f-4092-bd2f-c72cabda40ee
status: experimental
description: |
    Detects DNS queries for the malicious C2 domain associated with the plain-crypto-js/Axios npm package supply chain compromise.
    On March 30, 2026, malicious versions (1.14.1, 0.30.4) were published to npm, injecting a dependency (plain-crypto-js@4.2.1) that executed a postinstall script as a cross-platform RAT dropper.
    This detection detects endpoints attempting to resolve the attacker's C2 domain (sfrclak.com) used for command and control communication.
references:
    - https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan
    - https://www.derp.ca/research/axios-npm-supply-chain-rat/
    - https://www.trendmicro.com/zh_hk/research/26/c/axios-npm-package-compromised.html
    - https://www.elastic.co/security-labs/axios-supply-chain-compromise-detections
    - https://www.virustotal.com/gui/file/e10b1fa84f1d6481625f741b69892780140d4e0e7769e7491e5f4d894c2e0e09
    - https://www.huntress.com/blog/supply-chain-compromise-axios-npm-package
author: Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2026-04-01
tags:
    - attack.command-and-control
    - attack.t1071.001
    - attack.t1568
    - detection.emerging-threats
logsource:
    category: dns
detection:
    selection:
        query:
            - 'sfrclak.com'
            - 'calltan.com'
            - 'callnrwise.com'
    condition: selection
falsepositives:
    - Unlikely
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    query:
        - 'sfrclak.com'
        - 'calltan.com'
        - 'callnrwise.com'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
queryeq
  • callnrwise.com
  • calltan.com
  • sfrclak.com
field:"query" kind:eq

Files With System Process Name In Unsuspected Locations

#
Status
test
Severity
medium
Author
Sander Wiebing, Tim Shelton, Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects the creation of an executable with a system process name in folders other than the system ones (System32, SysWOW64, etc.). It is highly recommended to perform an initial baseline before using this rule in production.

Known False Positives

  • System processes copied outside their default folders for testing purposes
  • Third party software naming their software with the same names as the processes mentioned here

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 11: FileCreate

Rule Body

title: Files With System Process Name In Unsuspected Locations
id: d5866ddf-ce8f-4aea-b28e-d96485a20d3d
status: test
description: |
    Detects the creation of an executable with a system process name in folders other than the system ones (System32, SysWOW64, etc.).
    It is highly recommended to perform an initial baseline before using this rule in production.
references:
    - Internal Research
author: Sander Wiebing, Tim Shelton, Nasreddine Bencherchali (Nextron Systems)
date: 2020-05-26
modified: 2026-07-28
tags:
    - attack.stealth
    - attack.t1036.005
logsource:
    category: file_event
    product: windows
detection:
    selection:
        TargetFilename|endswith:
            - '\AtBroker.exe'
            - '\audiodg.exe'
            - '\backgroundTaskHost.exe'
            - '\bcdedit.exe'
            - '\bitsadmin.exe'
            - '\cmdl32.exe'
            - '\cmstp.exe'
            - '\conhost.exe'
            - '\csrss.exe'
            - '\dasHost.exe'
            - '\dfrgui.exe'
            - '\dllhost.exe'
            - '\dwm.exe'
            - '\eventcreate.exe'
            - '\eventvwr.exe'
            - '\explorer.exe'
            - '\extrac32.exe'
            - '\fontdrvhost.exe'
            - '\fsquirt.exe' # was seen used by sidewinder APT - https://securelist.com/sidewinder-apt/114089/
            - '\ipconfig.exe'
            - '\iscsicli.exe'
            - '\iscsicpl.exe'
            - '\logman.exe'
            - '\LogonUI.exe'
            - '\LsaIso.exe'
            - '\lsass.exe'
            - '\lsm.exe'
            - '\msiexec.exe'
            - '\msinfo32.exe'
            - '\mstsc.exe'
            - '\nbtstat.exe'
            - '\odbcconf.exe'
            - '\powershell.exe'
            - '\pwsh.exe'
            - '\regini.exe'
            - '\regsvr32.exe'
            - '\rundll32.exe'
            - '\RuntimeBroker.exe'
            - '\schtasks.exe'
            - '\SearchFilterHost.exe'
            - '\SearchIndexer.exe'
            - '\SearchProtocolHost.exe'
            - '\SecurityHealthService.exe'
            - '\SecurityHealthSystray.exe'
            - '\services.exe'
            - '\ShellAppRuntime.exe'
            - '\sihost.exe'
            - '\smartscreen.exe'
            - '\smss.exe'
            - '\spoolsv.exe'
            - '\svchost.exe'
            - '\SystemSettingsBroker.exe'
            - '\taskhost.exe'
            - '\taskhostw.exe'
            - '\Taskmgr.exe'
            - '\TiWorker.exe'
            - '\vssadmin.exe'
            - '\w32tm.exe'
            - '\WerFault.exe'
            - '\WerFaultSecure.exe'
            - '\wermgr.exe'
            - '\wevtutil.exe'
            - '\wininit.exe'
            - '\winlogon.exe'
            - '\winrshost.exe'
            - '\WinRTNetMUAHostServer.exe'
            - '\wlanext.exe'
            - '\wlrmdr.exe'
            - '\WmiPrvSE.exe'
            - '\wslhost.exe'
            - '\WSReset.exe'
            - '\WUDFHost.exe'
            - '\WWAHost.exe'
    filter_main_generic:
        # Note: It is recommended to use a more robust filter instead of this generic one, to avoid false negatives.
        TargetFilename|contains:
            # - '\SystemRoot\System32\'
            - 'C:\$WINDOWS.~BT\'
            - 'C:\$WinREAgent\'
            - 'C:\Windows\SoftwareDistribution\'
            - 'C:\Windows\System32\'
            - 'C:\Windows\SysWOW64\'
            - 'C:\Windows\WinSxS\'
            - 'C:\Windows\uus\'
    filter_main_tiworker:
        Image|endswith:
            - '\TiWorker.exe'
            - '\wuaucltcore.exe'
        TargetFilename|startswith: 'C:\Windows\Temp\'
    filter_main_svchost:
        Image|endswith:
            - 'C:\Windows\system32\svchost.exe'
            - 'C:\Windows\SysWOW64\svchost.exe'
        TargetFilename|contains:
            - 'C:\Program Files\WindowsApps\'
            - 'C:\Program Files (x86)\WindowsApps\'
            - '\AppData\Local\Microsoft\WindowsApps\'
    filter_main_wuauclt:
        Image:
            - 'C:\Windows\System32\wuauclt.exe'
            - 'C:\Windows\SysWOW64\wuauclt.exe'
            - 'C:\Windows\UUS\arm64\wuaucltcore.exe'
    filter_main_explorer:
        TargetFilename|endswith: 'C:\Windows\explorer.exe'
    filter_main_msiexec:
        # This filter handles system processes who are updated/installed using misexec.
        Image|endswith:
            - 'C:\WINDOWS\system32\msiexec.exe'
            - 'C:\WINDOWS\SysWOW64\msiexec.exe'
        # Add more processes if you find them or simply filter msiexec on its own. If the list grows big
        TargetFilename|startswith:
            - 'C:\Program Files\PowerShell\7\pwsh.exe'
            - 'C:\Program Files\PowerShell\7-preview\pwsh.exe'
            - 'C:\Program Files\WindowsApps\Microsoft.PowerShellPreview\'
    filter_main_healtray:
        TargetFilename|contains: 'C:\Windows\System32\SecurityHealth\'
        TargetFilename|endswith: '\SecurityHealthSystray.exe'
        Image|endswith: '\SecurityHealthSetup.exe'
    filter_optional_wslhost:
        - TargetFilename: 'C:\Program Files\WSL\wslhost.exe'
        - TargetFilename|contains|all:
              - 'C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_'
              - '\wslhost.exe'
        - TargetFilename|contains|all:
              - 'C:\Users\'
              - '\AppData\Local\Microsoft\WindowsApps\'
              - '\wslhost.exe'
    condition: selection and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - System processes copied outside their default folders for testing purposes
    - Third party software naming their software with the same names as the processes mentioned here
# Note: Upgrade to high after an initial baseline to your environement.
level: medium
regression_tests_path: regression_data/rules/windows/file/file_event/file_event_win_creation_system_file/info.yml

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_* and not 1 of filter_optional_*

Stage 1: selection

selection:
    TargetFilename|endswith:
        - '\AtBroker.exe'
        - '\audiodg.exe'
        - '\backgroundTaskHost.exe'
        - '\bcdedit.exe'
        - '\bitsadmin.exe'
        - '\cmdl32.exe'
        - '\cmstp.exe'
        - '\conhost.exe'
        - '\csrss.exe'
        - '\dasHost.exe'
        - '\dfrgui.exe'
        - '\dllhost.exe'
        - '\dwm.exe'
        - '\eventcreate.exe'
        - '\eventvwr.exe'
        - '\explorer.exe'
        - '\extrac32.exe'
        - '\fontdrvhost.exe'
        - '\fsquirt.exe'
        - '\ipconfig.exe'
        - '\iscsicli.exe'
        - '\iscsicpl.exe'
        - '\logman.exe'
        - '\LogonUI.exe'
        - '\LsaIso.exe'
        - '\lsass.exe'
        - '\lsm.exe'
        - '\msiexec.exe'
        - '\msinfo32.exe'
        - '\mstsc.exe'
        - '\nbtstat.exe'
        - '\odbcconf.exe'
        - '\powershell.exe'
        - '\pwsh.exe'
        - '\regini.exe'
        - '\regsvr32.exe'
        - '\rundll32.exe'
        - '\RuntimeBroker.exe'
        - '\schtasks.exe'
        - '\SearchFilterHost.exe'
        - '\SearchIndexer.exe'
        - '\SearchProtocolHost.exe'
        - '\SecurityHealthService.exe'
        - '\SecurityHealthSystray.exe'
        - '\services.exe'
        - '\ShellAppRuntime.exe'
        - '\sihost.exe'
        - '\smartscreen.exe'
        - '\smss.exe'
        - '\spoolsv.exe'
        - '\svchost.exe'
        - '\SystemSettingsBroker.exe'
        - '\taskhost.exe'
        - '\taskhostw.exe'
        - '\Taskmgr.exe'
        - '\TiWorker.exe'
        - '\vssadmin.exe'
        - '\w32tm.exe'
        - '\WerFault.exe'
        - '\WerFaultSecure.exe'
        - '\wermgr.exe'
        - '\wevtutil.exe'
        - '\wininit.exe'
        - '\winlogon.exe'
        - '\winrshost.exe'
        - '\WinRTNetMUAHostServer.exe'
        - '\wlanext.exe'
        - '\wlrmdr.exe'
        - '\WmiPrvSE.exe'
        - '\wslhost.exe'
        - '\WSReset.exe'
        - '\WUDFHost.exe'
        - '\WWAHost.exe'

Stage 2: not filter_main_*

filter_main_generic:
    TargetFilename|contains:
        - 'C:\$WINDOWS.~BT\'
        - 'C:\$WinREAgent\'
        - 'C:\Windows\SoftwareDistribution\'
        - 'C:\Windows\System32\'
        - 'C:\Windows\SysWOW64\'
        - 'C:\Windows\WinSxS\'
        - 'C:\Windows\uus\'
filter_main_tiworker:
    Image|endswith:
        - '\TiWorker.exe'
        - '\wuaucltcore.exe'
    TargetFilename|startswith: 'C:\Windows\Temp\'
filter_main_svchost:
    Image|endswith:
        - 'C:\Windows\system32\svchost.exe'
        - 'C:\Windows\SysWOW64\svchost.exe'
    TargetFilename|contains:
        - 'C:\Program Files\WindowsApps\'
        - 'C:\Program Files (x86)\WindowsApps\'
        - '\AppData\Local\Microsoft\WindowsApps\'
filter_main_wuauclt:
    Image:
        - 'C:\Windows\System32\wuauclt.exe'
        - 'C:\Windows\SysWOW64\wuauclt.exe'
        - 'C:\Windows\UUS\arm64\wuaucltcore.exe'
filter_main_explorer:
    TargetFilename|endswith: 'C:\Windows\explorer.exe'
filter_main_msiexec:
    Image|endswith:
        - 'C:\WINDOWS\system32\msiexec.exe'
        - 'C:\WINDOWS\SysWOW64\msiexec.exe'
    TargetFilename|startswith:
        - 'C:\Program Files\PowerShell\7\pwsh.exe'
        - 'C:\Program Files\PowerShell\7-preview\pwsh.exe'
        - 'C:\Program Files\WindowsApps\Microsoft.PowerShellPreview\'
filter_main_healtray:
    TargetFilename|contains: 'C:\Windows\System32\SecurityHealth\'
    TargetFilename|endswith: '\SecurityHealthSystray.exe'
    Image|endswith: '\SecurityHealthSetup.exe'

Stage 3: not filter_optional_wslhost

filter_optional_wslhost:
    - TargetFilename: 'C:\Program Files\WSL\wslhost.exe'
    - TargetFilename|contains|all:
          - 'C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_'
          - '\wslhost.exe'
    - TargetFilename|contains|all:
          - 'C:\Users\'
          - '\AppData\Local\Microsoft\WindowsApps\'
          - '\wslhost.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
TargetFilenameends_with
  • \AtBroker.exe
  • \LogonUI.exe
  • \LsaIso.exe
  • \RuntimeBroker.exe
  • \SearchFilterHost.exe
  • \SearchIndexer.exe
  • \SearchProtocolHost.exe
  • \SecurityHealthService.exe
  • \SecurityHealthSystray.exe
  • \ShellAppRuntime.exe
  • \SystemSettingsBroker.exe
  • \Taskmgr.exe
  • \TiWorker.exe
  • \WSReset.exe
  • \WUDFHost.exe
  • \WWAHost.exe
  • \WerFault.exe corpus 3 (sigma 3)
  • \WerFaultSecure.exe
  • \WinRTNetMUAHostServer.exe
  • \WmiPrvSE.exe
  • \audiodg.exe
  • \backgroundTaskHost.exe
  • \bcdedit.exe
  • \bitsadmin.exe
  • \cmdl32.exe
  • \cmstp.exe
  • \conhost.exe
  • \csrss.exe
  • \dasHost.exe
  • \dfrgui.exe
  • \dllhost.exe
  • \dwm.exe
  • \eventcreate.exe
  • \eventvwr.exe
  • \explorer.exe
  • \extrac32.exe
  • \fontdrvhost.exe
  • \fsquirt.exe
  • \ipconfig.exe
  • \iscsicli.exe
  • +33 more values (see full rule source)
field:"TargetFilename" kind:ends_with

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Imageends_withC:\WINDOWS\SysWOW64\msiexec.exeexcludes:Image field:"Image" value:"C:\WINDOWS\SysWOW64\msiexec.exe"
Imageends_withC:\WINDOWS\system32\msiexec.exeexcludes:Image field:"Image" value:"C:\WINDOWS\system32\msiexec.exe"
TargetFilenamestarts_withC:\Program Files\PowerShell\7-preview\pwsh.exeexcludes:TargetFilename field:"TargetFilename" value:"C:\Program Files\PowerShell\7-preview\pwsh.exe"
TargetFilenamestarts_withC:\Program Files\PowerShell\7\pwsh.exeexcludes:TargetFilename field:"TargetFilename" value:"C:\Program Files\PowerShell\7\pwsh.exe"
TargetFilenamestarts_withC:\Program Files\WindowsApps\Microsoft.PowerShellPreview\excludes:TargetFilename field:"TargetFilename" value:"C:\Program Files\WindowsApps\Microsoft.PowerShellPreview\"
Imageends_withC:\Windows\SysWOW64\svchost.exeexcludes:Image field:"Image" value:"C:\Windows\SysWOW64\svchost.exe"
Imageends_withC:\Windows\system32\svchost.exeexcludes:Image field:"Image" value:"C:\Windows\system32\svchost.exe"
TargetFilenamematchC:\Program Files (x86)\WindowsApps\excludes:TargetFilename field:"TargetFilename" value:"C:\Program Files (x86)\WindowsApps\"
TargetFilenamematchC:\Program Files\WindowsApps\excludes:TargetFilename field:"TargetFilename" value:"C:\Program Files\WindowsApps\"
TargetFilenamematch\AppData\Local\Microsoft\WindowsApps\excludes:TargetFilename field:"TargetFilename" value:"\AppData\Local\Microsoft\WindowsApps\"
Imageends_with\TiWorker.exeexcludes:Image field:"Image" value:"\TiWorker.exe"
Imageends_with\wuaucltcore.exeexcludes:Image field:"Image" value:"\wuaucltcore.exe"
TargetFilenamestarts_withC:\Windows\Temp\excludes:TargetFilename field:"TargetFilename" value:"C:\Windows\Temp\"
Imageends_with\SecurityHealthSetup.exeexcludes:Image field:"Image" value:"\SecurityHealthSetup.exe"
TargetFilenameends_with\SecurityHealthSystray.exeexcludes:TargetFilename field:"TargetFilename" value:"\SecurityHealthSystray.exe"
TargetFilenamematchC:\Windows\System32\SecurityHealth\excludes:TargetFilename field:"TargetFilename" value:"C:\Windows\System32\SecurityHealth\"
ImageeqC:\Windows\SysWOW64\wuauclt.exeexcludes:Image field:"Image" value:"C:\Windows\SysWOW64\wuauclt.exe"
ImageeqC:\Windows\System32\wuauclt.exeexcludes:Image field:"Image" value:"C:\Windows\System32\wuauclt.exe"
ImageeqC:\Windows\UUS\arm64\wuaucltcore.exeexcludes:Image field:"Image" value:"C:\Windows\UUS\arm64\wuaucltcore.exe"
TargetFilenameends_withC:\Windows\explorer.exeexcludes:TargetFilename field:"TargetFilename" value:"C:\Windows\explorer.exe"
TargetFilenamematchC:\$WINDOWS.~BT\excludes:TargetFilename field:"TargetFilename" value:"C:\$WINDOWS.~BT\"
TargetFilenamematchC:\$WinREAgent\excludes:TargetFilename field:"TargetFilename" value:"C:\$WinREAgent\"
TargetFilenamematchC:\Windows\SoftwareDistribution\excludes:TargetFilename field:"TargetFilename" value:"C:\Windows\SoftwareDistribution\"
TargetFilenamematchC:\Windows\SysWOW64\excludes:TargetFilename field:"TargetFilename" value:"C:\Windows\SysWOW64\"
TargetFilenamematchC:\Windows\System32\excludes:TargetFilename field:"TargetFilename" value:"C:\Windows\System32\"
TargetFilenamematchC:\Windows\WinSxS\excludes:TargetFilename field:"TargetFilename" value:"C:\Windows\WinSxS\"
TargetFilenamematchC:\Windows\uus\excludes:TargetFilename field:"TargetFilename" value:"C:\Windows\uus\"
TargetFilenamematchC:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_excludes:TargetFilename field:"TargetFilename" value:"C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_"
TargetFilenamematch\wslhost.exeexcludes:TargetFilename field:"TargetFilename" value:"\wslhost.exe"
TargetFilenamematchC:\Users\excludes:TargetFilename field:"TargetFilename" value:"C:\Users\"
TargetFilenameeqC:\Program Files\WSL\wslhost.exeexcludes:TargetFilename field:"TargetFilename" value:"C:\Program Files\WSL\wslhost.exe"

Gatekeeper Bypass via Xattr

#
Status
test
Severity
low
Author
Daniil Yugoslavskiy, oscd.community
Source
github.com/SigmaHQ/sigma

Detects macOS Gatekeeper bypass via xattr utility

Known False Positives

  • Legitimate activities

MITRE ATT&CK Coverage

TacticTechniques
Defense Impairment

Telemetry Coverage

Rule Body

title: Gatekeeper Bypass via Xattr
id: f5141b6d-9f42-41c6-a7bf-2a780678b29b
status: test
description: Detects macOS Gatekeeper bypass via xattr utility
references:
    - https://github.com/redcanaryco/atomic-red-team/blob/1fed40dc7e48f16ed44dcdd9c73b9222a70cca85/atomics/T1553.001/T1553.001.md
    - https://www.loobins.io/binaries/xattr/
author: Daniil Yugoslavskiy, oscd.community
date: 2020-10-19
modified: 2024-04-18
tags:
    - attack.defense-impairment
    - attack.t1553.001
logsource:
    category: process_creation
    product: macos
detection:
    selection:
        Image|endswith: '/xattr'
        CommandLine|contains|all:
            - '-d'
            - 'com.apple.quarantine'
    condition: selection
falsepositives:
    - Legitimate activities
level: low

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    Image|endswith: '/xattr'
    CommandLine|contains|all:
        - '-d'
        - 'com.apple.quarantine'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • -d corpus 9 (sigma 7, splunk 2)
  • com.apple.quarantine corpus 2 (sigma 1, splunk 1)
field:"CommandLine" kind:match
Imageends_with
  • /xattr corpus 2 (sigma 2)
field:"Image" kind:ends_with value:"/xattr"

Google Workspace Application Access Level Modified

#
Status
test
Severity
medium
Author
Bryan Lim
Source
github.com/SigmaHQ/sigma

Detects when an access level is changed for a Google workspace application. An access level is part of BeyondCorp Enterprise which is Google Workspace's way of enforcing Zero Trust model. An adversary would be able to remove access levels to gain easier access to Google workspace resources.

Known False Positives

  • Legitimate administrative activities changing the access levels for an application

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Google Workspace Application Access Level Modified
id: 22f2fb54-5312-435d-852f-7c74f81684ca
status: test
description: |
    Detects when an access level is changed for a Google workspace application.
    An access level is part of BeyondCorp Enterprise which is Google Workspace's way of enforcing Zero Trust model.
    An adversary would be able to remove access levels to gain easier access to Google workspace resources.
references:
    - https://developers.google.com/admin-sdk/reports/v1/appendix/activity/admin-application-settings
    - https://support.google.com/a/answer/9261439
author: Bryan Lim
date: 2024-01-12
tags:
    - attack.persistence
    - attack.privilege-escalation
    - attack.t1098.003
logsource:
    product: gcp
    service: google_workspace.admin
detection:
    selection:
        eventService: 'admin.googleapis.com'
        eventName: 'CHANGE_APPLICATION_SETTING'
        setting_name|startswith: 'ContextAwareAccess'
    condition: selection
falsepositives:
    - Legitimate administrative activities changing the access levels for an application
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    eventService: 'admin.googleapis.com'
    eventName: 'CHANGE_APPLICATION_SETTING'
    setting_name|startswith: 'ContextAwareAccess'

Indicators

These rows show field, operator, and value matches.

HackTool - Koadic Execution

#
Status
test
Severity
high
Author
wagga, Jonhnathan Ribeiro, oscd.community
Source
github.com/SigmaHQ/sigma

Detects command line parameters used by Koadic hack tool

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: HackTool - Koadic Execution
id: 5cddf373-ef00-4112-ad72-960ac29bac34
status: test
description: Detects command line parameters used by Koadic hack tool
references:
    - https://unit42.paloaltonetworks.com/unit42-sofacy-groups-parallel-attacks/
    - https://github.com/offsecginger/koadic/blob/457f9a3ff394c989cdb4c599ab90eb34fb2c762c/data/stager/js/stdlib.js
    - https://blog.f-secure.com/hunting-for-koadic-a-com-based-rootkit/
author: wagga, Jonhnathan Ribeiro, oscd.community
date: 2020-01-12
modified: 2023-02-11
tags:
    - attack.execution
    - attack.t1059.003
    - attack.t1059.005
    - attack.t1059.007
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith: '\cmd.exe'
        - OriginalFileName: 'Cmd.Exe'
    selection_cli:
        CommandLine|contains|all:
            - '/q'
            - '/c'
            - 'chcp'
    condition: all of selection_*
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_img

selection_img:
    - Image|endswith: '\cmd.exe'
    - OriginalFileName: 'Cmd.Exe'

Stage 2: selection_cli

selection_cli:
    CommandLine|contains|all:
        - '/q'
        - '/c'
        - 'chcp'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • /c corpus 16 (sigma 14, splunk 2)
  • /q corpus 10 (sigma 9, splunk 1)
  • chcp
field:"CommandLine" kind:match
Imageends_with
  • \cmd.exe corpus 132 (sigma 130, splunk 2)
field:"Image" kind:ends_with value:"\cmd.exe"
OriginalFileNameeq
  • Cmd.Exe corpus 75 (sigma 43, splunk 17, elastic 15)
field:"OriginalFileName" kind:eq value:"Cmd.Exe"

HackTool - Potential CobaltStrike Process Injection

#
Status
test
Severity
high
Author
Olaf Hartong, Florian Roth (Nextron Systems), Aleksey Potapov, oscd.community
Source
github.com/SigmaHQ/sigma

Detects a potential remote threat creation with certain characteristics which are typical for Cobalt Strike beacons

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 8: CreateRemoteThread

Rule Body

title: HackTool - Potential CobaltStrike Process Injection
id: 6309645e-122d-4c5b-bb2b-22e4f9c2fa42
status: test
description: Detects a potential remote threat creation with certain characteristics which are typical for Cobalt Strike beacons
references:
    - https://medium.com/@olafhartong/cobalt-strike-remote-threads-detection-206372d11d0f
    - https://blog.cobaltstrike.com/2018/04/09/cobalt-strike-3-11-the-snake-that-eats-its-tail/
author: Olaf Hartong, Florian Roth (Nextron Systems), Aleksey Potapov, oscd.community
date: 2018-11-30
modified: 2023-05-05
tags:
    - attack.privilege-escalation
    - attack.stealth
    - attack.t1055.001
logsource:
    product: windows
    category: create_remote_thread
detection:
    selection:
        StartAddress|endswith:
            - '0B80'
            - '0C7C'
            - '0C88'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    StartAddress|endswith:
        - '0B80'
        - '0C7C'
        - '0C88'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
StartAddressends_with
  • 0B80
  • 0C7C
  • 0C88
field:"StartAddress" kind:ends_with

HackTool - Rubeus Execution - ScriptBlock

#
Status
test
Severity
high
Author
Christian Burkard (Nextron Systems), Florian Roth (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects the execution of the hacktool Rubeus using specific command line flags

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: HackTool - Rubeus Execution - ScriptBlock
id: 3245cd30-e015-40ff-a31d-5cadd5f377ec
related:
    - id: 7ec2c172-dceb-4c10-92c9-87c1881b7e18
      type: similar
status: test
description: Detects the execution of the hacktool Rubeus using specific command line flags
references:
    - https://blog.harmj0y.net/redteaming/from-kekeo-to-rubeus
    - https://m0chan.github.io/2019/07/31/How-To-Attack-Kerberos-101.html
    - https://github.com/GhostPack/Rubeus
author: Christian Burkard (Nextron Systems), Florian Roth (Nextron Systems)
date: 2023-04-27
tags:
    - attack.credential-access
    - attack.t1003
    - attack.t1558.003
    - attack.lateral-movement
    - attack.t1550.003
logsource:
    product: windows
    category: ps_script
    definition: 'Requirements: Script Block Logging must be enabled'
detection:
    selection:
        ScriptBlockText|contains:
            - 'asreproast '
            - 'dump /service:krbtgt '
            - 'dump /luid:0x'
            - 'kerberoast '
            - 'createnetonly /program:'
            - 'ptt /ticket:'
            - '/impersonateuser:'
            - 'renew /ticket:'
            - 'asktgt /user:'
            - 'harvest /interval:'
            - 's4u /user:'
            - 's4u /ticket:'
            - 'hash /password:'
            - 'golden /aes256:'
            - 'silver /user:'
    condition: selection
falsepositives:
    - Unlikely
level: high
regression_tests_path: regression_data/rules/windows/powershell/powershell_script/posh_ps_hktl_rubeus/info.yml

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ScriptBlockText|contains:
        - 'asreproast '
        - 'dump /service:krbtgt '
        - 'dump /luid:0x'
        - 'kerberoast '
        - 'createnetonly /program:'
        - 'ptt /ticket:'
        - '/impersonateuser:'
        - 'renew /ticket:'
        - 'asktgt /user:'
        - 'harvest /interval:'
        - 's4u /user:'
        - 's4u /ticket:'
        - 'hash /password:'
        - 'golden /aes256:'
        - 'silver /user:'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ScriptBlockTextmatch
  • /impersonateuser:
  • asktgt /user:
  • asreproast
  • createnetonly /program:
  • dump /luid:0x
  • dump /service:krbtgt
  • golden /aes256:
  • harvest /interval:
  • hash /password:
  • kerberoast
  • ptt /ticket:
  • renew /ticket:
  • s4u /ticket:
  • s4u /user:
  • silver /user:
field:"ScriptBlockText" kind:match

Modification of IE Registry Settings

#
Status
test
Severity
low
Author
frack113
Source
github.com/SigmaHQ/sigma

Detects modification of the registry settings used for Internet Explorer and other Windows components that use these settings. An attacker can abuse this registry key to add a domain to the trusted sites Zone or insert JavaScript for persistence

MITRE ATT&CK Coverage

TacticTechniques
Persistence
Defense Impairment

Telemetry Coverage

Rule Body

title: Modification of IE Registry Settings
id: d88d0ab2-e696-4d40-a2ed-9790064e66b3
status: test
description: Detects modification of the registry settings used for Internet Explorer and other Windows components that use these settings. An attacker can abuse this registry key to add a domain to the trusted sites Zone or insert JavaScript for persistence
references:
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1112/T1112.md#atomic-test-4---add-domain-to-trusted-sites-zone
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1112/T1112.md#atomic-test-5---javascript-in-registry
author: frack113
date: 2022-01-22
modified: 2025-10-22
tags:
    - attack.persistence
    - attack.defense-impairment
    - attack.t1112
logsource:
    category: registry_set
    product: windows
detection:
    selection_domains:
        TargetObject|contains: '\Software\Microsoft\Windows\CurrentVersion\Internet Settings'
    filter_main_dword:
        Details|startswith: 'DWORD'
    filter_main_null:
        Details: null
    filter_main_office:
        Details:
            - 'Cookie:'
            - 'Visited:'
            - '(Empty)'
    filter_main_path:
        TargetObject|contains:
            - '\Cache'
            - '\ZoneMap'
            - '\WpadDecision'
    filter_main_binary:
        Details: 'Binary Data'
    filter_optional_accepted_documents:
        # Spotted during Office installations
        TargetObject|contains: '\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Accepted Documents'
    condition: selection_domains and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - Unknown
level: low
simulation:
    - type: atomic-red-team
      name: Add domain to Trusted sites Zone
      technique: T1112
      atomic_guid: cf447677-5a4e-4937-a82c-e47d254afd57
    - type: atomic-red-team
      name: Javascript in registry
      technique: T1112
      atomic_guid: 15f44ea9-4571-4837-be9e-802431a7bfae

Stages and Predicates

Stage 0: condition

selection_domains and not 1 of filter_main_* and not 1 of filter_optional_*

Stage 1: selection_domains

selection_domains:
    TargetObject|contains: '\Software\Microsoft\Windows\CurrentVersion\Internet Settings'

Stage 2: not filter_main_*

filter_main_dword:
    Details|startswith: 'DWORD'
filter_main_null:
    Details: null
filter_main_office:
    Details:
        - 'Cookie:'
        - 'Visited:'
        - '(Empty)'
filter_main_path:
    TargetObject|contains:
        - '\Cache'
        - '\ZoneMap'
        - '\WpadDecision'
filter_main_binary:
    Details: 'Binary Data'

Stage 3: not filter_optional_accepted_documents

filter_optional_accepted_documents:
    TargetObject|contains: '\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Accepted Documents'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
TargetObjectmatch
  • \Software\Microsoft\Windows\CurrentVersion\Internet Settings
field:"TargetObject" kind:match value:"\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

Exclusions

The rule actively suppresses these predicates.

New BgInfo.EXE Custom DB Path Registry Configuration

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

Detects setting of a new registry database value related to BgInfo configuration. Attackers can for example set this value to save the results of the commands executed by BgInfo in order to exfiltrate information.

Known False Positives

  • Legitimate use of external DB to save the results

MITRE ATT&CK Coverage

TacticTechniques
Persistence
Defense Impairment

Telemetry Coverage

Rule Body

title: New BgInfo.EXE Custom DB Path Registry Configuration
id: 53330955-dc52-487f-a3a2-da24dcff99b5
status: test
description: Detects setting of a new registry database value related to BgInfo configuration. Attackers can for example set this value to save the results of the commands executed by BgInfo in order to exfiltrate information.
references:
    - Internal Research
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-08-16
tags:
    - attack.persistence
    - attack.defense-impairment
    - attack.t1112
logsource:
    category: registry_set
    product: windows
detection:
    selection:
        TargetObject|endswith: '\Software\Winternals\BGInfo\Database'
    condition: selection
falsepositives:
    - Legitimate use of external DB to save the results
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    TargetObject|endswith: '\Software\Winternals\BGInfo\Database'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
TargetObjectends_with
  • \Software\Winternals\BGInfo\Database
field:"TargetObject" kind:ends_with value:"\Software\Winternals\BGInfo\Database"

New Firewall Rule Added Via Netsh.EXE

#
Status
test
Severity
medium
Author
Markus Neis, Sander Wiebing
Source
github.com/SigmaHQ/sigma

Detects the addition of a new rule to the Windows firewall via netsh

Known False Positives

  • Legitimate administration activity
  • Software installations

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: New Firewall Rule Added Via Netsh.EXE
id: cd5cfd80-aa5f-44c0-9c20-108c4ae12e3c
status: test
description: Detects the addition of a new rule to the Windows firewall via netsh
references:
    - https://web.archive.org/web/20190508165435/https://www.operationblockbuster.com/wp-content/uploads/2016/02/Operation-Blockbuster-RAT-and-Staging-Report.pdf
author: Markus Neis, Sander Wiebing
date: 2019-01-29
modified: 2023-02-10
tags:
    - attack.defense-impairment
    - attack.t1686.003
    - attack.s0246
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith: '\netsh.exe'
        - OriginalFileName: 'netsh.exe'
    selection_cli:
        CommandLine|contains|all:
            - ' firewall '
            - ' add '
    filter_optional_dropbox:
        CommandLine|contains:
            - 'advfirewall firewall add rule name=Dropbox dir=in action=allow "program=?:\Program Files (x86)\Dropbox\Client\Dropbox.exe" enable=yes profile=Any'
            - 'advfirewall firewall add rule name=Dropbox dir=in action=allow "program=?:\Program Files\Dropbox\Client\Dropbox.exe" enable=yes profile=Any'
    condition: all of selection_* and not 1 of filter_optional_*
falsepositives:
    - Legitimate administration activity
    - Software installations
level: medium

Stages and Predicates

Stage 0: condition

all of selection_* and not 1 of filter_optional_*

Stage 1: selection_img

selection_img:
    - Image|endswith: '\netsh.exe'
    - OriginalFileName: 'netsh.exe'

Stage 2: selection_cli

selection_cli:
    CommandLine|contains|all:
        - ' firewall '
        - ' add '

Stage 3: not filter_optional_dropbox

filter_optional_dropbox:
    CommandLine|contains:
        - 'advfirewall firewall add rule name=Dropbox dir=in action=allow "program=?:\Program Files (x86)\Dropbox\Client\Dropbox.exe" enable=yes profile=Any'
        - 'advfirewall firewall add rule name=Dropbox dir=in action=allow "program=?:\Program Files\Dropbox\Client\Dropbox.exe" enable=yes profile=Any'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • add corpus 14 (sigma 13, splunk 1)
  • firewall corpus 3 (sigma 2, splunk 1)
field:"CommandLine" kind:match
Imageends_with
  • \netsh.exe corpus 28 (sigma 28)
field:"Image" kind:ends_with value:"\netsh.exe"
OriginalFileNameeq
  • netsh.exe corpus 21 (sigma 14, splunk 7)
field:"OriginalFileName" kind:eq value:"netsh.exe"

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
CommandLinematchadvfirewall firewall add rule name=Dropbox dir=in action=allow "program=?:\Program Files (x86)\Dropbox\Client\Dropbox.exe" enable=yes profile=Anyexcludes:CommandLine
CommandLinematchadvfirewall firewall add rule name=Dropbox dir=in action=allow "program=?:\Program Files\Dropbox\Client\Dropbox.exe" enable=yes profile=Anyexcludes:CommandLine

Potential APT10 Cloud Hopper Activity

#
Status
test
Severity
high
Author
Florian Roth (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects potential process and execution activity related to APT10 Cloud Hopper operation

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Potential APT10 Cloud Hopper Activity
id: 966e4016-627f-44f7-8341-f394905c361f
status: test
description: Detects potential process and execution activity related to APT10 Cloud Hopper operation
references:
    - https://web.archive.org/web/20180725233601/https://www.pwc.co.uk/cyber-security/pdf/cloud-hopper-annex-b-final.pdf
author: Florian Roth (Nextron Systems)
date: 2017-04-07
modified: 2023-03-08
tags:
    - attack.execution
    - attack.g0045
    - attack.t1059.005
    - detection.emerging-threats
logsource:
    category: process_creation
    product: windows
detection:
    selection_cscript:
        Image|endswith: '\cscript.exe'
        CommandLine|contains: '.vbs /shell '
    selection_csvde:
        CommandLine|contains|all:
            - 'csvde -f C:\windows\web\'
            - '.log'
    condition: 1 of selection_*
falsepositives:
    - Unlikely
level: high

Stages and Predicates

Stage 0: condition

1 of selection_*

Stage 1: selection_cscript

selection_cscript:
    Image|endswith: '\cscript.exe'
    CommandLine|contains: '.vbs /shell '

Stage 2: selection_csvde

selection_csvde:
    CommandLine|contains|all:
        - 'csvde -f C:\windows\web\'
        - '.log'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • .log corpus 4 (sigma 4)
  • .vbs /shell
  • csvde -f C:\windows\web\
field:"CommandLine" kind:match
Imageends_with
  • \cscript.exe corpus 72 (sigma 72)
field:"Image" kind:ends_with value:"\cscript.exe"

Potential DLL Injection Or Execution Using Tracker.exe

#
Status
test
Severity
medium
Author
Avneet Singh @v3t0_, oscd.community
Source
github.com/SigmaHQ/sigma

Detects potential DLL injection and execution using "Tracker.exe"

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Potential DLL Injection Or Execution Using Tracker.exe
id: 148431ce-4b70-403d-8525-fcc2993f29ea
status: test
description: Detects potential DLL injection and execution using "Tracker.exe"
references:
    - https://lolbas-project.github.io/lolbas/OtherMSBinaries/Tracker/
author: 'Avneet Singh @v3t0_, oscd.community'
date: 2020-10-18
modified: 2023-01-09
tags:
    - attack.privilege-escalation
    - attack.stealth
    - attack.t1055.001
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith: '\tracker.exe'
        - Description: 'Tracker'
    selection_cli:
        CommandLine|contains:
            - ' /d '
            - ' /c '
    filter_msbuild1:
        CommandLine|contains: ' /ERRORREPORT:PROMPT '
    filter_msbuild2:
        # Example:
        #   GrandparentImage: C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\MSBuild.exe
        #   ParentCommandLine: "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" /nologo /nodemode:1 /nodeReuse:true /low:false
        #   CommandLine: "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\Tracker.exe" @"C:\Users\user\AppData\Local\Temp\tmp05c7789bc5534838bf96d7a0fed1ffff.tmp" /c "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\Lib.exe"
        ParentImage|endswith:
            - '\Msbuild\Current\Bin\MSBuild.exe'
            - '\Msbuild\Current\Bin\amd64\MSBuild.exe'
    condition: all of selection_* and not 1 of filter_*
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

all of selection_* and not 1 of filter_*

Stage 1: selection_img

selection_img:
    - Image|endswith: '\tracker.exe'
    - Description: 'Tracker'

Stage 2: selection_cli

selection_cli:
    CommandLine|contains:
        - ' /d '
        - ' /c '

Stage 3: not filter_*

filter_msbuild1:
    CommandLine|contains: ' /ERRORREPORT:PROMPT '
filter_msbuild2:
    ParentImage|endswith:
        - '\Msbuild\Current\Bin\MSBuild.exe'
        - '\Msbuild\Current\Bin\amd64\MSBuild.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • /c corpus 7 (sigma 6, splunk 1)
  • /d corpus 3 (sigma 3)
field:"CommandLine" kind:match
Descriptioneq
  • Tracker
field:"Description" kind:eq value:"Tracker"
Imageends_with
  • \tracker.exe
field:"Image" kind:ends_with value:"\tracker.exe"

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
CommandLinematch /ERRORREPORT:PROMPT excludes:CommandLine field:"CommandLine" value:" /ERRORREPORT:PROMPT "
ParentImageends_with\Msbuild\Current\Bin\MSBuild.exeexcludes:ParentImage field:"ParentImage" value:"\Msbuild\Current\Bin\MSBuild.exe"
ParentImageends_with\Msbuild\Current\Bin\amd64\MSBuild.exeexcludes:ParentImage field:"ParentImage" value:"\Msbuild\Current\Bin\amd64\MSBuild.exe"

Potential Dtrack RAT Activity

#
Status
stable
Severity
critical
Author
Florian Roth (Nextron Systems), Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects potential Dtrack RAT activity via specific process patterns

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

TacticTechniques
Impact

Telemetry Coverage

Rule Body

title: Potential Dtrack RAT Activity
id: f1531fa4-5b84-4342-8f68-9cf3fdbd83d4
status: stable
description: Detects potential Dtrack RAT activity via specific process patterns
references:
    - https://securelist.com/my-name-is-dtrack/93338/
    - https://securelist.com/andariel-deploys-dtrack-and-maui-ransomware/107063/
    - https://www.cyberbit.com/endpoint-security/dtrack-apt-malware-found-in-nuclear-power-plant/
    - https://app.any.run/tasks/4bc9860d-ab51-4077-9e09-59ad346b92fd/
    - https://app.any.run/tasks/ce4deab5-3263-494f-93e3-afb2b9d79f14/
author: Florian Roth (Nextron Systems), Nasreddine Bencherchali (Nextron Systems)
date: 2019-10-30
modified: 2025-11-03
tags:
    - attack.impact
    - attack.t1490
    - detection.emerging-threats
logsource:
    category: process_creation
    product: windows
detection:
    selection_ping:
        CommandLine|re: 'ping\s+-n.{6,64}echo EEEE\s?>\s?'
    selection_ipconfig:
        CommandLine|re: 'ipconfig\s+/all'
        CommandLine|contains: '\temp\res.ip'
    selection_netsh:
        CommandLine|contains|all:
            - 'interface ip show config'
            - '\temp\netsh.res'
    condition: 1 of selection_*
falsepositives:
    - Unlikely
level: critical

Stages and Predicates

Stage 0: condition

1 of selection_*

Stage 1: selection_ping

selection_ping:
    CommandLine|re: 'ping\s+-n.{6,64}echo EEEE\s?>\s?'

Stage 2: selection_ipconfig

selection_ipconfig:
    CommandLine|re: 'ipconfig\s+/all'
    CommandLine|contains: '\temp\res.ip'

Stage 3: selection_netsh

selection_netsh:
    CommandLine|contains|all:
        - 'interface ip show config'
        - '\temp\netsh.res'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • \temp\netsh.res
  • \temp\res.ip
  • interface ip show config
field:"CommandLine" kind:match
CommandLineregex_match
  • ipconfig\s+/all corpus 3 (sigma 3)
  • ping\s+-n.{6,64}echo EEEE\s?>\s?
field:"CommandLine" kind:regex_match

Potential EventLog File Location Tampering

#
Status
test
Severity
high
Author
D3F7A5105
Source
github.com/SigmaHQ/sigma

Detects tampering with EventLog service "file" key. In order to change the default location of an Evtx file. This technique is used to tamper with log collection and alerting

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Potential EventLog File Location Tampering
id: 0cb8d736-995d-4ce7-a31e-1e8d452a1459
status: test
description: Detects tampering with EventLog service "file" key. In order to change the default location of an Evtx file. This technique is used to tamper with log collection and alerting
references:
    - https://learn.microsoft.com/en-us/windows/win32/eventlog/eventlog-key
author: D3F7A5105
date: 2023-01-02
modified: 2023-08-17
tags:
    - attack.defense-impairment
    - attack.t1685.001
logsource:
    category: registry_set
    product: windows
detection:
    selection:
        TargetObject|contains: '\SYSTEM\CurrentControlSet\Services\EventLog\'
        TargetObject|endswith: '\File'
    filter:
        Details|contains: '\System32\Winevt\Logs\'
    condition: selection and not filter
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection and not filter

Stage 1: selection

selection:
    TargetObject|contains: '\SYSTEM\CurrentControlSet\Services\EventLog\'
    TargetObject|endswith: '\File'

Stage 2: not filter

filter:
    Details|contains: '\System32\Winevt\Logs\'

Indicators

These rows show field, operator, and value matches.

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Detailsmatch\System32\Winevt\Logs\excludes:Details field:"Details" value:"\System32\Winevt\Logs\"

Potential Hidden Directory Creation Via NTFS INDEX_ALLOCATION Stream

#
Status
test
Severity
medium
Author
Scoubi (@ScoubiMtl)
Source
github.com/SigmaHQ/sigma

Detects the creation of hidden file/folder with the "::$index_allocation" stream. Which can be used as a technique to prevent access to folder and files from tooling such as "explorer.exe" and "powershell.exe"

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 11: FileCreate

Rule Body

title: Potential Hidden Directory Creation Via NTFS INDEX_ALLOCATION Stream
id: a8f866e1-bdd4-425e-a27a-37619238d9c7
related:
    - id: 0900463c-b33b-49a8-be1d-552a3b553dae
      type: similar
status: test
description: |
    Detects the creation of hidden file/folder with the "::$index_allocation" stream. Which can be used as a technique to prevent access to folder and files from tooling such as "explorer.exe" and "powershell.exe"
references:
    - https://twitter.com/pfiatde/status/1681977680688738305
    - https://soroush.me/blog/2010/12/a-dotty-salty-directory-a-secret-place-in-ntfs-for-secret-files/
    - https://sec-consult.com/blog/detail/pentesters-windows-ntfs-tricks-collection/
    - https://github.com/redcanaryco/atomic-red-team/blob/5c3b23002d2bbede3c07e7307165fc2a235a427d/atomics/T1564.004/T1564.004.md#atomic-test-5---create-hidden-directory-via-index_allocation
    - https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-fscc/c54dec26-1551-4d3a-a0ea-4fa40f848eb3
author: Scoubi (@ScoubiMtl)
date: 2023-10-09
tags:
    - attack.stealth
    - attack.t1564.004
logsource:
    product: windows
    category: file_event
detection:
    selection:
        # Note: Both Sysmon and ETW are unable to log the presence of such streams in the CommandLine. But EDRs such as Crowdstrike are able to use e.g. CMD console history. Users are advised to test this before usage
        TargetFilename|contains: '::$index_allocation'
    condition: selection
falsepositives:
    - Unlikely
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    TargetFilename|contains: '::$index_allocation'

Indicators

These rows show field, operator, and value matches.

Potential Persistence Attempt Via ErrorHandler.Cmd

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

Detects creation of a file named "ErrorHandler.cmd" in the "C:\WINDOWS\Setup\Scripts" directory which could be used as a method of persistence The content of C:\WINDOWS\Setup\Scripts\ErrorHandler.cmd is read whenever some tools under C:\WINDOWS\System32\oobe\ (e.g. Setup.exe) fail to run for any reason.

MITRE ATT&CK Coverage

TacticTechniques
PersistenceNo specific technique

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 11: FileCreate

Rule Body

title: Potential Persistence Attempt Via ErrorHandler.Cmd
id: 15904280-565c-4b73-9303-3291f964e7f9
status: test
description: |
    Detects creation of a file named "ErrorHandler.cmd" in the "C:\WINDOWS\Setup\Scripts\" directory which could be used as a method of persistence
    The content of C:\WINDOWS\Setup\Scripts\ErrorHandler.cmd is read whenever some tools under C:\WINDOWS\System32\oobe\ (e.g. Setup.exe) fail to run for any reason.
references:
    - https://www.hexacorn.com/blog/2022/01/16/beyond-good-ol-run-key-part-135/
    - https://github.com/last-byte/PersistenceSniper
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-08-09
modified: 2022-12-19
tags:
    - attack.persistence
logsource:
    category: file_event
    product: windows
detection:
    selection:
        TargetFilename|endswith: '\WINDOWS\Setup\Scripts\ErrorHandler.cmd'
    condition: selection
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    TargetFilename|endswith: '\WINDOWS\Setup\Scripts\ErrorHandler.cmd'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
TargetFilenameends_with
  • \WINDOWS\Setup\Scripts\ErrorHandler.cmd
field:"TargetFilename" kind:ends_with value:"\WINDOWS\Setup\Scripts\ErrorHandler.cmd"

Potentially Suspicious Execution From Tmp Folder

#
Status
test
Severity
medium
Author
Joseliyo Sanchez, @Joseliyo_Jstnk
Source
github.com/SigmaHQ/sigma

Detects a potentially suspicious execution of a process located in the '/tmp/' folder

MITRE ATT&CK Coverage

TacticTechniques
Stealth

Telemetry Coverage

PlatformRecord / event type
LinuxEvent ID 1: Process Create

Rule Body

title: Potentially Suspicious Execution From Tmp Folder
id: 312b42b1-bded-4441-8b58-163a3af58775
status: test
description: Detects a potentially suspicious execution of a process located in the '/tmp/' folder
references:
    - https://blogs.jpcert.or.jp/en/2023/05/gobrat.html
    - https://jstnk9.github.io/jstnk9/research/GobRAT-Malware/
    - https://www.virustotal.com/gui/file/60bcd645450e4c846238cf0e7226dc40c84c96eba99f6b2cffcd0ab4a391c8b3/detection
    - https://www.virustotal.com/gui/file/3e44c807a25a56f4068b5b8186eee5002eed6f26d665a8b791c472ad154585d1/detection
author: Joseliyo Sanchez, @Joseliyo_Jstnk
date: 2023-06-02
modified: 2025-08-05
tags:
    - attack.stealth
    - attack.t1036
logsource:
    product: linux
    category: process_creation
detection:
    selection:
        Image|startswith: '/tmp/'
    filter_optional_nextcloud:
        Image|endswith: '/usr/bin/nextcloud'
    condition: selection and not 1 of filter_optional_*
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_optional_*

Stage 1: selection

selection:
    Image|startswith: '/tmp/'

Stage 2: not filter_optional_nextcloud

filter_optional_nextcloud:
    Image|endswith: '/usr/bin/nextcloud'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imagestarts_with
  • /tmp/ corpus 28 (elastic 26, sigma 2)
field:"Image" kind:starts_with value:"/tmp/"

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Imageends_with/usr/bin/nextcloudexcludes:Image field:"Image" value:"/usr/bin/nextcloud"

Process Memory Dump Via Comsvcs.DLL

#
Status
test
Severity
high
Author
Florian Roth (Nextron Systems), Modexp, Nasreddine Bencherchali (Nextron Systems), Swachchhanda Shrawan Poudel (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects a process memory dump via "comsvcs.dll" using rundll32, covering multiple different techniques (ordinal, minidump function, etc.)

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Process Memory Dump Via Comsvcs.DLL
id: 646ea171-dded-4578-8a4d-65e9822892e3
related:
    - id: 09e6d5c0-05b8-4ff8-9eeb-043046ec774c
      type: obsolete
status: test
description: Detects a process memory dump via "comsvcs.dll" using rundll32, covering multiple different techniques (ordinal, minidump function, etc.)
references:
    - https://twitter.com/shantanukhande/status/1229348874298388484
    - https://twitter.com/pythonresponder/status/1385064506049630211?s=21
    - https://twitter.com/Hexacorn/status/1224848930795552769
    - https://modexp.wordpress.com/2019/08/30/minidumpwritedump-via-com-services-dll/
    - https://twitter.com/SBousseaden/status/1167417096374050817
    - https://twitter.com/Wietze/status/1542107456507203586
    - https://github.com/Hackndo/lsassy/blob/14d8f8ae596ecf22b449bfe919829173b8a07635/lsassy/dumpmethod/comsvcs.py
    - https://www.youtube.com/watch?v=52tAmVLg1KM&t=2070s
author: Florian Roth (Nextron Systems), Modexp, Nasreddine Bencherchali (Nextron Systems), Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2020-02-18
modified: 2025-02-23
tags:
    - attack.credential-access
    - attack.stealth
    - attack.t1036
    - attack.t1003.001
    - car.2013-05-009
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith: '\rundll32.exe'
        - OriginalFileName: 'RUNDLL32.EXE'
        - CommandLine|contains: 'rundll32'
    selection_cli_1:
        CommandLine|contains|all:
            - 'comsvcs'
            - 'full'
        CommandLine|contains:
            - '#-'
            - '#+'
            - '#24'
            - '24 '
            - 'MiniDump' # Matches MiniDump and MinidumpW
            - '#65560' # ordinal is 16 bit ordinal, so if you make the number large enough (don't fit in 16 bit space), then it normally wraps around.  for e.g ordinal 24 can be also represented by 65560 (65536+24)
    selection_generic:
        CommandLine|contains|all:
            - '24'
            - 'comsvcs'
            - 'full'
        CommandLine|contains:
            - ' #'
            - ',#'
            - ', #'
            - '"#'
    condition: (selection_img and 1 of selection_cli_*) or selection_generic
falsepositives:
    - Unlikely
level: high
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_rundll32_process_dump_via_comsvcs/info.yml

Stages and Predicates

Stage 0: condition

(selection_img and 1 of selection_cli_*) or selection_generic

Stage 1: selection_img

selection_img:
    - Image|endswith: '\rundll32.exe'
    - OriginalFileName: 'RUNDLL32.EXE'
    - CommandLine|contains: 'rundll32'

Stage 2: selection_cli_1

selection_cli_1:
    CommandLine|contains|all:
        - 'comsvcs'
        - 'full'
    CommandLine|contains:
        - '#-'
        - '#+'
        - '#24'
        - '24 '
        - 'MiniDump'
        - '#65560'

Stage 3: selection_generic

selection_generic:
    CommandLine|contains|all:
        - '24'
        - 'comsvcs'
        - 'full'
    CommandLine|contains:
        - ' #'
        - ',#'
        - ', #'
        - '"#'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • #
  • "#
  • #+ corpus 3 (sigma 3)
  • #- corpus 3 (sigma 3)
  • #24
  • #65560
  • , # corpus 2 (sigma 2)
  • ,# corpus 2 (sigma 2)
  • 24
  • 24
  • MiniDump corpus 4 (sigma 4)
  • comsvcs corpus 2 (sigma 2)
  • full corpus 2 (sigma 2)
  • rundll32 corpus 23 (sigma 23)
field:"CommandLine" kind:match
Imageends_with
  • \rundll32.exe corpus 94 (sigma 94)
field:"Image" kind:ends_with value:"\rundll32.exe"
OriginalFileNameeq
  • RUNDLL32.EXE corpus 72 (sigma 35, splunk 21, elastic 16)
field:"OriginalFileName" kind:eq value:"RUNDLL32.EXE"

PUA - Sysinternals Tools Execution - Registry

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

Detects the execution of some potentially unwanted tools such as PsExec, Procdump, etc. (part of the Sysinternals suite) via the creation of the "accepteula" registry key.

Known False Positives

  • Legitimate use of SysInternals tools. Filter the legitimate paths used in your environment

MITRE ATT&CK Coverage

TacticTechniques
Resource Development

Telemetry Coverage

Rule Body

title: PUA - Sysinternals Tools Execution - Registry
id: c7da8edc-49ae-45a2-9e61-9fd860e4e73d
related:
    - id: 25ffa65d-76d8-4da5-a832-3f2b0136e133
      type: derived
    - id: 9841b233-8df8-4ad7-9133-b0b4402a9014
      type: obsolete
status: test
description: Detects the execution of some potentially unwanted tools such as PsExec, Procdump, etc. (part of the Sysinternals suite) via the creation of the "accepteula" registry key.
references:
    - https://twitter.com/Moti_B/status/1008587936735035392
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-08-24
modified: 2025-10-26
tags:
    - attack.resource-development
    - attack.t1588.002
logsource:
    product: windows
    category: registry_set
detection:
    selection:
        TargetObject|contains:
            - '\Active Directory Explorer'
            - '\Handle'
            - '\LiveKd'
            - '\Process Explorer'
            - '\ProcDump'
            - '\PsExec'
            - '\PsLoglist'
            - '\PsPasswd'
            - '\SDelete'
            - '\Sysinternals' # Global level https://twitter.com/leonzandman/status/1561736801953382400
        TargetObject|endswith: '\EulaAccepted'
    condition: selection
falsepositives:
    - Legitimate use of SysInternals tools. Filter the legitimate paths used in your environment
level: medium
regression_tests_path: regression_data/rules/windows/registry/registry_set/registry_set_pua_sysinternals_susp_execution_via_eula/info.yml

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    TargetObject|contains:
        - '\Active Directory Explorer'
        - '\Handle'
        - '\LiveKd'
        - '\Process Explorer'
        - '\ProcDump'
        - '\PsExec'
        - '\PsLoglist'
        - '\PsPasswd'
        - '\SDelete'
        - '\Sysinternals'
    TargetObject|endswith: '\EulaAccepted'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
TargetObjectends_with
  • \EulaAccepted corpus 4 (sigma 4)
field:"TargetObject" kind:ends_with value:"\EulaAccepted"
TargetObjectmatch
  • \Active Directory Explorer corpus 3 (sigma 3)
  • \Handle corpus 3 (sigma 3)
  • \LiveKd corpus 3 (sigma 3)
  • \ProcDump corpus 3 (sigma 3)
  • \Process Explorer corpus 3 (sigma 3)
  • \PsExec corpus 3 (sigma 3)
  • \PsLoglist corpus 3 (sigma 3)
  • \PsPasswd corpus 3 (sigma 3)
  • \SDelete corpus 2 (sigma 2)
  • \Sysinternals
field:"TargetObject" kind:match

RDP tunneling configuration enabled for port forwarding

#
Status
experimental
Severity
high
Author
mdecrevoisier
Source
github.com/mdecrevoisier/SIGMA-detection-rules

Detects scenarios where an attacker configure port forwarding on a host to redirect traffic to a C&C target.

Known False Positives

  • Administrator activity

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: RDP tunneling configuration enabled for port forwarding
description: Detects scenarios where an attacker configure port forwarding on a host to redirect traffic to a C&C target.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0011-Command%20and%20Control/T1090-Proxy
- https://www.mandiant.com/resources/bypassing-network-restrictions-through-rdp-tunneling
- https://embracethered.com/blog/posts/2020/windows-port-forward/
- https://davidhamann.de/2019/06/20/setting-up-portproxy-netsh/
- https://parsiya.net/blog/2016-06-07-windows-netsh-interface-portproxy/
- https://www.real-sec.com/2019/04/bypassing-network-restrictions-through-rdp-tunneling/
- https://media.defense.gov/2023/May/24/2003229517/-1/-1/0/CSA_Living_off_the_Land.PDF
- https://www.microsoft.com/en-us/security/blog/2023/05/24/volt-typhoon-targets-us-critical-infrastructure-with-living-off-the-land-techniques/
- https://practicalsecurityanalytics.com/how-to-leverage-internal-proxies-for-lateral-movement-firewall-evasion-and-trust-exploitation/
- https://www.volexity.com/blog/2024/11/22/the-nearest-neighbor-attack-how-a-russian-apt-weaponized-nearby-wi-fi-networks-for-covert-access/
tags:
- attack.command_and_control
- attack.t1572 # tunneling
- attack.lateral_movement
- attack.t1021.001 # remote services: RDP
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  category: process_creation
detection:
  selection_event:
    NewProcessName|endswith: '\netsh.exe' # Full path "C:\Windows\system32\netsh.exe"

  selection_command: # full command 'netsh interface portproxy add v4tov4 listenport=8001 listenaddress=0.0.0.0 connectport=3389 connectaddress=1.1.1.1'
    Commandline|contains|all:
      - interface
      - portproxy
    Commandline|contains:
      - add   # add forwarding
      - reset # reset configuration

  selection_obfuscated: # full command: 'netsh i p a v l=8001 listena=0.0.0.0 connectp=3389 c=1.1.1.1'
    Commandline|contains|all:
      - 'i ' # interface
      - 'p ' # portproxy
    Commandline|contains:
      - 'a ' # add forwarding
      - 'r '  # reset configuration

  condition: selection_event and (selection_command or selection_obfuscated)
falsepositives:
- Administrator activity
level: high


Stages and Predicates

Stage 0: condition

selection_event and (selection_command or selection_obfuscated)

Stage 1: selection_event

selection_event:
  NewProcessName|endswith: '\netsh.exe'

Stage 2: selection_command

selection_command:
  Commandline|contains|all:
    - interface
    - portproxy
  Commandline|contains:
    - add
    - reset

Stage 3: selection_obfuscated

selection_obfuscated:
  Commandline|contains|all:
    - 'i '
    - 'p '
  Commandline|contains:
    - 'a '
    - 'r '

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Commandlinematch
  • a corpus 2 (sigma 2)
  • add corpus 30 (sigma 26, splunk 4)
  • i corpus 2 (sigma 2)
  • interface corpus 2 (sigma 2)
  • p corpus 2 (sigma 2)
  • portproxy corpus 2 (sigma 2)
  • r
  • reset
field:"CommandLine" kind:match
NewProcessNameends_with
  • \netsh.exe corpus 28 (sigma 28)
field:"Image" kind:ends_with value:"\netsh.exe"

Registry Modification for OCI DLL Redirection

#
Status
experimental
Severity
high
Author
Swachchhanda Shrawan Poudel (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects registry modifications related to 'OracleOciLib' and 'OracleOciLibPath' under 'MSDTC' settings. Threat actors may modify these registry keys to redirect the loading of 'oci.dll' to a malicious DLL, facilitating phantom DLL hijacking via the MSDTC service.

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Registry Modification for OCI DLL Redirection
id: c0e0bdec-3e3d-47aa-9974-05539c999c89
status: experimental
description: |
    Detects registry modifications related to 'OracleOciLib' and 'OracleOciLibPath' under 'MSDTC' settings.
    Threat actors may modify these registry keys to redirect the loading of 'oci.dll' to a malicious DLL, facilitating phantom DLL hijacking via the MSDTC service.
references:
    - https://www.crowdstrike.com/en-us/blog/4-ways-adversaries-hijack-dlls/
author: Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2026-01-24
tags:
    - attack.persistence
    - attack.privilege-escalation
    - attack.execution
    - attack.stealth
    - attack.defense-impairment
    - attack.t1112
    - attack.t1574.001
logsource:
    category: registry_set
    product: windows
detection:
    selection_ocilib:
        TargetObject|endswith: '\SOFTWARE\Microsoft\MSDTC\MTxOCI\OracleOciLib'
    filter_main_ocilib_file:
        # it is looking when oci.dll name is changed to something else like evil.dll
        Details|contains: 'oci.dll'
    selection_ocilibpath:
        TargetObject|endswith: '\SOFTWARE\Microsoft\MSDTC\MTxOCI\OracleOciLibPath'
    filter_main_ocilibpath:
        # it is looking when oci.dll path is changed to something else like 'C:\Windows\Temp\'
        Details|contains: '%SystemRoot%\System32\'
    condition: (selection_ocilib and not filter_main_ocilib_file) or (selection_ocilibpath and not filter_main_ocilibpath)
falsepositives:
    - Unlikely
level: high

Stages and Predicates

Stage 0: condition

(selection_ocilib and not filter_main_ocilib_file) or (selection_ocilibpath and not filter_main_ocilibpath)

Stage 1: selection_ocilib

selection_ocilib:
    TargetObject|endswith: '\SOFTWARE\Microsoft\MSDTC\MTxOCI\OracleOciLib'

Stage 2: not filter_main_ocilib_file

filter_main_ocilib_file:
    Details|contains: 'oci.dll'

Stage 3: selection_ocilibpath

selection_ocilibpath:
    TargetObject|endswith: '\SOFTWARE\Microsoft\MSDTC\MTxOCI\OracleOciLibPath'

Stage 4: not filter_main_ocilibpath

filter_main_ocilibpath:
    Details|contains: '%SystemRoot%\System32\'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
TargetObjectends_with
  • \SOFTWARE\Microsoft\MSDTC\MTxOCI\OracleOciLib
  • \SOFTWARE\Microsoft\MSDTC\MTxOCI\OracleOciLibPath
field:"TargetObject" kind:ends_with

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Detailsmatchoci.dllexcludes:Details field:"Details" value:"oci.dll"
Detailsmatch%SystemRoot%\System32\excludes:Details field:"Details" value:"%SystemRoot%\System32\"

Regsvr32.EXE Calling of DllRegisterServer Export Function Implicitly

#
Status
test
Severity
medium
Author
Andreas Braathen (mnemonic.io), Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects execution of regsvr32 with the silent flag and no other flags on a DLL located in an uncommon or potentially suspicious location. When Regsvr32 is called in such a way, it implicitly calls the DLL export function 'DllRegisterServer'.

Known False Positives

  • Legitimate usage as part of application installation, but less likely from e.g. temporary paths.

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Regsvr32.EXE Calling of DllRegisterServer Export Function Implicitly
id: ce2c44b5-a6ac-412a-afba-9e89326fa972
related:
    - id: 0ba1da6d-b6ce-4366-828c-18826c9de23e
      type: similar
status: test
description: |
    Detects execution of regsvr32 with the silent flag and no other flags on a DLL located in an uncommon or potentially suspicious location.
    When Regsvr32 is called in such a way, it implicitly calls the DLL export function 'DllRegisterServer'.
references:
    - https://thedfirreport.com/2023/08/28/html-smuggling-leads-to-domain-wide-ransomware/
    - https://www.virustotal.com/gui/file/288fc4f954f98d724e6fab32a89477943df5c0e9662cb199a19b90ae0c63aebe/detection
    - https://learn.microsoft.com/en-us/windows/win32/api/olectl/nf-olectl-dllregisterserver
    - https://ss64.com/nt/regsvr32.html
author: Andreas Braathen (mnemonic.io), Nasreddine Bencherchali (Nextron Systems)
date: 2023-10-17
tags:
    - attack.stealth
    - attack.t1218
    - detection.threat-hunting
logsource:
    category: process_creation
    product: windows
detection:
    selection_image:
        - Image|endswith: '\regsvr32.exe'
        - OriginalFileName: 'REGSVR32.EXE'
    selection_cmdline:
        CommandLine|contains:
            - ' /s '
            - ' /e '
    filter_main_paths:
        - CommandLine|contains:
              - ':\Program Files (x86)'
              - ':\Program Files\'
              - ':\Windows\System32\'
              - ':\Windows\SysWOW64\'
        - CurrentDirectory|contains:
              - ':\Program Files (x86)'
              - ':\Program Files\'
              - ':\Windows\System32\'
              - ':\Windows\SysWOW64\'
    filter_main_other_flags:
        # Note: We filter other flags to keep the logic of the rule
        CommandLine|contains:
            - ' /i:'
            - '/U '
    filter_main_rpcproxy:
        ParentCommandLine|endswith: ':\Windows\System32\RpcProxy\RpcProxy.dll'
        CommandLine: 'regsvr32 /s rpcproxy.dll'
    condition: all of selection_* and not 1 of filter_main_*
falsepositives:
    - Legitimate usage as part of application installation, but less likely from e.g. temporary paths.
level: medium

Stages and Predicates

Stage 0: condition

all of selection_* and not 1 of filter_main_*

Stage 1: selection_image

selection_image:
    - Image|endswith: '\regsvr32.exe'
    - OriginalFileName: 'REGSVR32.EXE'

Stage 2: selection_cmdline

selection_cmdline:
    CommandLine|contains:
        - ' /s '
        - ' /e '

Stage 3: not filter_main_*

filter_main_paths:
    - CommandLine|contains:
          - ':\Program Files (x86)'
          - ':\Program Files\'
          - ':\Windows\System32\'
          - ':\Windows\SysWOW64\'
    - CurrentDirectory|contains:
          - ':\Program Files (x86)'
          - ':\Program Files\'
          - ':\Windows\System32\'
          - ':\Windows\SysWOW64\'
filter_main_other_flags:
    CommandLine|contains:
        - ' /i:'
        - '/U '
filter_main_rpcproxy:
    ParentCommandLine|endswith: ':\Windows\System32\RpcProxy\RpcProxy.dll'
    CommandLine: 'regsvr32 /s rpcproxy.dll'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • /e corpus 5 (sigma 5)
  • /s corpus 7 (sigma 4, splunk 3)
field:"CommandLine" kind:match
Imageends_with
  • \regsvr32.exe corpus 64 (sigma 64)
field:"Image" kind:ends_with value:"\regsvr32.exe"
OriginalFileNameeq
  • REGSVR32.EXE corpus 37 (sigma 17, elastic 15, splunk 5)
field:"OriginalFileName" kind:eq value:"REGSVR32.EXE"

Exclusions

The rule actively suppresses these predicates.

Remote Access Tool - ScreenConnect Temporary File

#
Status
test
Severity
low
Author
Ali Alwashali
Source
github.com/SigmaHQ/sigma

Detects the creation of files in a specific location by ScreenConnect RMM. ScreenConnect has feature to remotely execute binaries on a target machine. These binaries will be dropped to ":\Users<username>\Documents\ConnectWiseControl\Temp" before execution.

Known False Positives

  • Legitimate use of ScreenConnect

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 11: FileCreate

Rule Body

title: Remote Access Tool - ScreenConnect Temporary File
id: 0afecb6e-6223-4a82-99fb-bf5b981e92a5
related:
    - id: b1f73849-6329-4069-bc8f-78a604bb8b23
      type: similar
status: test
description: |
    Detects the creation of files in a specific location by ScreenConnect RMM.
    ScreenConnect has feature to remotely execute binaries on a target machine. These binaries will be dropped to ":\Users\<username>\Documents\ConnectWiseControl\Temp\" before execution.
references:
    - https://github.com/SigmaHQ/sigma/pull/4467
author: Ali Alwashali
date: 2023-10-10
tags:
    - attack.execution
    - attack.t1059.003
logsource:
    category: file_event
    product: windows
detection:
    selection:
        Image|endswith: '\ScreenConnect.WindowsClient.exe'
        TargetFilename|contains: '\Documents\ConnectWiseControl\Temp\'
    condition: selection
falsepositives:
    - Legitimate use of ScreenConnect
# Note: Incase the level if ScreenConnect is not used
level: low

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    Image|endswith: '\ScreenConnect.WindowsClient.exe'
    TargetFilename|contains: '\Documents\ConnectWiseControl\Temp\'

Indicators

These rows show field, operator, and value matches.

Remote Schedule Task Lateral Movement via ITaskSchedulerService

#
Status
test
Severity
high
Author
Sagie Dulce, Dekel Paz
Source
github.com/SigmaHQ/sigma

Detects remote RPC calls to create or execute a scheduled task

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Remote Schedule Task Lateral Movement via ITaskSchedulerService
id: ace3ff54-e7fd-46bd-8ea0-74b49a0aca1d
status: test
description: Detects remote RPC calls to create or execute a scheduled task
references:
    - https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-tsch/d1058a28-7e02-4948-8b8d-4a347fa64931
    - https://github.com/jsecurity101/MSRPC-to-ATTACK/blob/ddd4608fe8684fcf2fcf9b48c5f0b3c28097f8a3/documents/MS-TSCH.md
    - https://github.com/zeronetworks/rpcfirewall
    - https://zeronetworks.com/blog/stopping-lateral-movement-via-the-rpc-firewall/
author: Sagie Dulce, Dekel Paz
date: 2022-01-01
tags:
    - attack.privilege-escalation
    - attack.persistence
    - attack.execution
    - attack.lateral-movement
    - attack.t1053
    - attack.t1053.002
logsource:
    product: rpc_firewall
    category: application
    definition: 'Requirements: install and apply the RPC Firewall to all processes with "audit:true action:block uuid:86d35949-83c9-4044-b424-db363231fd0c"'
detection:
    selection:
        EventLog: RPCFW
        EventID: 3
        InterfaceUuid: 86d35949-83c9-4044-b424-db363231fd0c
        OpNum:
            - 1
            - 3
            - 4
            - 10
            - 11
            - 12
            - 13
            - 14
            - 15
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    EventLog: RPCFW
    EventID: 3
    InterfaceUuid: 86d35949-83c9-4044-b424-db363231fd0c
    OpNum:
        - 1
        - 3
        - 4
        - 10
        - 11
        - 12
        - 13
        - 14
        - 15

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
EventLogeq
  • RPCFW corpus 17 (sigma 17)
field:"EventLog" kind:eq value:"RPCFW"
InterfaceUuideq
  • 86d35949-83c9-4044-b424-db363231fd0c corpus 2 (sigma 2)
field:"InterfaceUuid" kind:eq value:"86d35949-83c9-4044-b424-db363231fd0c"
OpNumeq
  • 1 corpus 3 (sigma 3)
  • 10
  • 11
  • 12 corpus 2 (sigma 2)
  • 13 corpus 2 (sigma 2)
  • 14
  • 15
  • 3
  • 4
field:"OpNum" kind:eq

Remote Server Service Abuse for Lateral Movement

#
Status
test
Severity
high
Author
Sagie Dulce, Dekel Paz
Source
github.com/SigmaHQ/sigma

Detects remote RPC calls to possibly abuse remote encryption service via MS-EFSR

Known False Positives

  • Administrative tasks on remote services

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Remote Server Service Abuse for Lateral Movement
id: 10018e73-06ec-46ec-8107-9172f1e04ff2
status: test
description: Detects remote RPC calls to possibly abuse remote encryption service via MS-EFSR
references:
    - https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-srvs/accf23b0-0f57-441c-9185-43041f1b0ee9
    - https://github.com/jsecurity101/MSRPC-to-ATTACK/blob/ddd4608fe8684fcf2fcf9b48c5f0b3c28097f8a3/documents/MS-SCMR.md
    - https://github.com/zeronetworks/rpcfirewall
    - https://zeronetworks.com/blog/stopping-lateral-movement-via-the-rpc-firewall/
author: Sagie Dulce, Dekel Paz
date: 2022-01-01
tags:
    - attack.lateral-movement
    - attack.execution
    - attack.t1569.002
logsource:
    product: rpc_firewall
    category: application
    definition: 'Requirements: install and apply the RPC Firewall to all processes with "audit:true action:block uuid:367abb81-9844-35f1-ad32-98f038001003'
detection:
    selection:
        EventLog: RPCFW
        EventID: 3
        InterfaceUuid: 367abb81-9844-35f1-ad32-98f038001003
    condition: selection
falsepositives:
    - Administrative tasks on remote services
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    EventLog: RPCFW
    EventID: 3
    InterfaceUuid: 367abb81-9844-35f1-ad32-98f038001003

Indicators

These rows show field, operator, and value matches.

Remove Immutable File Attribute - Auditd

#
Status
test
Severity
medium
Author
Jakob Weinzettl, oscd.community
Source
github.com/SigmaHQ/sigma

Detects removing immutable file attribute.

Known False Positives

  • Administrator interacting with immutable files (e.g. for instance backups).

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Remove Immutable File Attribute - Auditd
id: a5b977d6-8a81-4475-91b9-49dbfcd941f7
status: test
description: Detects removing immutable file attribute.
references:
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1222.002/T1222.002.md
author: Jakob Weinzettl, oscd.community
date: 2019-09-23
modified: 2022-11-26
tags:
    - attack.defense-impairment
    - attack.t1222.002
logsource:
    product: linux
    service: auditd
detection:
    selection:
        type: 'EXECVE'
        a0|contains: 'chattr'
        a1|contains: '-i'
    condition: selection
falsepositives:
    - Administrator interacting with immutable files (e.g. for instance backups).
level: medium
simulation:
    - type: atomic-red-team
      name: Remove immutable file attribute
      technique: T1222.002
      atomic_guid: e7469fe2-ad41-4382-8965-99b94dd3c13f

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    type: 'EXECVE'
    a0|contains: 'chattr'
    a1|contains: '-i'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
a0match
  • chattr
field:"a0" kind:match value:"chattr"
a1match
  • -i
field:"a1" kind:match value:"-i"
typeeq
  • EXECVE corpus 37 (sigma 31, splunk 6)
field:"type" kind:eq value:"EXECVE"

Rundll32 Execution Without CommandLine Parameters

#
Status
test
Severity
high
Author
Florian Roth (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects suspicious start of rundll32.exe without any parameters as found in CobaltStrike beacon activity

Known False Positives

  • Possible but rare

MITRE ATT&CK Coverage

TacticTechniques
Stealth

Telemetry Coverage

Rule Body

title: Rundll32 Execution Without CommandLine Parameters
id: 1775e15e-b61b-4d14-a1a3-80981298085a
status: test
description: Detects suspicious start of rundll32.exe without any parameters as found in CobaltStrike beacon activity
references:
    - https://www.cobaltstrike.com/help-opsec
    - https://twitter.com/ber_m1ng/status/1397948048135778309
author: Florian Roth (Nextron Systems)
date: 2021-05-27
modified: 2023-08-31
tags:
    - attack.stealth
    - attack.t1202
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        CommandLine|endswith:
            - '\rundll32.exe'
            - '\rundll32.exe"'
            - '\rundll32'
    filter:
        ParentImage|contains:
            - '\AppData\Local\'
            - '\Microsoft\Edge\'
    condition: selection and not filter
falsepositives:
    - Possible but rare
level: high

Stages and Predicates

Stage 0: condition

selection and not filter

Stage 1: selection

selection:
    CommandLine|endswith:
        - '\rundll32.exe'
        - '\rundll32.exe"'
        - '\rundll32'

Stage 2: not filter

filter:
    ParentImage|contains:
        - '\AppData\Local\'
        - '\Microsoft\Edge\'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLineends_with
  • \rundll32
  • \rundll32.exe corpus 3 (sigma 3)
  • \rundll32.exe"
field:"CommandLine" kind:ends_with

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
ParentImagematch\AppData\Local\excludes:ParentImage field:"ParentImage" value:"\AppData\Local\"
ParentImagematch\Microsoft\Edge\excludes:ParentImage field:"ParentImage" value:"\Microsoft\Edge\"

Suspicious Browser Activity

#
Status
test
Severity
high
Author
Mark Morowczynski '@markmorow', Gloria Lee, '@gleeiamglo'
Source
github.com/SigmaHQ/sigma

Indicates anomalous behavior based on suspicious sign-in activity across multiple tenants from different countries in the same browser

Known False Positives

  • We recommend investigating the sessions flagged by this detection in the context of other sign-ins from the user.

MITRE ATT&CK Coverage

TacticTechniques
Initial Access
Persistence
Privilege Escalation
Stealth

Rule Body

title: Suspicious Browser Activity
id: 944f6adb-7a99-4c69-80c1-b712579e93e6
status: test
description: Indicates anomalous behavior based on suspicious sign-in activity across multiple tenants from different countries in the same browser
references:
    - https://learn.microsoft.com/en-us/entra/id-protection/concept-identity-protection-risks#suspicious-browser
    - https://learn.microsoft.com/en-us/entra/architecture/security-operations-user-accounts#unusual-sign-ins
author: Mark Morowczynski '@markmorow', Gloria Lee, '@gleeiamglo'
date: 2023-09-03
tags:
    - attack.stealth
    - attack.t1078
    - attack.persistence
    - attack.privilege-escalation
    - attack.initial-access
logsource:
    product: azure
    service: riskdetection
detection:
    selection:
        riskEventType: 'suspiciousBrowser'
    condition: selection
falsepositives:
    - We recommend investigating the sessions flagged by this detection in the context of other sign-ins from the user.
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    riskEventType: 'suspiciousBrowser'

Indicators

These rows show field, operator, and value matches.

Suspicious File Download From File Sharing Websites - File Stream

#
Status
test
Severity
high
Author
Florian Roth (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects the download of suspicious file type from a well-known file and paste sharing domain

Known False Positives

  • Some false positives might occur with binaries download via Github

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 15: FileCreateStreamHash

Rule Body

title: Suspicious File Download From File Sharing Websites -  File Stream
id: 52182dfb-afb7-41db-b4bc-5336cb29b464
related:
    - id: ae02ed70-11aa-4a22-b397-c0d0e8f6ea99
      type: similar
    - id: 8b48ad89-10d8-4382-a546-50588c410f0d
      type: similar
    - id: d635249d-86b5-4dad-a8c7-d7272b788586
      type: similar
    - id: e0f8ab85-0ac9-423b-a73a-81b3c7b1aa97
      type: similar
    - id: 7b434893-c57d-4f41-908d-6a17bf1ae98f
      type: similar
    - id: 8518ed3d-f7c9-4601-a26c-f361a4256a0c
      type: similar
    - id: 42a5f1e7-9603-4f6d-97ae-3f37d130d794
      type: similar
    - id: 56454143-524f-49fb-b1c6-3fb8b1ad41fb
      type: similar
    - id: b6e04788-29e1-4557-bb14-77f761848ab8
      type: similar
    - id: a0d7e4d2-bede-4141-8896-bc6e237e977c
      type: similar
    - id: 297ae038-edc2-4b2e-bb3e-7c5fc94dd5c7
      type: similar
status: test
description: Detects the download of suspicious file type from a well-known file and paste sharing domain
references:
    - https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=90015
    - https://www.cisa.gov/uscert/ncas/alerts/aa22-321a
    - https://fabian-voith.de/2020/06/25/sysmon-v11-1-reads-alternate-data-streams/
    - https://www.microsoft.com/en-us/security/blog/2024/01/17/new-ttps-observed-in-mint-sandstorm-campaign-targeting-high-profile-individuals-at-universities-and-research-orgs/
author: Florian Roth (Nextron Systems)
date: 2022-08-24
modified: 2026-03-29
tags:
    - attack.stealth
    - attack.s0139
    - attack.t1564.004
logsource:
    product: windows
    category: create_stream_hash
detection:
    selection_domain:
        Contents|contains:
            - '.githubusercontent.com'       # Includes both gists and github repositories / Michael Haag (idea)
            - '0x0.st'
            - 'anonfiles.com'
            - 'bashupload.com'
            - 'cdn.discordapp.com'
            - 'chunk.io'
            - 'ddns.net'
            - 'dl.dropboxusercontent.com'
            - 'ghostbin.co'
            - 'github.com'
            - 'glitch.me'
            - 'gofile.io'
            - 'hastebin.com'
            - 'mediafire.com'
            - 'mega.nz'
            - 'onrender.com'
            - 'pages.dev'
            - 'paste.ee'
            - 'pastebin.com'
            - 'pastebin.pl'
            - 'pastetext.net'
            - 'pixeldrain.com'
            - 'privatlab.com'
            - 'privatlab.net'
            - 'send.exploit.in'
            - 'sendspace.com'
            - 'storage.googleapis.com'
            - 'storjshare.io'
            - 'supabase.co'
            - 'temp.sh'
            - 'transfer.sh'
            - 'trycloudflare.com'
            - 'ufile.io'
            - 'w3spaces.com'
            - 'workers.dev'
            - 'x0.at'
    selection_extension:
        TargetFilename|contains:
            - '.cpl:Zone'
            - '.dll:Zone'
            - '.exe:Zone'
            - '.hta:Zone'
            - '.lnk:Zone'
            - '.one:Zone'
            - '.vbe:Zone'
            - '.vbs:Zone'
            - '.xll:Zone'
    condition: all of selection_*
falsepositives:
    - Some false positives might occur with binaries download via Github
level: high

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_domain

selection_domain:
    Contents|contains:
        - '.githubusercontent.com'
        - '0x0.st'
        - 'anonfiles.com'
        - 'bashupload.com'
        - 'cdn.discordapp.com'
        - 'chunk.io'
        - 'ddns.net'
        - 'dl.dropboxusercontent.com'
        - 'ghostbin.co'
        - 'github.com'
        - 'glitch.me'
        - 'gofile.io'
        - 'hastebin.com'
        - 'mediafire.com'
        - 'mega.nz'
        - 'onrender.com'
        - 'pages.dev'
        - 'paste.ee'
        - 'pastebin.com'
        - 'pastebin.pl'
        - 'pastetext.net'
        - 'pixeldrain.com'
        - 'privatlab.com'
        - 'privatlab.net'
        - 'send.exploit.in'
        - 'sendspace.com'
        - 'storage.googleapis.com'
        - 'storjshare.io'
        - 'supabase.co'
        - 'temp.sh'
        - 'transfer.sh'
        - 'trycloudflare.com'
        - 'ufile.io'
        - 'w3spaces.com'
        - 'workers.dev'
        - 'x0.at'

Stage 2: selection_extension

selection_extension:
    TargetFilename|contains:
        - '.cpl:Zone'
        - '.dll:Zone'
        - '.exe:Zone'
        - '.hta:Zone'
        - '.lnk:Zone'
        - '.one:Zone'
        - '.vbe:Zone'
        - '.vbs:Zone'
        - '.xll:Zone'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Contentsmatch
  • .githubusercontent.com corpus 2 (sigma 2)
  • 0x0.st corpus 2 (sigma 2)
  • anonfiles.com corpus 2 (sigma 2)
  • bashupload.com corpus 2 (sigma 2)
  • cdn.discordapp.com corpus 2 (sigma 2)
  • chunk.io corpus 2 (sigma 2)
  • ddns.net corpus 2 (sigma 2)
  • dl.dropboxusercontent.com corpus 2 (sigma 2)
  • ghostbin.co corpus 2 (sigma 2)
  • github.com corpus 2 (sigma 2)
  • glitch.me corpus 2 (sigma 2)
  • gofile.io corpus 2 (sigma 2)
  • hastebin.com corpus 2 (sigma 2)
  • mediafire.com corpus 2 (sigma 2)
  • mega.nz corpus 2 (sigma 2)
  • onrender.com corpus 2 (sigma 2)
  • pages.dev corpus 2 (sigma 2)
  • paste.ee corpus 2 (sigma 2)
  • pastebin.com corpus 2 (sigma 2)
  • pastebin.pl corpus 2 (sigma 2)
  • pastetext.net corpus 2 (sigma 2)
  • pixeldrain.com corpus 2 (sigma 2)
  • privatlab.com corpus 2 (sigma 2)
  • privatlab.net corpus 2 (sigma 2)
  • send.exploit.in corpus 2 (sigma 2)
  • sendspace.com corpus 2 (sigma 2)
  • storage.googleapis.com corpus 2 (sigma 2)
  • storjshare.io corpus 2 (sigma 2)
  • supabase.co corpus 2 (sigma 2)
  • temp.sh corpus 2 (sigma 2)
  • transfer.sh corpus 2 (sigma 2)
  • trycloudflare.com corpus 2 (sigma 2)
  • ufile.io corpus 2 (sigma 2)
  • w3spaces.com corpus 2 (sigma 2)
  • workers.dev corpus 2 (sigma 2)
  • x0.at corpus 2 (sigma 2)
field:"Contents" kind:match
TargetFilenamematch
  • .cpl:Zone
  • .dll:Zone corpus 3 (sigma 3)
  • .exe:Zone corpus 3 (sigma 3)
  • .hta:Zone corpus 3 (sigma 3)
  • .lnk:Zone corpus 2 (sigma 2)
  • .one:Zone corpus 2 (sigma 2)
  • .vbe:Zone corpus 3 (sigma 3)
  • .vbs:Zone corpus 3 (sigma 3)
  • .xll:Zone corpus 3 (sigma 3)
field:"TargetFilename" kind:match

Suspicious GUP Usage

#
Status
test
Severity
high
Author
Florian Roth (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects execution of the Notepad++ updater in a suspicious directory, which is often used in DLL side-loading attacks

Known False Positives

  • Execution of tools named GUP.exe and located in folders different than Notepad++\updater

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Suspicious GUP Usage
id: 0a4f6091-223b-41f6-8743-f322ec84930b
status: test
description: Detects execution of the Notepad++ updater in a suspicious directory, which is often used in DLL side-loading attacks
references:
    - https://www.fireeye.com/blog/threat-research/2018/09/apt10-targeting-japanese-corporations-using-updated-ttps.html
author: Florian Roth (Nextron Systems)
date: 2019-02-06
modified: 2022-08-13
tags:
    - attack.privilege-escalation
    - attack.persistence
    - attack.execution
    - attack.stealth
    - attack.t1574.001
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\GUP.exe'
    filter_programfiles:
        Image|endswith:
            - '\Program Files\Notepad++\updater\GUP.exe'
            - '\Program Files (x86)\Notepad++\updater\GUP.exe'
    filter_user:
        Image|contains: '\Users\'
        Image|endswith:
            - '\AppData\Local\Notepad++\updater\GUP.exe'
            - '\AppData\Roaming\Notepad++\updater\GUP.exe'
    condition: selection and not 1 of filter_*
falsepositives:
    - Execution of tools named GUP.exe and located in folders different than Notepad++\updater
level: high

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_*

Stage 1: selection

selection:
    Image|endswith: '\GUP.exe'

Stage 2: not filter_*

filter_programfiles:
    Image|endswith:
        - '\Program Files\Notepad++\updater\GUP.exe'
        - '\Program Files (x86)\Notepad++\updater\GUP.exe'
filter_user:
    Image|contains: '\Users\'
    Image|endswith:
        - '\AppData\Local\Notepad++\updater\GUP.exe'
        - '\AppData\Roaming\Notepad++\updater\GUP.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \GUP.exe corpus 5 (sigma 5)
field:"Image" kind:ends_with value:"\GUP.exe"

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Imageends_with\AppData\Local\Notepad++\updater\GUP.exeexcludes:Image field:"Image" value:"\AppData\Local\Notepad++\updater\GUP.exe"
Imageends_with\AppData\Roaming\Notepad++\updater\GUP.exeexcludes:Image field:"Image" value:"\AppData\Roaming\Notepad++\updater\GUP.exe"
Imagematch\Users\excludes:Image field:"Image" value:"\Users\"
Imageends_with\Program Files (x86)\Notepad++\updater\GUP.exeexcludes:Image field:"Image" value:"\Program Files (x86)\Notepad++\updater\GUP.exe"
Imageends_with\Program Files\Notepad++\updater\GUP.exeexcludes:Image field:"Image" value:"\Program Files\Notepad++\updater\GUP.exe"

Suspicious User Agent

#
Status
test
Severity
high
Author
Florian Roth (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects suspicious malformed user agent strings in proxy logs

MITRE ATT&CK Coverage

Rule Body

title: Suspicious User Agent
id: 7195a772-4b3f-43a4-a210-6a003d65caa1
status: test
description: Detects suspicious malformed user agent strings in proxy logs
references:
    - https://github.com/fastly/waf_testbed/blob/8bfc406551f3045e418cbaad7596cff8da331dfc/templates/default/scanners-user-agents.data.erb
author: Florian Roth (Nextron Systems)
date: 2017-07-08
modified: 2022-10-31
tags:
    - attack.command-and-control
    - attack.t1071.001
logsource:
    category: proxy
detection:
    selection1:
        c-useragent|startswith:
            - 'user-agent'  # User-Agent: User-Agent:
            - 'Mozilla/3.0 '
            - 'Mozilla/2.0 '
            - 'Mozilla/1.0 '
            - 'Mozilla '  # missing slash
            - ' Mozilla/'  # leading space
            - 'Mozila/'  # single 'l'
            - 'Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol'  # https://twitter.com/NtSetDefault/status/1303643299509567488
    selection2:
        c-useragent|contains:
            - ' (compatible;MSIE '  # typical typo - missing space
            - '.0;Windows NT '  # typical typo - missing space
            - 'loader'  # https://twitter.com/securityonion/status/1522614635152744453?s=20&t=gHyPTSq5A27EqKwrCd9ohg
    selection3:
        c-useragent:
            - '_'
            - 'CertUtil URL Agent'  # https://twitter.com/stvemillertime/status/985150675527974912
            - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0)'  # CobaltStrike Beacon https://unit42.paloaltonetworks.com/tracking-oceanlotus-new-downloader-kerrdown/
            - 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0'  # used by APT28 malware https://threatvector.cylance.com/en_us/home/inside-the-apt28-dll-backdoor-blitz.html
            - 'HTTPS'  # https://twitter.com/stvemillertime/status/1204437531632250880
            - 'Erbium-UA-4ce7c27cb4be9d32e333bf032c88235a'  # https://www.cyfirma.com/outofband/erbium-stealer-malware-report
            - 'x'  # Use by Racoon Stealer but could be something else
            - 'xxx'  # Use by Racoon Stealer but could be something else
    falsepositives:
        - c-useragent: 'Mozilla/3.0 * Acrobat *'  # Acrobat with linked content
        - cs-host|endswith: # Adobe product traffic, example: Mozilla/3.0 (compatible; Adobe Synchronizer 10.12.20000)
              - '.acrobat.com'
              - '.adobe.com'
              - '.adobe.io'
    condition: 1 of selection* and not falsepositives
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

1 of selection* and not falsepositives

Stage 1: selection1

selection1:
    c-useragent|startswith:
        - 'user-agent'
        - 'Mozilla/3.0 '
        - 'Mozilla/2.0 '
        - 'Mozilla/1.0 '
        - 'Mozilla '
        - ' Mozilla/'
        - 'Mozila/'
        - 'Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol'

Stage 2: selection2

selection2:
    c-useragent|contains:
        - ' (compatible;MSIE '
        - '.0;Windows NT '
        - 'loader'

Stage 3: selection3

selection3:
    c-useragent:
        - '_'
        - 'CertUtil URL Agent'
        - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0)'
        - 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0'
        - 'HTTPS'
        - 'Erbium-UA-4ce7c27cb4be9d32e333bf032c88235a'
        - 'x'
        - 'xxx'

Stage 4: not falsepositives

falsepositives:
    - c-useragent: 'Mozilla/3.0 * Acrobat *'
    - cs-host|endswith:
          - '.acrobat.com'
          - '.adobe.com'
          - '.adobe.io'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
c-useragenteq
  • CertUtil URL Agent
  • Erbium-UA-4ce7c27cb4be9d32e333bf032c88235a
  • HTTPS
  • Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0)
  • Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
  • _
  • x
  • xxx
field:"c-useragent" kind:eq
c-useragentmatch
  • (compatible;MSIE
  • .0;Windows NT
  • loader
field:"c-useragent" kind:match
c-useragentstarts_with
  • Mozilla/
  • Mozila/
  • Mozilla
  • Mozilla/1.0
  • Mozilla/2.0
  • Mozilla/3.0
  • Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol
  • user-agent
field:"c-useragent" kind:starts_with

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
c-useragentwildcardMozilla/3.0 * Acrobat *excludes:c-useragent field:"c-useragent" value:"Mozilla/3.0 * Acrobat *"
cs-hostends_with.acrobat.comexcludes:cs-host field:"cs-host" value:".acrobat.com"
cs-hostends_with.adobe.comexcludes:cs-host field:"cs-host" value:".adobe.com"
cs-hostends_with.adobe.ioexcludes:cs-host field:"cs-host" value:".adobe.io"

Suspicious Windows Defender Folder Exclusion Added Via Reg.EXE

#
Status
test
Severity
medium
Author
frack113
Source
github.com/SigmaHQ/sigma

Detects the usage of "reg.exe" to add Defender folder exclusions. Qbot has been seen using this technique to add exclusions for folders within AppData and ProgramData.

Known False Positives

  • Legitimate use

MITRE ATT&CK Coverage

TacticTechniques
Defense Impairment

Telemetry Coverage

Rule Body

title: Suspicious Windows Defender Folder Exclusion Added Via Reg.EXE
id: 48917adc-a28e-4f5d-b729-11e75da8941f
status: test
description: Detects the usage of "reg.exe" to add Defender folder exclusions. Qbot has been seen using this technique to add exclusions for folders within AppData and ProgramData.
references:
    - https://thedfirreport.com/2022/02/07/qbot-likes-to-move-it-move-it/
    - https://redcanary.com/threat-detection-report/threats/qbot/
author: frack113
date: 2022-02-13
modified: 2023-02-04
tags:
    - attack.defense-impairment
    - attack.t1685
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\reg.exe'
        CommandLine|contains:
            - 'SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths'
            - 'SOFTWARE\Microsoft\Microsoft Antimalware\Exclusions\Paths'
        CommandLine|contains|all:
            - 'ADD '
            - '/t '
            - 'REG_DWORD '
            - '/v '
            - '/d '
            - '0'
    condition: selection
falsepositives:
    - Legitimate use
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    Image|endswith: '\reg.exe'
    CommandLine|contains:
        - 'SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths'
        - 'SOFTWARE\Microsoft\Microsoft Antimalware\Exclusions\Paths'
    CommandLine|contains|all:
        - 'ADD '
        - '/t '
        - 'REG_DWORD '
        - '/v '
        - '/d '
        - '0'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • /d corpus 2 (sigma 2)
  • /t corpus 3 (sigma 3)
  • /v corpus 2 (sigma 2)
  • 0 corpus 6 (sigma 6)
  • ADD corpus 12 (sigma 12)
  • REG_DWORD
  • SOFTWARE\Microsoft\Microsoft Antimalware\Exclusions\Paths
  • SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths
field:"CommandLine" kind:match
Imageends_with
  • \reg.exe corpus 58 (sigma 58)
field:"Image" kind:ends_with value:"\reg.exe"

UNC4841 - SSL Certificate Exfiltration Via Openssl

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

Detects the execution of "openssl" to connect to an IP address. This techniques was used by UNC4841 to exfiltrate SSL certificates and as a C2 channel with named pipes. Investigate commands executed in the temporal vicinity of this command.

MITRE ATT&CK Coverage

Telemetry Coverage

PlatformRecord / event type
LinuxEvent ID 1: Process Create

Rule Body

title: UNC4841 - SSL Certificate Exfiltration Via Openssl
id: 60911c07-f989-4362-84af-c609828ef829
status: test
description: Detects the execution of "openssl" to connect to an IP address. This techniques was used by UNC4841 to exfiltrate SSL certificates and as a C2 channel with named pipes. Investigate commands executed in the temporal vicinity of this command.
references:
    - https://www.mandiant.com/resources/blog/barracuda-esg-exploited-globally
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-06-16
tags:
    - attack.stealth
    - attack.t1140
    - detection.emerging-threats
logsource:
    product: linux
    category: process_creation
detection:
    selection:
        Image|endswith: '/openssl'
        CommandLine|re: '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
        CommandLine|contains|all:
            - 's_client'
            - '-quiet'
            - '-connect'
        CommandLine|contains:
            - ':443'
            - ':8080'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    Image|endswith: '/openssl'
    CommandLine|re: '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
    CommandLine|contains|all:
        - 's_client'
        - '-quiet'
        - '-connect'
    CommandLine|contains:
        - ':443'
        - ':8080'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • -connect
  • -quiet
  • :443
  • :8080
  • s_client
field:"CommandLine" kind:match
CommandLineregex_match
  • [0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}
field:"CommandLine" kind:regex_match value:"[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}"
Imageends_with
  • /openssl corpus 4 (sigma 4)
field:"Image" kind:ends_with value:"/openssl"

Unsigned .node File Loaded

#
Status
experimental
Severity
medium
Author
Jonathan Beierle (@hullabrian)
Source
github.com/SigmaHQ/sigma

Detects the loading of unsigned .node files. Adversaries may abuse a lack of .node integrity checking to execute arbitrary code inside of trusted applications such as Slack. .node files are native add-ons for Electron-based applications, which are commonly used for desktop applications like Slack, Discord, and Visual Studio Code. This technique has been observed in the DripLoader malware, which uses unsigned .node files to load malicious native code into Electron applications.

Known False Positives

  • VsCode extensions or similar legitimate tools might use unsigned .node files. These should be investigated on a case-by-case basis, and whitelisted if determined to be benign.

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 7: Image loaded

Rule Body

title: Unsigned .node File Loaded
id: e5f5c693-52d7-4de5-88ae-afbfbce85595
status: experimental
description: |
    Detects the loading of unsigned .node files.
    Adversaries may abuse a lack of .node integrity checking to execute arbitrary code inside of trusted applications such as Slack.
    .node files are native add-ons for Electron-based applications, which are commonly used for desktop applications like Slack, Discord, and Visual Studio Code.
    This technique has been observed in the DripLoader malware, which uses unsigned .node files to load malicious native code into Electron applications.
references:
    - https://www.coreycburton.com/blog/driploader-case-study
    - https://github.com/CoreyCBurton/DripLoaderNG
    - https://www.electronjs.org/docs/latest/tutorial/native-code-and-electron
author: Jonathan Beierle (@hullabrian)
date: 2025-11-22
modified: 2026-08-27
tags:
    - attack.execution
    - attack.privilege-escalation
    - attack.persistence
    - attack.stealth
    - attack.t1129
    - attack.t1574.001
    - attack.t1036.005
logsource:
    category: image_load
    product: windows
detection:
    selection_node_extension:
        ImageLoaded|endswith: '.node'
    selection_status:
        - Signed: 'false'
        - SignatureStatus: 'Unavailable'
    filter_optional_vscode_jupyter:
        Image|endswith: '\Code.exe'
        ImageLoaded|contains: '.vscode\extensions\ms-toolsai.jupyter-'
        ImageLoaded|endswith:
            - '\electron.napi.node'
            - '\node.napi.glibc.node'
    filter_optional_vscode_core:
        Image|contains: '\Microsoft VS Code\Code.exe'
        ImageLoaded|contains: '\Microsoft VS Code\resources\app\node_modules'
    filter_optional_evernote:
        Image|contains:
            - 'C:\Program Files (x86)\'
            - 'C:\Program Files\'
            - '\AppData\Local\Programs\'
        Image|endswith: '\Evernote\Evernote.exe'
        ImageLoaded|contains: '\Evernote\resources\app'
    condition: all of selection_* and not 1 of filter_optional_*
falsepositives:
    - VsCode extensions or similar legitimate tools might use unsigned .node files. These should be investigated on a case-by-case basis, and whitelisted if determined to be benign.
level: medium

Stages and Predicates

Stage 0: condition

all of selection_* and not 1 of filter_optional_*

Stage 1: selection_node_extension

selection_node_extension:
    ImageLoaded|endswith: '.node'

Stage 2: selection_status

selection_status:
    - Signed: 'false'
    - SignatureStatus: 'Unavailable'

Stage 3: not filter_optional_*

filter_optional_vscode_jupyter:
    Image|endswith: '\Code.exe'
    ImageLoaded|contains: '.vscode\extensions\ms-toolsai.jupyter-'
    ImageLoaded|endswith:
        - '\electron.napi.node'
        - '\node.napi.glibc.node'
filter_optional_vscode_core:
    Image|contains: '\Microsoft VS Code\Code.exe'
    ImageLoaded|contains: '\Microsoft VS Code\resources\app\node_modules'
filter_optional_evernote:
    Image|contains:
        - 'C:\Program Files (x86)\'
        - 'C:\Program Files\'
        - '\AppData\Local\Programs\'
    Image|endswith: '\Evernote\Evernote.exe'
    ImageLoaded|contains: '\Evernote\resources\app'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ImageLoadedends_with
  • .node
field:"ImageLoaded" kind:ends_with value:".node"
SignatureStatuseq
  • Unavailable corpus 2 (sigma 1, splunk 1)
field:"SignatureStatus" kind:eq value:"Unavailable"
Signedeq
  • false corpus 9 (splunk 5, sigma 4)
field:"Signed" kind:eq value:"false"

Exclusions

The rule actively suppresses these predicates.

USB Device Plugged

#
Status
test
Severity
low
Author
Florian Roth (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects plugged/unplugged USB devices

Known False Positives

  • Legitimate administrative activity

MITRE ATT&CK Coverage

TacticTechniques
Initial Access

Telemetry Coverage

Rule Body

title: USB Device Plugged
id: 1a4bd6e3-4c6e-405d-a9a3-53a116e341d4
status: test
description: Detects plugged/unplugged USB devices
references:
    - https://df-stream.com/2014/01/the-windows-7-event-log-and-usb-device/
    - https://www.techrepublic.com/article/how-to-track-down-usb-flash-drive-usage-in-windows-10s-event-viewer/
author: Florian Roth (Nextron Systems)
date: 2017-11-09
modified: 2021-11-30
tags:
    - attack.initial-access
    - attack.t1200
logsource:
    product: windows
    service: driver-framework
    definition: 'Requires enabling and collection of the Microsoft-Windows-DriverFrameworks-UserMode/Operational eventlog'
detection:
    selection:
        EventID:
            - 2003  # Loading drivers
            - 2100  # Pnp or power management
            - 2102  # Pnp or power management
    condition: selection
falsepositives:
    - Legitimate administrative activity
level: low

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    EventID:
        - 2003
        - 2100
        - 2102

WinAPI Library Calls Via PowerShell Scripts

#
Status
test
Severity
medium
Author
Nikita Nazarov, oscd.community, Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects calls to WinAPI libraries from PowerShell scripts. Attackers can often leverage these APIs to avoid detection based on typical PowerShell function calls. Use this rule as a basis to hunt for interesting scripts.

Known False Positives

  • Carbon PowerShell Module (https://github.com/webmd-health-services/Carbon)
  • Chocolatey scripts

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: WinAPI Library Calls Via PowerShell Scripts
id: 19d65a1c-8540-4140-8062-8eb00db0bba5
related:
    - id: ba3f5c1b-6272-4119-9dbd-0bc8d21c2702
      type: similar
    - id: 03d83090-8cba-44a0-b02f-0b756a050306
      type: similar
    - id: 9f22ccd5-a435-453b-af96-bf99cbb594d4
      type: similar
status: test
description: Detects calls to WinAPI libraries from PowerShell scripts. Attackers can often leverage these APIs to avoid detection based on typical PowerShell function calls. Use this rule as a basis to hunt for interesting scripts.
references:
    - https://speakerdeck.com/heirhabarov/hunting-for-powershell-abuse
author: Nikita Nazarov, oscd.community, Nasreddine Bencherchali (Nextron Systems)
date: 2023-07-21
tags:
    - attack.execution
    - attack.t1059.001
    - attack.t1106
    - detection.threat-hunting
logsource:
    product: windows
    category: ps_script
    definition: 'Requirements: Script Block Logging must be enabled'
detection:
    selection:
        ScriptBlockText|contains:
            - 'Advapi32.dll'
            - 'kernel32.dll'
            - 'KernelBase.dll'
            - 'ntdll.dll'
            - 'secur32.dll'
            - 'user32.dll'
    condition: selection
falsepositives:
    - Carbon PowerShell Module (https://github.com/webmd-health-services/Carbon)
    - Chocolatey scripts
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ScriptBlockText|contains:
        - 'Advapi32.dll'
        - 'kernel32.dll'
        - 'KernelBase.dll'
        - 'ntdll.dll'
        - 'secur32.dll'
        - 'user32.dll'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ScriptBlockTextmatch
  • Advapi32.dll
  • KernelBase.dll
  • kernel32.dll
  • ntdll.dll
  • secur32.dll
  • user32.dll
field:"ScriptBlockText" kind:match

WinDivert Driver Load

#
Status
test
Severity
high
Author
Florian Roth (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects the load of the Windiver driver, a powerful user-mode capture/sniffing/modification/blocking/re-injection package for Windows

Known False Positives

  • Legitimate WinDivert driver usage

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 6: Driver loaded

Rule Body

title: WinDivert Driver Load
id: 679085d5-f427-4484-9f58-1dc30a7c426d
status: test
description: Detects the load of the Windiver driver, a powerful user-mode capture/sniffing/modification/blocking/re-injection package for Windows
references:
    - https://reqrypt.org/windivert-doc.html
    - https://rastamouse.me/ntlm-relaying-via-cobalt-strike/
author: Florian Roth (Nextron Systems)
date: 2021-07-30
modified: 2024-11-23
tags:
    - attack.credential-access
    - attack.collection
    - attack.defense-impairment
    - attack.t1599.001
    - attack.t1557.001
logsource:
    category: driver_load
    product: windows
detection:
    selection:
        - ImageLoaded|contains:
              - '\WinDivert.sys'
              - '\WinDivert64.sys'
              # Other used names
              - '\NordDivert.sys'
              - '\lingtiwfp.sys'
              - '\eswfp.sys'
        - Hashes|contains:
              - 'IMPHASH=0604bb7cb4bb851e2168d5c7d9399087'
              - 'IMPHASH=2e5f0e649d97f32b03c09e4686d0574f'
              - 'IMPHASH=52f8aa269f69f0edad9e8fcdaedce276'
              - 'IMPHASH=c0e5d314da39dbf65a2dbff409cc2c76'
              - 'IMPHASH=58623490691babe8330adc81cd04a663'
              - 'IMPHASH=8ee39b48656e4d6b8459d7ba7da7438b'
              - 'IMPHASH=45ee545ae77e8d43fc70ede9efcd4c96'
              - 'IMPHASH=a1b2e245acd47e4a348e1a552a02859a'
              - 'IMPHASH=2a5f85fe4609461c6339637594fa9b0a'
              - 'IMPHASH=6b2c6f95233c2914d1d488ee27531acc'
              - 'IMPHASH=9f2fdd3f9ab922bbb0560a7df46f4342'
              - 'IMPHASH=d8a719865c448b1bd2ec241e46ac1c88'
              - 'IMPHASH=0ea54f8c9af4a2fe8367fa457f48ed38'
              - 'IMPHASH=9d519ae0a0864d6d6ae3f8b6c9c70af6'
              - 'IMPHASH=a74929edfc3289895e3f2885278947ae'
              - 'IMPHASH=a66b476c2d06c370f0a53b5537f2f11e'
              - 'IMPHASH=bdcd836a46bc2415773f6b5ea77a46e4'
              - 'IMPHASH=c28cd6ccd83179e79dac132a553693d9'
    condition: selection
falsepositives:
    - Legitimate WinDivert driver usage
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    - ImageLoaded|contains:
          - '\WinDivert.sys'
          - '\WinDivert64.sys'
          - '\NordDivert.sys'
          - '\lingtiwfp.sys'
          - '\eswfp.sys'
    - Hashes|contains:
          - 'IMPHASH=0604bb7cb4bb851e2168d5c7d9399087'
          - 'IMPHASH=2e5f0e649d97f32b03c09e4686d0574f'
          - 'IMPHASH=52f8aa269f69f0edad9e8fcdaedce276'
          - 'IMPHASH=c0e5d314da39dbf65a2dbff409cc2c76'
          - 'IMPHASH=58623490691babe8330adc81cd04a663'
          - 'IMPHASH=8ee39b48656e4d6b8459d7ba7da7438b'
          - 'IMPHASH=45ee545ae77e8d43fc70ede9efcd4c96'
          - 'IMPHASH=a1b2e245acd47e4a348e1a552a02859a'
          - 'IMPHASH=2a5f85fe4609461c6339637594fa9b0a'
          - 'IMPHASH=6b2c6f95233c2914d1d488ee27531acc'
          - 'IMPHASH=9f2fdd3f9ab922bbb0560a7df46f4342'
          - 'IMPHASH=d8a719865c448b1bd2ec241e46ac1c88'
          - 'IMPHASH=0ea54f8c9af4a2fe8367fa457f48ed38'
          - 'IMPHASH=9d519ae0a0864d6d6ae3f8b6c9c70af6'
          - 'IMPHASH=a74929edfc3289895e3f2885278947ae'
          - 'IMPHASH=a66b476c2d06c370f0a53b5537f2f11e'
          - 'IMPHASH=bdcd836a46bc2415773f6b5ea77a46e4'
          - 'IMPHASH=c28cd6ccd83179e79dac132a553693d9'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Hashesmatch
  • IMPHASH=0604bb7cb4bb851e2168d5c7d9399087
  • IMPHASH=0ea54f8c9af4a2fe8367fa457f48ed38
  • IMPHASH=2a5f85fe4609461c6339637594fa9b0a
  • IMPHASH=2e5f0e649d97f32b03c09e4686d0574f
  • IMPHASH=45ee545ae77e8d43fc70ede9efcd4c96
  • IMPHASH=52f8aa269f69f0edad9e8fcdaedce276
  • IMPHASH=58623490691babe8330adc81cd04a663
  • IMPHASH=6b2c6f95233c2914d1d488ee27531acc
  • IMPHASH=8ee39b48656e4d6b8459d7ba7da7438b
  • IMPHASH=9d519ae0a0864d6d6ae3f8b6c9c70af6
  • IMPHASH=9f2fdd3f9ab922bbb0560a7df46f4342
  • IMPHASH=a1b2e245acd47e4a348e1a552a02859a
  • IMPHASH=a66b476c2d06c370f0a53b5537f2f11e
  • IMPHASH=a74929edfc3289895e3f2885278947ae
  • IMPHASH=bdcd836a46bc2415773f6b5ea77a46e4
  • IMPHASH=c0e5d314da39dbf65a2dbff409cc2c76
  • IMPHASH=c28cd6ccd83179e79dac132a553693d9
  • IMPHASH=d8a719865c448b1bd2ec241e46ac1c88
field:"Hashes" kind:match
ImageLoadedmatch
  • \NordDivert.sys
  • \WinDivert.sys
  • \WinDivert64.sys
  • \eswfp.sys
  • \lingtiwfp.sys
field:"ImageLoaded" kind:match

Back to all Sigma rules