Detection rules › Sigma
Sigma rules: 1p
Account Disabled or Blocked for Sign in Attempts
#Detects when an account is disabled or blocked for sign in but tried to log in
Known False Positives
- Account disabled or blocked in error
- Automation account has been blocked or disabled
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access | |
| Persistence | |
| Privilege Escalation | |
| Stealth |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Entra ID | SigninLogs sign-in event: Sign-in attempted against a disabled account |
Rules Detecting the Same Action
These rules filter on the same operation.
Rule Body
title: Account Disabled or Blocked for Sign in Attempts
id: 4afac85c-224a-4dd7-b1af-8da40e1c60bd
status: test
description: Detects when an account is disabled or blocked for sign in but tried to log in
references:
- https://learn.microsoft.com/en-gb/entra/architecture/security-operations-privileged-accounts
author: Yochana Henderson, '@Yochana-H'
date: 2022-06-17
tags:
- attack.privilege-escalation
- attack.persistence
- attack.initial-access
- attack.stealth
- attack.t1078.004
logsource:
product: azure
service: signinlogs
detection:
selection:
ResultType: 50057
ResultDescription: Failure
condition: selection
falsepositives:
- Account disabled or blocked in error
- Automation account has been blocked or disabled
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
ResultType: 50057
ResultDescription: Failure
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
ResultDescription | eq |
| field:"azure_ad::result_reason" kind:eq value:"Failure" |
ResultType | eq |
| field:"ResultType" kind:eq value:"50057" |
Activity from Infrequent Country
#Detects when a Microsoft Cloud App Security reported when an activity occurs from a location that wasn't recently or never visited by any user in the organization.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Command & Control |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Microsoft 365 | Activity from infrequent country |
Rule Body
title: Activity from Infrequent Country
id: 0f2468a2-5055-4212-a368-7321198ee706
status: test
description: Detects when a Microsoft Cloud App Security reported when an activity occurs from a location that wasn't recently or never visited by any user in the organization.
references:
- https://learn.microsoft.com/en-us/defender-cloud-apps/anomaly-detection-policy
- https://learn.microsoft.com/en-us/defender-cloud-apps/policy-template-reference
author: Austin Songer @austinsonger
date: 2021-08-23
modified: 2022-10-09
tags:
- attack.command-and-control
- attack.t1573
logsource:
service: threat_management
product: m365
detection:
selection:
eventSource: SecurityComplianceCenter
eventName: 'Activity from infrequent country'
status: success
condition: selection
falsepositives:
- Unknown
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
eventSource: SecurityComplianceCenter
eventName: 'Activity from infrequent country'
status: success
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
eventName | eq |
| field:"aws::eventName" kind:eq value:"Activity from infrequent country" |
eventSource | eq |
| field:"aws::eventSource" kind:eq value:"SecurityComplianceCenter" |
status | eq |
| field:"status" kind:eq value:"success" |
Authencesn Crypto Module Load via Modprobe - Copy-Fail Indicator
#Detects kernel auto-loading of the authencesn crypto module via modprobe This occurs when user-space code creates an AF_ALG socket and binds the authencesn AEAD cipher (e.g., authencesn(hmac(sha256),cbc(aes))). The kernel invokes modprobe to load the crypto module. This is a key indicator of CVE-2026-31431 (Copy Fail) exploitation, where the authencesn cipher is used to trigger a buffer overflow in the AF_ALG AEAD splice path, corrupting the page cache of SUID binaries for local privilege escalation. On Linux systems, modprobe is typically a symlink to kmod, so the process image will be /usr/bin/kmod (or /bin/kmod) with 'modprobe' appearing in the command line.
Known False Positives
- Legitimate manual loading of the authencesn module by administrators for kernel crypto benchmarking or IPsec configuration (near-zero in production)
MITRE ATT&CK Coverage
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Linux | Event ID 1: Process Create |
Rule Body
title: Authencesn Crypto Module Load via Modprobe - Copy-Fail Indicator
id: 474b415a-d917-4f3b-8c62-9e1a0d5f7b48
status: experimental
description: |
Detects kernel auto-loading of the authencesn crypto module via modprobe
This occurs when user-space code creates an AF_ALG socket and binds the authencesn AEAD cipher
(e.g., authencesn(hmac(sha256),cbc(aes))). The kernel invokes modprobe to load the
crypto module. This is a key indicator of CVE-2026-31431 (Copy Fail) exploitation,
where the authencesn cipher is used to trigger a buffer overflow in the AF_ALG AEAD splice path,
corrupting the page cache of SUID binaries for local privilege escalation.
On Linux systems, modprobe is typically a symlink to kmod, so the process image will be /usr/bin/kmod (or /bin/kmod)
with 'modprobe' appearing in the command line.
references:
- https://www.linkedin.com/posts/stamatis-chatzimangou_copyfail-kql-activity-7455582422215114752-S4RW/
- https://www.splunk.com/en_us/blog/security/detecting-copy-fail-cve-2026-31431-phenomenal-power-itty-bitty-script.html
- https://nvd.nist.gov/vuln/detail/CVE-2026-31431
- https://man7.org/linux/man-pages/man8/modprobe.8.html
- https://www.kernel.org/doc/html/latest/crypto/userspace-if.html
author: Gene Kazimiarovich
date: 2026-05-09
tags:
- attack.privilege-escalation
- attack.t1068
- attack.persistence
- attack.t1547.006
- detection.emerging-threats
- cve.2026-31431
logsource:
category: process_creation
product: linux
detection:
selection_kmod:
Image|endswith: '/kmod'
CommandLine|contains|all:
- 'modprobe'
- 'crypto-authencesn('
selection_modprobe:
Image|endswith: '/modprobe'
CommandLine|contains: 'crypto-authencesn('
condition: 1 of selection_*
falsepositives:
- Legitimate manual loading of the authencesn module by administrators for kernel crypto benchmarking or IPsec configuration (near-zero in production)
level: high
Stages and Predicates
Stage 0: condition
1 of selection_*Stage 1: selection_kmod
selection_kmod:
Image|endswith: '/kmod'
CommandLine|contains|all:
- 'modprobe'
- 'crypto-authencesn('
Stage 2: selection_modprobe
selection_modprobe:
Image|endswith: '/modprobe'
CommandLine|contains: 'crypto-authencesn('
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Image | ends_with |
| field:"Image" kind:ends_with |
Bitbucket Audit Log Configuration Updated
#Detects changes to the bitbucket audit log configuration.
Known False Positives
- Legitimate user activity.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Defense Impairment |
Rule Body
title: Bitbucket Audit Log Configuration Updated
id: 6aa12161-235a-4dfb-9c74-fe08df8d8da1
status: test
description: Detects changes to the bitbucket audit log configuration.
references:
- https://confluence.atlassian.com/bitbucketserver/view-and-configure-the-audit-log-776640417.html
author: Muhammad Faisal (@faisalusuf)
date: 2024-02-25
tags:
- attack.defense-impairment
- attack.t1685
logsource:
product: bitbucket
service: audit
definition: 'Requirements: "Basic" log level is required to receive these audit events.'
detection:
selection:
auditType.category: 'Auditing'
auditType.action: 'Audit log configuration updated'
condition: selection
falsepositives:
- Legitimate user activity.
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
auditType.category: 'Auditing'
auditType.action: 'Audit log configuration updated'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
auditType.action | eq |
| field:"auditType.action" kind:eq value:"Audit log configuration updated" |
auditType.category | eq |
| field:"auditType.category" kind:eq value:"Auditing" |
BITS Client BitsProxy DLL Loaded By Uncommon Process
#Detects an uncommon process loading the "BitsProxy.dll". This DLL is used when the BITS COM instance or API is used. This detection can be used to hunt for uncommon processes loading this DLL in your environment. Which may indicate potential suspicious activity occurring.
Known False Positives
- Allowed binaries in the environment that do BITS Jobs
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | |
| Persistence | |
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 7: Image loaded |
Rule Body
title: BITS Client BitsProxy DLL Loaded By Uncommon Process
id: e700ff14-1bff-4d1d-9438-738dff5f0466
status: experimental
description: |
Detects an uncommon process loading the "BitsProxy.dll". This DLL is used when the BITS COM instance or API is used.
This detection can be used to hunt for uncommon processes loading this DLL in your environment. Which may indicate potential suspicious activity occurring.
references:
- https://unicornofhunt.com/2025/05/22/When-Unicorns-Go-Quiet-BITS-Jobs-and-the-Art-of-Stealthy-Transfers/
author: UnicornOfHunt
date: 2025-06-04
tags:
- attack.persistence
- attack.execution
- attack.stealth
- attack.t1197
- detection.threat-hunting
logsource:
category: image_load
product: windows
detection:
selection:
ImageLoaded|endswith: '\BitsProxy.dll'
filter_main_system:
Image:
- 'C:\Windows\System32\aitstatic.exe'
- 'C:\Windows\System32\bitsadmin.exe'
- 'C:\Windows\System32\desktopimgdownldr.exe'
- 'C:\Windows\System32\DeviceEnroller.exe'
- 'C:\Windows\System32\MDMAppInstaller.exe'
- 'C:\Windows\System32\ofdeploy.exe'
- 'C:\Windows\System32\RecoveryDrive.exe'
- 'C:\Windows\System32\Speech_OneCore\common\SpeechModelDownload.exe'
# - 'C:\Windows\System32\svchost.exe' # BITS Service - If you collect CommandLine info. Apply a filter for the specific BITS service.
- 'C:\Windows\SysWOW64\bitsadmin.exe'
- 'C:\Windows\SysWOW64\OneDriveSetup.exe'
- 'C:\Windows\SysWOW64\Speech_OneCore\Common\SpeechModelDownload.exe'
filter_optional_chrome:
Image: 'C:\Program Files\Google\Chrome\Application\chrome.exe'
condition: selection and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
- Allowed binaries in the environment that do BITS Jobs
level: low
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_main_* and not 1 of filter_optional_*Stage 1: selection
selection:
ImageLoaded|endswith: '\BitsProxy.dll'
Stage 2: not filter_main_system
filter_main_system:
Image:
- 'C:\Windows\System32\aitstatic.exe'
- 'C:\Windows\System32\bitsadmin.exe'
- 'C:\Windows\System32\desktopimgdownldr.exe'
- 'C:\Windows\System32\DeviceEnroller.exe'
- 'C:\Windows\System32\MDMAppInstaller.exe'
- 'C:\Windows\System32\ofdeploy.exe'
- 'C:\Windows\System32\RecoveryDrive.exe'
- 'C:\Windows\System32\Speech_OneCore\common\SpeechModelDownload.exe'
- 'C:\Windows\SysWOW64\bitsadmin.exe'
- 'C:\Windows\SysWOW64\OneDriveSetup.exe'
- 'C:\Windows\SysWOW64\Speech_OneCore\Common\SpeechModelDownload.exe'
Stage 3: not filter_optional_chrome
filter_optional_chrome:
Image: 'C:\Program Files\Google\Chrome\Application\chrome.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
ImageLoaded | ends_with |
| field:"ImageLoaded" kind:ends_with value:"\BitsProxy.dll" |
Exclusions
The rule actively suppresses these predicates.
Bulk Deletion Changes To Privileged Account Permissions
#Detects when a user is removed from a privileged role. Bulk changes should be investigated.
Known False Positives
- Legtimate administrator actions of removing members from a role
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Azure | any: Entra ID audit event (any operation) |
Rule Body
title: Bulk Deletion Changes To Privileged Account Permissions
id: 102e11e3-2db5-4c9e-bc26-357d42585d21
status: test
description: Detects when a user is removed from a privileged role. Bulk changes should be investigated.
references:
- https://learn.microsoft.com/en-us/entra/architecture/security-operations-privileged-identity-management#azure-ad-roles-assignment
author: Mark Morowczynski '@markmorow', Yochana Henderson, '@Yochana-H'
date: 2022-08-05
tags:
- attack.privilege-escalation
- attack.persistence
- attack.t1098
logsource:
product: azure
service: auditlogs
detection:
selection:
properties.message:
- Remove eligible member (permanent)
- Remove eligible member (eligible)
condition: selection
falsepositives:
- Legtimate administrator actions of removing members from a role
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
properties.message:
- Remove eligible member (permanent)
- Remove eligible member (eligible)
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
properties.message | eq |
| field:"properties.message" kind:eq |
CA Policy Removed by Non Approved Actor
#Monitor and alert on conditional access changes where non approved actor removed CA Policy.
Known False Positives
- Misconfigured role permissions
- Verify whether the user identity, user agent, and/or hostname should be making changes in your environment.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation | |
| Defense Impairment | |
| Credential Access |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Azure | Delete conditional access policy |
Rules Detecting the Same Action
These rules filter on the same operation.
- Azure MFA Disabled (Panther)
- Azure Policy Violation Detected (Panther)
- CA Policy Updated by Non Approved Actor (Sigma)
- Certificate-Based Authentication Enabled (Sigma)
- Changes to Device Registration Policy (Sigma)
- Conditional Access - A Conditional Access app exclusion has changed (Kusto)
- Conditional Access - A Conditional Access Device platforms condition has changed (the Device platforms condition can be spoofed) (Kusto)
- Conditional Access - A Conditional Access policy was deleted (Kusto)
Rule Body
title: CA Policy Removed by Non Approved Actor
id: 26e7c5e2-6545-481e-b7e6-050143459635
status: test
description: Monitor and alert on conditional access changes where non approved actor removed CA Policy.
references:
- https://learn.microsoft.com/en-us/entra/architecture/security-operations-infrastructure#conditional-access
author: Corissa Koopmans, '@corissalea'
date: 2022-07-19
tags:
- attack.privilege-escalation
- attack.credential-access
- attack.persistence
- attack.defense-impairment
- attack.t1548
- attack.t1556
logsource:
product: azure
service: auditlogs
detection:
selection:
properties.message: Delete conditional access policy
condition: selection
falsepositives:
- Misconfigured role permissions
- Verify whether the user identity, user agent, and/or hostname should be making changes in your environment.
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
properties.message: Delete conditional access policy
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
properties.message | eq |
| field:"properties.message" kind:eq value:"Delete conditional access policy" |
Cisco ASA FTD Exploit CVE-2020-3452
#Detects exploitation attempts on Cisco ASA FTD systems exploiting CVE-2020-3452 with a status code of 200 (sccessful exploitation)
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access |
Rule Body
title: Cisco ASA FTD Exploit CVE-2020-3452
id: aba47adc-4847-4970-95c1-61dce62a8b29
status: test
description: Detects exploitation attempts on Cisco ASA FTD systems exploiting CVE-2020-3452 with a status code of 200 (sccessful exploitation)
references:
- https://twitter.com/aboul3la/status/1286012324722155525
- https://github.com/darklotuskdb/CISCO-CVE-2020-3452-Scanner-Exploiter
author: Florian Roth (Nextron Systems)
date: 2021-01-07
modified: 2023-01-02
tags:
- attack.t1190
- attack.initial-access
- cve.2020-3452
- detection.emerging-threats
logsource:
category: webserver
detection:
selection_endpoint:
cs-uri-query|contains:
- '+CSCOT+/translation-table'
- '+CSCOT+/oem-customization'
selection_path_select:
cs-uri-query|contains:
- '&textdomain=/'
- '&textdomain=%'
- '&name=/'
- '&name=%'
select_status_code:
sc-status: 200
condition: selection_endpoint and selection_path_select and select_status_code
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selection_endpoint and selection_path_select and select_status_codeStage 1: selection_endpoint
selection_endpoint:
cs-uri-query|contains:
- '+CSCOT+/translation-table'
- '+CSCOT+/oem-customization'
Stage 2: selection_path_select
selection_path_select:
cs-uri-query|contains:
- '&textdomain=/'
- '&textdomain=%'
- '&name=/'
- '&name=%'
Stage 3: select_status_code
select_status_code:
sc-status: 200
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
cs-uri-query | match |
| field:"cs-uri-query" kind:match |
sc-status | eq |
| field:"sc-status" kind:eq value:"200" |
Cmd.EXE Missing Space Characters Execution Anomaly
#Detects Windows command lines that miss a space before or after the /c flag when running a command using the cmd.exe. This could be a sign of obfuscation of a fat finger problem (typo by the developer).
Known False Positives
- Legitimate use of cmd.exe with no arguments e.g. via system("") in C to enable ANSI escape codes
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule Body
title: Cmd.EXE Missing Space Characters Execution Anomaly
id: a16980c2-0c56-4de0-9a79-17971979efdd
status: test
description: |
Detects Windows command lines that miss a space before or after the /c flag when running a command using the cmd.exe.
This could be a sign of obfuscation of a fat finger problem (typo by the developer).
references:
- https://twitter.com/cyb3rops/status/1562072617552678912
- https://ss64.com/nt/cmd.html
author: Florian Roth (Nextron Systems)
date: 2022-08-23
modified: 2026-05-13
tags:
- attack.execution
- attack.t1059.001
logsource:
category: process_creation
product: windows
detection:
selection1: # missing space before the /c
CommandLine|contains:
- 'cmd.exe/c'
- '\cmd/c' # just cmd/c would be prone to false positives
- '"cmd/c'
- 'cmd.exe/k'
- '\cmd/k' # just cmd/k would be prone to false positives
- '"cmd/k'
- 'cmd.exe/r'
- '\cmd/r' # just cmd/r would be prone to false positives
- '"cmd/r'
selection2: # special cases verified via Virustotal Enterprise search
CommandLine|contains:
- '/cwhoami'
- '/cpowershell'
- '/cschtasks'
- '/cbitsadmin'
- '/ccertutil'
- '/kwhoami'
- '/kpowershell'
- '/kschtasks'
- '/kbitsadmin'
- '/kcertutil'
selection3: # missing space after the /c
CommandLine|contains:
- 'cmd.exe /c'
- 'cmd /c'
- 'cmd.exe /k'
- 'cmd /k'
- 'cmd.exe /r'
- 'cmd /r'
filter_generic:
CommandLine|contains:
- 'cmd.exe /c '
- 'cmd /c '
- 'cmd.exe /k '
- 'cmd /k '
- 'cmd.exe /r '
- 'cmd /r '
filter_fp:
- CommandLine|contains: 'AppData\Local\Programs\Microsoft VS Code\resources\app\node_modules'
- CommandLine|endswith: 'cmd.exe/c .'
- CommandLine: 'cmd.exe /c'
- CommandLine: 'cmd /c'
condition: 1 of selection* and not 1 of filter_*
falsepositives:
- Legitimate use of cmd.exe with no arguments e.g. via system("") in C to enable ANSI escape codes
level: high
Stages and Predicates
Stage 0: condition
1 of selection* and not 1 of filter_*Stage 1: selection1
selection1:
CommandLine|contains:
- 'cmd.exe/c'
- '\cmd/c'
- '"cmd/c'
- 'cmd.exe/k'
- '\cmd/k'
- '"cmd/k'
- 'cmd.exe/r'
- '\cmd/r'
- '"cmd/r'
Stage 2: selection2
selection2:
CommandLine|contains:
- '/cwhoami'
- '/cpowershell'
- '/cschtasks'
- '/cbitsadmin'
- '/ccertutil'
- '/kwhoami'
- '/kpowershell'
- '/kschtasks'
- '/kbitsadmin'
- '/kcertutil'
Stage 3: selection3
selection3:
CommandLine|contains:
- 'cmd.exe /c'
- 'cmd /c'
- 'cmd.exe /k'
- 'cmd /k'
- 'cmd.exe /r'
- 'cmd /r'
Stage 4: not filter_*
filter_generic:
CommandLine|contains:
- 'cmd.exe /c '
- 'cmd /c '
- 'cmd.exe /k '
- 'cmd /k '
- 'cmd.exe /r '
- 'cmd /r '
filter_fp:
- CommandLine|contains: 'AppData\Local\Programs\Microsoft VS Code\resources\app\node_modules'
- CommandLine|endswith: 'cmd.exe/c .'
- CommandLine: 'cmd.exe /c'
- CommandLine: 'cmd /c'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
CommandLine | ends_with | cmd.exe/c . | excludes:CommandLine field:"CommandLine" value:"cmd.exe/c ." |
CommandLine | eq | cmd /c | excludes:CommandLine field:"CommandLine" value:"cmd /c" |
CommandLine | eq | cmd.exe /c | excludes:CommandLine field:"CommandLine" value:"cmd.exe /c" |
CommandLine | match | AppData\Local\Programs\Microsoft VS Code\resources\app\node_modules | excludes:CommandLine field:"CommandLine" value:"AppData\Local\Programs\Microsoft VS Code\resources\app\node_modules" |
CommandLine | match | cmd /c | excludes:CommandLine field:"CommandLine" value:"cmd /c " |
CommandLine | match | cmd /k | excludes:CommandLine field:"CommandLine" value:"cmd /k " |
CommandLine | match | cmd /r | excludes:CommandLine field:"CommandLine" value:"cmd /r " |
CommandLine | match | cmd.exe /c | excludes:CommandLine field:"CommandLine" value:"cmd.exe /c " |
CommandLine | match | cmd.exe /k | excludes:CommandLine field:"CommandLine" value:"cmd.exe /k " |
CommandLine | match | cmd.exe /r | excludes:CommandLine field:"CommandLine" value:"cmd.exe /r " |
CobaltStrike Named Pipe Patterns
#Detects the creation of a named pipe with a pattern found in CobaltStrike malleable C2 profiles
Known False Positives
- Chrome instances using the exact same pipe name "mojo.xxx"
- Websense Endpoint using the pipe name "DserNamePipe(R|W)\d{1,5}"
- Some applications may just coincidentally use the pipe names which contain the same prefix as the ones used by CobaltStrike, e.g. "f4c3"
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Privilege Escalation | |
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 17: PipeEvent (Pipe Created) |
| Sysmon | Event ID 18: PipeEvent (Pipe Connected) |
Rule Body
title: CobaltStrike Named Pipe Patterns
id: 85adeb13-4fc9-4e68-8a4a-c7cb2c336eb7
related:
- id: 0e7163d4-9e19-4fa7-9be6-000c61aad77a # Regex
type: similar
- id: d5601f8c-b26f-4ab0-9035-69e11a8d4ad2 # Generic
type: similar
status: test
description: Detects the creation of a named pipe with a pattern found in CobaltStrike malleable C2 profiles
references:
- https://svch0st.medium.com/guide-to-named-pipes-and-hunting-for-cobalt-strike-pipes-dc46b2c5f575
- https://gist.github.com/MHaggis/6c600e524045a6d49c35291a21e10752
author: Florian Roth (Nextron Systems), Christian Burkard (Nextron Systems)
date: 2021-07-30
modified: 2024-01-26
tags:
- attack.privilege-escalation
- attack.stealth
- attack.t1055
- stp.1k
logsource:
product: windows
category: pipe_created
definition: 'Note that you have to configure logging for Named Pipe Events in Sysmon config (Event ID 17 and Event ID 18). The basic configuration is in popular sysmon configuration (https://github.com/SwiftOnSecurity/sysmon-config), but it is worth verifying. You can also use other repo, e.g. https://github.com/Neo23x0/sysmon-config, https://github.com/olafhartong/sysmon-modular You can also use other repo, e.g. https://github.com/Neo23x0/sysmon-config, https://github.com/olafhartong/sysmon-modular. How to test detection? You can always use Cobalt Strike, but also you can check powershell script from this site https://svch0st.medium.com/guide-to-named-pipes-and-hunting-for-cobalt-strike-pipes-dc46b2c5f575'
detection:
selection_malleable_profile_generic:
- PipeName|startswith:
- '\DserNamePipe'
- '\f4c3'
- '\f53f'
- '\fullduplex_'
- '\mojo.5688.8052.183894939787088877'
- '\mojo.5688.8052.35780273329370473'
- '\MsFteWds'
- '\msrpc_'
- '\mypipe-f'
- '\mypipe-h'
- '\ntsvcs'
- '\PGMessagePipe'
- '\rpc_'
- '\scerpc'
- '\SearchTextHarvester'
- '\spoolss'
- '\win_svc'
- '\win\msrpc_'
- '\windows.update.manager'
- '\wkssvc'
- PipeName:
- '\demoagent_11'
- '\demoagent_22'
selection_malleable_profile_catalog_change_listener:
PipeName|startswith: '\Winsock2\CatalogChangeListener-'
PipeName|endswith: '-0,'
filter_main_generic:
PipeName:
- '\wkssvc'
- '\spoolss'
- '\scerpc'
- '\ntsvcs'
- '\SearchTextHarvester'
- '\PGMessagePipe'
- '\MsFteWds'
filter_optional_websense:
Image|contains:
- ':\Program Files\Websense\'
- ':\Program Files (x86)\Websense\'
PipeName|startswith:
- '\DserNamePipeR'
- '\DserNamePipeW'
condition: 1 of selection_malleable_profile_* and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
- Chrome instances using the exact same pipe name "mojo.xxx"
- Websense Endpoint using the pipe name "DserNamePipe(R|W)\d{1,5}"
- Some applications may just coincidentally use the pipe names which contain the same prefix as the ones used by CobaltStrike, e.g. "f4c3"
level: high
Stages and Predicates
Stage 0: condition
1 of selection_malleable_profile_* and not 1 of filter_main_* and not 1 of filter_optional_*Stage 1: selection_malleable_profile_generic
selection_malleable_profile_generic:
- PipeName|startswith:
- '\DserNamePipe'
- '\f4c3'
- '\f53f'
- '\fullduplex_'
- '\mojo.5688.8052.183894939787088877'
- '\mojo.5688.8052.35780273329370473'
- '\MsFteWds'
- '\msrpc_'
- '\mypipe-f'
- '\mypipe-h'
- '\ntsvcs'
- '\PGMessagePipe'
- '\rpc_'
- '\scerpc'
- '\SearchTextHarvester'
- '\spoolss'
- '\win_svc'
- '\win\msrpc_'
- '\windows.update.manager'
- '\wkssvc'
- PipeName:
- '\demoagent_11'
- '\demoagent_22'
Stage 2: selection_malleable_profile_catalog_change_listener
selection_malleable_profile_catalog_change_listener:
PipeName|startswith: '\Winsock2\CatalogChangeListener-'
PipeName|endswith: '-0,'
Stage 3: not filter_main_generic
filter_main_generic:
PipeName:
- '\wkssvc'
- '\spoolss'
- '\scerpc'
- '\ntsvcs'
- '\SearchTextHarvester'
- '\PGMessagePipe'
- '\MsFteWds'
Stage 4: not filter_optional_websense
filter_optional_websense:
Image|contains:
- ':\Program Files\Websense\'
- ':\Program Files (x86)\Websense\'
PipeName|startswith:
- '\DserNamePipeR'
- '\DserNamePipeW'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
PipeName | ends_with |
| field:"PipeName" kind:ends_with value:"-0," |
PipeName | eq |
| field:"PipeName" kind:eq |
PipeName | starts_with |
| field:"PipeName" kind:starts_with |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
PipeName | eq | \MsFteWds | excludes:PipeName field:"PipeName" value:"\MsFteWds" |
PipeName | eq | \PGMessagePipe | excludes:PipeName field:"PipeName" value:"\PGMessagePipe" |
PipeName | eq | \SearchTextHarvester | excludes:PipeName field:"PipeName" value:"\SearchTextHarvester" |
PipeName | eq | \ntsvcs | excludes:PipeName field:"PipeName" value:"\ntsvcs" |
PipeName | eq | \scerpc | excludes:PipeName field:"PipeName" value:"\scerpc" |
PipeName | eq | \spoolss | excludes:PipeName field:"PipeName" value:"\spoolss" |
PipeName | eq | \wkssvc | excludes:PipeName field:"PipeName" value:"\wkssvc" |
Image | match | :\Program Files (x86)\Websense\ | excludes:Image field:"Image" value:":\Program Files (x86)\Websense\" |
Image | match | :\Program Files\Websense\ | excludes:Image field:"Image" value:":\Program Files\Websense\" |
PipeName | starts_with | \DserNamePipeR | excludes:PipeName field:"PipeName" value:"\DserNamePipeR" |
PipeName | starts_with | \DserNamePipeW | excludes:PipeName field:"PipeName" value:"\DserNamePipeW" |
Console CodePage Lookup Via CHCP
#Detects use of chcp to look up the system locale value as part of host discovery
Known False Positives
- During Anaconda update the 'conda.exe' process will eventually execution the 'chcp' command.
- Discord was seen using chcp to look up code pages
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Discovery |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Console CodePage Lookup Via CHCP
id: 7090adee-82e2-4269-bd59-80691e7c6338
status: test
description: Detects use of chcp to look up the system locale value as part of host discovery
references:
- https://thedfirreport.com/2022/04/04/stolen-images-campaign-ends-in-conti-ransomware/
- https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/chcp
author: _pete_0, TheDFIRReport
date: 2022-02-21
modified: 2024-03-05
tags:
- attack.discovery
- attack.t1614.001
logsource:
category: process_creation
product: windows
detection:
selection:
ParentImage|endswith: '\cmd.exe'
ParentCommandLine|contains|windash:
- ' -c '
- ' -r '
- ' -k '
Image|endswith: '\chcp.com'
CommandLine|endswith:
- 'chcp'
- 'chcp '
- 'chcp '
condition: selection
falsepositives:
- During Anaconda update the 'conda.exe' process will eventually execution the 'chcp' command.
- Discord was seen using chcp to look up code pages
level: medium
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_chcp_codepage_lookup/info.yml
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
ParentImage|endswith: '\cmd.exe'
ParentCommandLine|contains|windash:
- ' -c '
- ' -r '
- ' -k '
Image|endswith: '\chcp.com'
CommandLine|endswith:
- 'chcp'
- 'chcp '
- 'chcp '
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | ends_with |
| field:"CommandLine" kind:ends_with |
Image | ends_with |
| field:"Image" kind:ends_with value:"\chcp.com" |
ParentCommandLine | match |
| field:"ParentCommandLine" kind:match |
ParentImage | ends_with |
| field:"ParentImage" kind:ends_with value:"\cmd.exe" |
Control Panel Items
#Detects the malicious use of a control panel item
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation | |
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Control Panel Items
id: 0ba863e6-def5-4e50-9cea-4dd8c7dc46a4
status: test
description: Detects the malicious use of a control panel item
references:
- https://ired.team/offensive-security/code-execution/code-execution-through-control-panel-add-ins
author: Kyaw Min Thein, Furkan Caliskan (@caliskanfurkan_)
date: 2020-06-22
modified: 2023-10-11
tags:
- attack.privilege-escalation
- attack.execution
- attack.stealth
- attack.t1218.002
- attack.persistence
- attack.t1546
logsource:
product: windows
category: process_creation
detection:
selection_reg_img:
- Image|endswith: '\reg.exe'
- OriginalFileName: 'reg.exe'
selection_reg_cli:
CommandLine|contains|all:
- 'add'
- 'CurrentVersion\Control Panel\CPLs'
selection_cpl:
CommandLine|endswith: '.cpl'
filter_cpl_sys:
CommandLine|contains:
- '\System32\'
- '%System%'
- '|C:\Windows\system32|'
filter_cpl_igfx:
CommandLine|contains|all:
- 'regsvr32 '
- ' /s '
- 'igfxCPL.cpl'
condition: all of selection_reg_* or (selection_cpl and not 1 of filter_cpl_*)
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
all of selection_reg_* or (selection_cpl and not 1 of filter_cpl_*)Stage 1: selection_reg_img
selection_reg_img:
- Image|endswith: '\reg.exe'
- OriginalFileName: 'reg.exe'
Stage 2: selection_reg_cli
selection_reg_cli:
CommandLine|contains|all:
- 'add'
- 'CurrentVersion\Control Panel\CPLs'
Stage 3: selection_cpl
selection_cpl:
CommandLine|endswith: '.cpl'
Stage 4: not filter_cpl_*
filter_cpl_sys:
CommandLine|contains:
- '\System32\'
- '%System%'
- '|C:\Windows\system32|'
filter_cpl_igfx:
CommandLine|contains|all:
- 'regsvr32 '
- ' /s '
- 'igfxCPL.cpl'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | ends_with |
| field:"CommandLine" kind:ends_with value:".cpl" |
CommandLine | match |
| field:"CommandLine" kind:match |
Image | ends_with |
| field:"Image" kind:ends_with value:"\reg.exe" |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq value:"reg.exe" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
CommandLine | match | /s | excludes:CommandLine field:"CommandLine" value:" /s " |
CommandLine | match | igfxCPL.cpl | excludes:CommandLine field:"CommandLine" value:"igfxCPL.cpl" |
CommandLine | match | regsvr32 | excludes:CommandLine field:"CommandLine" value:"regsvr32 " |
CommandLine | match | %System% | excludes:CommandLine field:"CommandLine" value:"%System%" |
CommandLine | match | \System32\ | excludes:CommandLine field:"CommandLine" value:"\System32\" |
CommandLine | match | |C:\Windows\system32| | excludes:CommandLine field:"CommandLine" value:"|C:\Windows\system32|" |
Copying Sensitive Files with Credential Data
#Files with well-known filenames (sensitive files with credential data) copying
Known False Positives
- Copying sensitive files for legitimate use (eg. backup) or forensic investigation by legitimate incident responder or forensic investigator.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Credential Access |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Copying Sensitive Files with Credential Data
id: e7be6119-fc37-43f0-ad4f-1f3f99be2f9f
status: test
description: Files with well-known filenames (sensitive files with credential data) copying
references:
- https://room362.com/post/2013/2013-06-10-volume-shadow-copy-ntdsdit-domain-hashes-remotely-part-1/
- https://www.slideshare.net/heirhabarov/hunting-for-credentials-dumping-in-windows-environment
- https://dfironthemountain.wordpress.com/2018/12/06/locked-file-access-using-esentutl-exe/
- https://github.com/LOLBAS-Project/LOLBAS/blob/2cc01b01132b5c304027a658c698ae09dd6a92bf/yml/OSBinaries/Esentutl.yml
author: Teymur Kheirkhabarov, Daniil Yugoslavskiy, oscd.community
date: 2019-10-22
modified: 2024-06-04
tags:
- attack.credential-access
- attack.t1003.002
- attack.t1003.003
- car.2013-07-001
- attack.s0404
logsource:
category: process_creation
product: windows
detection:
selection_esent_img:
- Image|endswith: '\esentutl.exe'
- OriginalFileName: '\esentutl.exe'
selection_esent_cli:
CommandLine|contains|windash:
- 'vss'
- ' /m '
- ' /y '
selection_susp_paths:
CommandLine|contains:
- '\config\RegBack\sam'
- '\config\RegBack\security'
- '\config\RegBack\system'
- '\config\sam'
- '\config\security'
- '\config\system ' # space needed to avoid false positives with \config\systemprofile\
- '\repair\sam'
- '\repair\security'
- '\repair\system'
- '\windows\ntds\ntds.dit'
condition: all of selection_esent_* or selection_susp_paths
falsepositives:
- Copying sensitive files for legitimate use (eg. backup) or forensic investigation by legitimate incident responder or forensic investigator.
level: high
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_esentutl_sensitive_file_copy/info.yml
Stages and Predicates
Stage 0: condition
all of selection_esent_* or selection_susp_pathsStage 1: selection_esent_img
selection_esent_img:
- Image|endswith: '\esentutl.exe'
- OriginalFileName: '\esentutl.exe'
Stage 2: selection_esent_cli
selection_esent_cli:
CommandLine|contains|windash:
- 'vss'
- ' /m '
- ' /y '
Stage 3: selection_susp_paths
selection_susp_paths:
CommandLine|contains:
- '\config\RegBack\sam'
- '\config\RegBack\security'
- '\config\RegBack\system'
- '\config\sam'
- '\config\security'
- '\config\system '
- '\repair\sam'
- '\repair\security'
- '\repair\system'
- '\windows\ntds\ntds.dit'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Image | ends_with |
| field:"Image" kind:ends_with value:"\esentutl.exe" |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq value:"\esentutl.exe" |
DLL Load By System Process From Suspicious Locations
#Detects when a system process (i.e. located in system32, syswow64, etc.) loads a DLL from a suspicious location or a location with permissive permissions such as "C:\Users\Public"
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 7: Image loaded |
Rule Body
title: DLL Load By System Process From Suspicious Locations
id: 9e9a9002-56c4-40fd-9eff-e4b09bfa5f6c
status: test
description: Detects when a system process (i.e. located in system32, syswow64, etc.) loads a DLL from a suspicious location or a location with permissive permissions such as "C:\Users\Public"
references:
- https://github.com/hackerhouse-opensource/iscsicpl_bypassUAC (Idea)
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-07-17
modified: 2023-09-18
tags:
- attack.stealth
- attack.t1070
logsource:
product: windows
category: image_load
detection:
selection:
Image|startswith: 'C:\Windows\'
ImageLoaded|startswith:
# TODO: Add more suspicious paths as you see fit in your env
- 'C:\Users\Public\'
- 'C:\PerfLogs\'
condition: selection
falsepositives:
- Unknown
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
Image|startswith: 'C:\Windows\'
ImageLoaded|startswith:
- 'C:\Users\Public\'
- 'C:\PerfLogs\'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Image | starts_with |
| field:"Image" kind:starts_with value:"C:\Windows\" |
ImageLoaded | starts_with |
| field:"ImageLoaded" kind:starts_with |
HackTool - F-Secure C3 Load by Rundll32
#F-Secure C3 produces DLLs with a default exported StartNodeRelay function.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule Body
title: HackTool - F-Secure C3 Load by Rundll32
id: b18c9d4c-fac9-4708-bd06-dd5bfacf200f
status: test
description: F-Secure C3 produces DLLs with a default exported StartNodeRelay function.
references:
- https://github.com/FSecureLABS/C3/blob/11a081fd3be2aaf2a879f6b6e9a96ecdd24966ef/Src/NodeRelayDll/NodeRelayDll.cpp#L12
author: Alfie Champion (ajpc500)
date: 2021-06-02
modified: 2023-03-05
tags:
- attack.stealth
- attack.t1218.011
logsource:
category: process_creation
product: windows
detection:
selection:
CommandLine|contains|all:
- 'rundll32.exe'
- '.dll'
- 'StartNodeRelay'
condition: selection
falsepositives:
- Unknown
level: critical
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
CommandLine|contains|all:
- 'rundll32.exe'
- '.dll'
- 'StartNodeRelay'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Impacket DCOMexec process abuse via MMC
#Detects scenarios where an attacker execute the Impacket DCOMexec tool in order to abuse DCOM services.
Known False Positives
- applications using DCOM components remotely
- rare administrator modifications of DCOM settings
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Lateral Movement |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule Body
title: Impacket DCOMexec process abuse via MMC
description: Detects scenarios where an attacker execute the Impacket DCOMexec tool in order to abuse DCOM services.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0008-Lateral%20Movement/T1021.003-Distributed%20Component%20Object%20Model%20(DCOM)
- https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/
- https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/
- https://github.com/SecureAuthCorp/impacket/blob/master/examples/dcomexec.py
- https://www.ired.team/offensive-security/lateral-movement/t1175-distributed-component-object-model
- https://www.synacktiv.com/publications/traces-of-windows-remote-command-execution.html
tags:
- attack.lateral_movement
- attack.t1021.003
author: mdecrevoisier
status: experimental
logsource:
product: windows
category: process_creation
detection:
selection_basic:
EventID: 4688
Version: 2 # parent process name is available starting Windows 10 / Server 2016 and higher
ParentProcessName|endswith: '\svchost.exe'
NewProcessName|endswith: '\mmc.exe'
selection_sysmon:
EventID: 1
ParentImage|endswith: '\svchost.exe'
Image|endswith: '\mmc.exe'
condition: selection_basic or selection_sysmon
falsepositives:
- applications using DCOM components remotely
- rare administrator modifications of DCOM settings
level: high
Stages and Predicates
Stage 0: condition
selection_basic or selection_sysmonStage 1: selection_basic
selection_basic:
EventID: 4688
Version: 2
ParentProcessName|endswith: '\svchost.exe'
NewProcessName|endswith: '\mmc.exe'
Stage 2: selection_sysmon
selection_sysmon:
EventID: 1
ParentImage|endswith: '\svchost.exe'
Image|endswith: '\mmc.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Image | ends_with |
| field:"Image" kind:ends_with value:"\mmc.exe" |
NewProcessName | ends_with |
| field:"Image" kind:ends_with value:"\mmc.exe" |
ParentImage | ends_with |
| field:"ParentImage" kind:ends_with value:"\svchost.exe" |
ParentProcessName | ends_with |
| field:"parent_process_name" kind:ends_with value:"\svchost.exe" |
Version | eq |
| field:"Version" kind:eq value:"2" |
Linux HackTool Execution
#Detects known hacktool execution based on image name.
Known False Positives
- Unlikely
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Resource Development |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Linux | Event ID 1: Process Create |
Rule Body
title: Linux HackTool Execution
id: a015e032-146d-4717-8944-7a1884122111
status: test
description: Detects known hacktool execution based on image name.
references:
- https://github.com/Gui774ume/ebpfkit
- https://github.com/pathtofile/bad-bpf
- https://github.com/carlospolop/PEASS-ng
- https://github.com/t3l3machus/hoaxshell
- https://github.com/t3l3machus/Villain
- https://github.com/HavocFramework/Havoc
- https://github.com/1N3/Sn1per
- https://github.com/Ne0nd0g/merlin
- https://github.com/Pennyw0rth/NetExec/
author: Nasreddine Bencherchali (Nextron Systems), Georg Lauenstein (sure[secure])
date: 2023-01-03
modified: 2024-09-19
tags:
- attack.execution
- attack.resource-development
- attack.t1587
logsource:
product: linux
category: process_creation
detection:
selection_c2_frameworks:
Image|endswith:
- '/crackmapexec'
- '/havoc'
- '/merlin-agent'
- '/merlinServer-Linux-x64'
- '/msfconsole'
- '/msfvenom'
- '/ps-empire server'
- '/ps-empire'
- '/sliver-client'
- '/sliver-server'
- '/Villain.py'
selection_c2_framework_cobaltstrike:
Image|contains:
- '/cobaltstrike'
- '/teamserver'
selection_scanners:
Image|endswith:
- '/autorecon'
- '/httpx'
- '/legion'
- '/naabu'
- '/netdiscover'
- '/nuclei'
- '/recon-ng'
selection_scanners_sniper:
Image|contains: '/sniper'
selection_web_enum:
Image|endswith:
- '/dirb'
- '/dirbuster'
- '/eyewitness'
- '/feroxbuster'
- '/ffuf'
- '/gobuster'
- '/wfuzz'
- '/whatweb'
selection_web_vuln:
Image|endswith:
- '/joomscan'
- '/nikto'
- '/wpscan'
selection_exploit_tools:
Image|endswith:
- '/aircrack-ng'
- '/bloodhound-python'
- '/bpfdos'
- '/ebpfki'
- '/evil-winrm'
- '/hashcat'
- '/hoaxshell.py'
- '/hydra'
- '/john'
- '/ncrack'
# default binary: https://github.com/Pennyw0rth/NetExec/releases/download/v1.0.0/nxc-ubuntu-latest
- '/nxc-ubuntu-latest'
- '/pidhide'
- '/pspy32'
- '/pspy32s'
- '/pspy64'
- '/pspy64s'
- '/setoolkit'
- '/sqlmap'
- '/writeblocker'
selection_linpeas:
# covers: all linux versions listed here: https://github.com/carlospolop/PEASS-ng/releases
Image|contains: '/linpeas'
condition: 1 of selection_*
falsepositives:
- Unlikely
level: high
Stages and Predicates
Stage 0: condition
1 of selection_*Stage 1: selection_c2_frameworks
selection_c2_frameworks:
Image|endswith:
- '/crackmapexec'
- '/havoc'
- '/merlin-agent'
- '/merlinServer-Linux-x64'
- '/msfconsole'
- '/msfvenom'
- '/ps-empire server'
- '/ps-empire'
- '/sliver-client'
- '/sliver-server'
- '/Villain.py'
Stage 2: selection_c2_framework_cobaltstrike
selection_c2_framework_cobaltstrike:
Image|contains:
- '/cobaltstrike'
- '/teamserver'
Stage 3: selection_scanners
selection_scanners:
Image|endswith:
- '/autorecon'
- '/httpx'
- '/legion'
- '/naabu'
- '/netdiscover'
- '/nuclei'
- '/recon-ng'
Stage 4: selection_scanners_sniper
selection_scanners_sniper:
Image|contains: '/sniper'
Stage 5: selection_web_enum
selection_web_enum:
Image|endswith:
- '/dirb'
- '/dirbuster'
- '/eyewitness'
- '/feroxbuster'
- '/ffuf'
- '/gobuster'
- '/wfuzz'
- '/whatweb'
Stage 6: selection_web_vuln
selection_web_vuln:
Image|endswith:
- '/joomscan'
- '/nikto'
- '/wpscan'
Stage 7: selection_exploit_tools
selection_exploit_tools:
Image|endswith:
- '/aircrack-ng'
- '/bloodhound-python'
- '/bpfdos'
- '/ebpfki'
- '/evil-winrm'
- '/hashcat'
- '/hoaxshell.py'
- '/hydra'
- '/john'
- '/ncrack'
- '/nxc-ubuntu-latest'
- '/pidhide'
- '/pspy32'
- '/pspy32s'
- '/pspy64'
- '/pspy64s'
- '/setoolkit'
- '/sqlmap'
- '/writeblocker'
Stage 8: selection_linpeas
selection_linpeas:
Image|contains: '/linpeas'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Image | ends_with |
| field:"Image" kind:ends_with |
Image | match |
| field:"Image" kind:match |
LSASS credential dump with LSASSY (process)
#Detects scenarios where an attacker remotely dump LSASS credentials using the LSASSY tool.
Known False Positives
- None
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Credential Access |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: LSASS credential dump with LSASSY (process)
description: Detects scenarios where an attacker remotely dump LSASS credentials using the LSASSY tool.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0006-Credential%20Access/T1003-Credential%20dumping
- https://github.com/Hackndo/lsassy
tags:
- attack.credential_access
- attack.t1003.001
author: mdecrevoisier
status: experimental
logsource:
product: windows
category: process_creation
detection: # Full command: '"C:\Windows\System32\rundll32.exe" C:\Windows\System32\comsvcs.dll MiniDump 512 \Windows\Temp\76nivOxA.dmp full'
selection_process_native:
NewProcessName|endswith:
- \rundll32.exe
- \powershell.exe
CommandLine|contains|all:
- rundll32.exe
- comsvcs.dll
#- '.dmp' # Extension can be changed in source code
selection_sysmon_baseline:
Image|endswith:
- \rundll32.exe
- \powershell.exe
- \pwsh.exe # PowerShell v6
- \powershell_ise.exe # Development GUI
selection_sysmon_parent_process:
ParentCommandLine:
- rundll32.exe
- comsvcs.dll
#- '.dmp' # Extension can be changed in source code
selection_sysmon_process:
CommandLine|contains|all:
- rundll32.exe
- comsvcs.dll
#- '.dmp' # Extension can be changed in source code
condition: selection_process_native or (selection_sysmon_baseline and (selection_sysmon_parent_process or selection_sysmon_process))
falsepositives:
- None
level: high
Stages and Predicates
Stage 0: condition
selection_process_native or (selection_sysmon_baseline and (selection_sysmon_parent_process or selection_sysmon_process))Stage 1: selection_process_native
selection_process_native:
NewProcessName|endswith:
- \rundll32.exe
- \powershell.exe
CommandLine|contains|all:
- rundll32.exe
- comsvcs.dll
Stage 2: selection_sysmon_baseline
selection_sysmon_baseline:
Image|endswith:
- \rundll32.exe
- \powershell.exe
- \pwsh.exe
- \powershell_ise.exe
Stage 3: selection_sysmon_parent_process
selection_sysmon_parent_process:
ParentCommandLine:
- rundll32.exe
- comsvcs.dll
Stage 4: selection_sysmon_process
selection_sysmon_process:
CommandLine|contains|all:
- rundll32.exe
- comsvcs.dll
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Image | ends_with |
| field:"Image" kind:ends_with |
NewProcessName | ends_with |
| field:"Image" kind:ends_with |
ParentCommandLine | eq |
| field:"ParentCommandLine" kind:eq |
macOS Encryption Tool Usage
#Detects execution of encryption tools (openssl, gpg, diskutil) which may indicate ransomware activity or data encryption for impact. Adversaries encrypt data to deny availability and extort victims. Also monitors disk encryption operations.
Known False Positives
- Legitimate data encryption for security
- FileVault and disk encryption setup
- Secure file transfer preparations
- Development and testing of encryption features
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Impact |
Rule Body
title: macOS Encryption Tool Usage
id: f2a3b4c5-d6e7-4f8a-9b0c-1d2e3f4a5b6c
status: experimental
description: 'Detects execution of encryption tools (openssl, gpg, diskutil) which
may indicate
ransomware activity or data encryption for impact. Adversaries encrypt data to
deny availability and extort victims. Also monitors disk encryption operations.
'
author: Eric Brown - Nebulock, Inc.
date: 2025/10/31
modified: 2025/10/31
references:
- https://attack.mitre.org/techniques/T1486/
- https://attack.mitre.org/techniques/T1565/001/
logsource:
product: macos
service: endpointsecurity
detection:
selection_event:
esf.event_type: 9
event.action: exec
selection_process:
Image|endswith:
- /openssl
- /gpg
- /gpg2
- /diskutil
selection_encryption:
CommandLine|contains:
- 'enc '
- encrypt
- aes
- --cipher
- apfs encryptVolume
- coreStorage convert
condition: selection_event and selection_process and selection_encryption
falsepositives:
- Legitimate data encryption for security
- FileVault and disk encryption setup
- Secure file transfer preparations
- Development and testing of encryption features
fields:
- Image
- CommandLine
- ProcessId
- ParentProcessId
- User
tags:
- attack.impact
- attack.t1486
- attack.t1565.001
level: medium
Stages and Predicates
Stage 0: condition
selection_event and selection_process and selection_encryptionStage 1: selection_event
selection_event:
esf.event_type: 9
event.action: exec
Stage 2: selection_process
selection_process:
Image|endswith:
- /openssl
- /gpg
- /gpg2
- /diskutil
Stage 3: selection_encryption
selection_encryption:
CommandLine|contains:
- 'enc '
- encrypt
- aes
- --cipher
- apfs encryptVolume
- coreStorage convert
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Image | ends_with |
| field:"Image" kind:ends_with |
esf.event_type | eq |
| field:"esf.event_type" kind:eq value:"9" |
event.action | eq |
| field:"EventType" kind:eq value:"exec" |
Massive service installation - Tchopper
#Detects scenarios where an attacker uses the Tchopper tool by abusing the display name of a service as a placeholder to upload an obfuscated payload. Service name may come with very high entropy. Option mode "-m" will not report any service installation, only service failures.
Known False Positives
- None
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Service-Control-Manager | Event ID 7045: A service was installed in the system. |
Rule Body
title: Massive service installation - Tchopper
description: Detects scenarios where an attacker uses the Tchopper tool by abusing the display name of a service as a placeholder to upload an obfuscated payload. Service name may come with very high entropy. Option mode "-m" will not report any service installation, only service failures.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0002-Execution/T1569.002-Service%20execution
- https://github.com/lawrenceamer/TChopper
tags:
- attack.execution
- attack.t1569
author: mdecrevoisier
status: experimental
logsource:
product: windows
service: system
detection:
selection:
EventID: 7045 # service installation
#ImagePath|contains|all: # May not be necessary as deploying a high number of services is already suspicious
# - cmd
# - powershell
# - Get-Service
# - out-file
condition: selection | count(ServiceName) by Computer > 50 # Count how many different services are deployed on the host.
timeframe: 20m
falsepositives:
- None
level: high
Stages and Predicates
Stage 0: condition
selection | count(ServiceName) by Computer > 50 # Count how many different services are deployed on the host.Stage 1: selection
selection:
EventID: 7045
New Network ACL Entry Added
#Detects that network ACL entries have been added to a route table which could indicate that new attack vectors have been opened up in the AWS account.
Known False Positives
- Legitimate use of ACLs to enable customer and staff access from the public internet into a public VPC
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Defense Impairment |
Telemetry Coverage
Rules Detecting the Same Action
These rules filter on the same operation.
Rule Body
title: New Network ACL Entry Added
id: e1f7febb-7b94-4234-b5c6-00fb8500f5dd
status: test
description: |
Detects that network ACL entries have been added to a route table which could indicate that new attack vectors have been opened up in the AWS account.
references:
- https://www.gorillastack.com/blog/real-time-events/important-aws-cloudtrail-security-events-tracking/
author: jamesc-grafana
date: 2024-07-11
tags:
- attack.defense-impairment
- attack.t1686.001
logsource:
product: aws
service: cloudtrail
detection:
selection:
eventSource: 'ec2.amazonaws.com'
eventName: 'CreateNetworkAclEntry'
condition: selection
falsepositives:
- Legitimate use of ACLs to enable customer and staff access from the public internet into a public VPC
level: low
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
eventSource: 'ec2.amazonaws.com'
eventName: 'CreateNetworkAclEntry'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
eventName | eq |
| field:"aws::eventName" kind:eq value:"CreateNetworkAclEntry" |
eventSource | eq |
| field:"aws::eventSource" kind:eq value:"ec2.amazonaws.com" |
OpenCanary - HTTP POST Login Attempt
#Detects instances where an HTTP service on an OpenCanary node has had login attempt via Form POST.
Known False Positives
- Unlikely
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access |
Rule Body
title: OpenCanary - HTTP POST Login Attempt
id: af1ac430-df6b-4b38-b976-0b52f07a0252
status: test
description: |
Detects instances where an HTTP service on an OpenCanary node has had login attempt via Form POST.
references:
- https://opencanary.readthedocs.io/en/latest/starting/configuration.html#services-configuration
- https://github.com/thinkst/opencanary/blob/a0896adfcaf0328cfd5829fe10d2878c7445138e/opencanary/logger.py#L52
author: Security Onion Solutions
date: 2024-03-08
tags:
- attack.initial-access
- attack.t1190
logsource:
category: application
product: opencanary
detection:
selection:
logtype: 3001
condition: selection
falsepositives:
- Unlikely
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
logtype: 3001
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
logtype | eq |
| field:"logtype" kind:eq value:"3001" |
OpenSSH native server feature installation
#Detects scenarios where an attacker enables the native OpenSSH server feature on Windows to perform stealthy lateral movement.
Known False Positives
- legitimate administrator installation
- developer computer
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Lateral Movement |
Telemetry Coverage
Rule Body
title: OpenSSH native server feature installation
description: Detects scenarios where an attacker enables the native OpenSSH server feature on Windows to perform stealthy lateral movement.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0008-Lateral%20Movement/T1021.004-Remote%20Service%20SSH
- https://winaero.com/enable-openssh-server-windows-10/
- https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse
- https://virtualizationreview.com/articles/2020/05/21/ssh-server-on-windows-10.aspx
- https://www.microsoft.com/en-us/security/blog/2022/10/18/defenders-beware-a-case-for-post-ransomware-investigations/
tags:
- attack.lateral_movement
- attack.t1021.004
author: mdecrevoisier
status: experimental
logsource:
product: windows
category:
- ps_module
- ps_classic_script
- ps_script
detection:
selection_powershell_native:
EventID: 800
EventData|contains|all:
- Add-WindowsCapability
- OpenSSH.Server
selection_powershell_modern:
EventID: 4103
Payload|contains|all:
- Add-WindowsCapability
- OpenSSH.Server
selection_powershell_block:
EventID: 4104
ScriptBlockText|contains|all:
- Add-WindowsCapability
- OpenSSH.Server
condition: 1 of selection*
falsepositives:
- legitimate administrator installation
- developer computer
level: medium
Stages and Predicates
Stage 0: condition
1 of selection*Stage 1: selection_powershell_native
selection_powershell_native:
EventID: 800
EventData|contains|all:
- Add-WindowsCapability
- OpenSSH.Server
Stage 2: selection_powershell_modern
selection_powershell_modern:
EventID: 4103
Payload|contains|all:
- Add-WindowsCapability
- OpenSSH.Server
Stage 3: selection_powershell_block
selection_powershell_block:
EventID: 4104
ScriptBlockText|contains|all:
- Add-WindowsCapability
- OpenSSH.Server
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
EventData | match |
| field:"EventData" kind:match |
Payload | match |
| field:"Payload" kind:match |
ScriptBlockText | match |
| field:"ScriptBlockText" kind:match |
Outbound Network Connection Initiated By Cmstp.EXE
#Detects a network connection initiated by Cmstp.EXE Its uncommon for "cmstp.exe" to initiate an outbound network connection. Investigate the source of such requests to determine if they are malicious.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 3: Network connection |
Rule Body
title: Outbound Network Connection Initiated By Cmstp.EXE
id: efafe0bf-4238-479e-af8f-797bd3490d2d
status: test
description: |
Detects a network connection initiated by Cmstp.EXE
Its uncommon for "cmstp.exe" to initiate an outbound network connection. Investigate the source of such requests to determine if they are malicious.
references:
- https://web.archive.org/web/20190720093911/http://www.endurant.io/cmstp/detecting-cmstp-enabled-code-execution-and-uac-bypass-with-sysmon/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-08-30
modified: 2024-05-31
tags:
- attack.stealth
- attack.t1218.003
logsource:
category: network_connection
product: windows
detection:
selection:
Image|endswith: '\cmstp.exe'
Initiated: 'true'
filter_main_local_ranges:
DestinationIp|cidr:
- '127.0.0.0/8'
- '10.0.0.0/8'
- '172.16.0.0/12'
- '192.168.0.0/16'
- '169.254.0.0/16'
- '::1/128' # IPv6 loopback
- 'fe80::/10' # IPv6 link-local addresses
- 'fc00::/7' # IPv6 private addresses
condition: selection and not 1 of filter_main_*
falsepositives:
- Unknown
# Note: Please report any false positive seen in the wild to help tune the rule.
level: high
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_main_*Stage 1: selection
selection:
Image|endswith: '\cmstp.exe'
Initiated: 'true'
Stage 2: not filter_main_local_ranges
filter_main_local_ranges:
DestinationIp|cidr:
- '127.0.0.0/8'
- '10.0.0.0/8'
- '172.16.0.0/12'
- '192.168.0.0/16'
- '169.254.0.0/16'
- '::1/128'
- 'fe80::/10'
- 'fc00::/7'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Image | ends_with |
| field:"Image" kind:ends_with value:"\cmstp.exe" |
Initiated | eq |
| field:"Initiated" kind:eq value:"true" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
DestinationIp | cidr_match | 10.0.0.0/8 | excludes:DestinationIp field:"DestinationIp" value:"10.0.0.0/8" |
DestinationIp | cidr_match | 127.0.0.0/8 | excludes:DestinationIp field:"DestinationIp" value:"127.0.0.0/8" |
DestinationIp | cidr_match | 169.254.0.0/16 | excludes:DestinationIp field:"DestinationIp" value:"169.254.0.0/16" |
DestinationIp | cidr_match | 172.16.0.0/12 | excludes:DestinationIp field:"DestinationIp" value:"172.16.0.0/12" |
DestinationIp | cidr_match | 192.168.0.0/16 | excludes:DestinationIp field:"DestinationIp" value:"192.168.0.0/16" |
DestinationIp | cidr_match | ::1/128 | excludes:DestinationIp field:"DestinationIp" value:"::1/128" |
DestinationIp | cidr_match | fc00::/7 | excludes:DestinationIp field:"DestinationIp" value:"fc00::/7" |
DestinationIp | cidr_match | fe80::/10 | excludes:DestinationIp field:"DestinationIp" value:"fe80::/10" |
Potential LethalHTA Technique Execution
#Detects potential LethalHTA technique where the "mshta.exe" is spawned by an "svchost.exe" process
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule Body
title: Potential LethalHTA Technique Execution
id: ed5d72a6-f8f4-479d-ba79-02f6a80d7471
status: test
description: Detects potential LethalHTA technique where the "mshta.exe" is spawned by an "svchost.exe" process
references:
- https://codewhitesec.blogspot.com/2018/07/lethalhta.html
author: Markus Neis
date: 2018-06-07
modified: 2023-02-07
tags:
- attack.stealth
- attack.t1218.005
logsource:
category: process_creation
product: windows
detection:
selection:
ParentImage|endswith: '\svchost.exe'
Image|endswith: '\mshta.exe'
condition: selection
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
ParentImage|endswith: '\svchost.exe'
Image|endswith: '\mshta.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Image | ends_with |
| field:"Image" kind:ends_with value:"\mshta.exe" |
ParentImage | ends_with |
| field:"ParentImage" kind:ends_with value:"\svchost.exe" |
Potential Peach Sandstorm APT C2 Communication Activity
#Detects potential C2 communication activity related to Peach Sandstorm APT
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Command & Control | No specific technique |
Rule Body
title: Potential Peach Sandstorm APT C2 Communication Activity
id: b8225208-81d0-4715-a822-12bcdd583e0f
status: test
description: Detects potential C2 communication activity related to Peach Sandstorm APT
references:
- https://twitter.com/MsftSecIntel/status/1737895710169628824
- https://www.virustotal.com/gui/file/364275326bbfc4a3b89233dabdaf3230a3d149ab774678342a40644ad9f8d614/details
author: X__Junior (Nextron Systems)
date: 2024-01-15
tags:
- attack.command-and-control
- detection.emerging-threats
logsource:
category: proxy
detection:
selection:
cs-method: 'GET'
c-uri|endswith:
- '/api/Core/Command/Init'
- '/api/Core/Command/Restart'
condition: selection
falsepositives:
- Unknown
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
cs-method: 'GET'
c-uri|endswith:
- '/api/Core/Command/Init'
- '/api/Core/Command/Restart'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
c-uri | ends_with |
| field:"c-uri" kind:ends_with |
cs-method | eq |
| field:"cs-method" kind:eq value:"GET" |
Potentially Suspicious ASP.NET Compilation Via AspNetCompiler
#Detects execution of "aspnet_compiler.exe" with potentially suspicious paths for compilation.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | |
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule Body
title: Potentially Suspicious ASP.NET Compilation Via AspNetCompiler
id: 9f50fe98-fe5c-4a2d-86c7-fad7f63ed622 # Susp Paths
related:
- id: 9ccba514-7cb6-4c5c-b377-700758f2f120 # SuspChild
type: similar
- id: 4c7f49ee-2638-43bb-b85b-ce676c30b260 # TMP File
type: similar
- id: a01b8329-5953-4f73-ae2d-aa01e1f35f00 # Exec
type: similar
status: test
description: Detects execution of "aspnet_compiler.exe" with potentially suspicious paths for compilation.
references:
- https://lolbas-project.github.io/lolbas/Binaries/Aspnet_Compiler/
- https://ijustwannared.team/2020/08/01/the-curious-case-of-aspnet_compiler-exe/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-08-14
modified: 2025-02-24
tags:
- attack.execution
- attack.stealth
- attack.t1127
logsource:
category: process_creation
product: windows
detection:
selection:
Image|contains:
- ':\Windows\Microsoft.NET\Framework\'
- ':\Windows\Microsoft.NET\Framework64\'
- ':\Windows\Microsoft.NET\FrameworkArm\'
- ':\Windows\Microsoft.NET\FrameworkArm64\'
Image|endswith: '\aspnet_compiler.exe'
CommandLine|contains:
# Note: add other potential suspicious paths
- '\Users\Public\'
- '\AppData\Local\Temp\'
- '\AppData\Local\Roaming\'
- ':\Temp\'
- ':\Windows\Temp\'
- ':\Windows\System32\Tasks\'
- ':\Windows\Tasks\'
condition: selection
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
Image|contains:
- ':\Windows\Microsoft.NET\Framework\'
- ':\Windows\Microsoft.NET\Framework64\'
- ':\Windows\Microsoft.NET\FrameworkArm\'
- ':\Windows\Microsoft.NET\FrameworkArm64\'
Image|endswith: '\aspnet_compiler.exe'
CommandLine|contains:
- '\Users\Public\'
- '\AppData\Local\Temp\'
- '\AppData\Local\Roaming\'
- ':\Temp\'
- ':\Windows\Temp\'
- ':\Windows\System32\Tasks\'
- ':\Windows\Tasks\'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Image | ends_with |
| field:"Image" kind:ends_with value:"\aspnet_compiler.exe" |
Image | match |
| field:"Image" kind:match |
PST Export Alert Using New-ComplianceSearchAction
#Alert when a user has performed an export to a search using 'New-ComplianceSearchAction' with the '-Export' flag. This detection will detect PST export even if the 'eDiscovery search or exported' alert is disabled in the O365.This rule will apply to ExchangePowerShell usage and from the cloud.
Known False Positives
- Exporting a PST can be done for legitimate purposes by legitimate sources, but due to the sensitive nature of PST content, it must be monitored.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Collection |
Rules Detecting the Same Action
These rules filter on the same operation.
Rule Body
title: PST Export Alert Using New-ComplianceSearchAction
id: 6897cd82-6664-11ed-9022-0242ac120002
related:
- id: 18b88d08-d73e-4f21-bc25-4b9892a4fdd0
type: similar
status: test
description: Alert when a user has performed an export to a search using 'New-ComplianceSearchAction' with the '-Export' flag. This detection will detect PST export even if the 'eDiscovery search or exported' alert is disabled in the O365.This rule will apply to ExchangePowerShell usage and from the cloud.
references:
- https://learn.microsoft.com/en-us/powershell/module/exchange/new-compliancesearchaction?view=exchange-ps
author: Nikita Khalimonenkov
date: 2022-11-17
tags:
- attack.collection
- attack.t1114
logsource:
service: threat_management
product: m365
detection:
selection:
eventSource: SecurityComplianceCenter
Payload|contains|all:
- 'New-ComplianceSearchAction'
- 'Export'
- 'pst'
condition: selection
falsepositives:
- Exporting a PST can be done for legitimate purposes by legitimate sources, but due to the sensitive nature of PST content, it must be monitored.
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
eventSource: SecurityComplianceCenter
Payload|contains|all:
- 'New-ComplianceSearchAction'
- 'Export'
- 'pst'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Payload | match |
| field:"Payload" kind:match |
eventSource | eq |
| field:"aws::eventSource" kind:eq value:"SecurityComplianceCenter" |
Rejetto HTTP File Server RCE
#Detects attempts to exploit a Rejetto HTTP File Server (HFS) via CVE-2014-6287
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access | |
| Persistence |
Rule Body
title: Rejetto HTTP File Server RCE
id: a133193c-2daa-4a29-8022-018695fcf0ae
status: test
description: Detects attempts to exploit a Rejetto HTTP File Server (HFS) via CVE-2014-6287
references:
- https://vk9-sec.com/hfs-code-execution-cve-2014-6287/
- https://www.exploit-db.com/exploits/39161
- https://github.com/Twigonometry/Cybersecurity-Notes/blob/c875b0f52df7d2c7a870e75e1f0c2679d417931d/Writeups/Hack%20the%20Box/Boxes/Optimum/10%20-%20Website.md
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-07-19
modified: 2023-01-02
tags:
- attack.persistence
- attack.initial-access
- attack.t1190
- attack.t1505.003
- cve.2014-6287
- detection.emerging-threats
logsource:
category: webserver
detection:
selection_search:
cs-uri-query|contains: '?search=%00{.'
selection_payload:
cs-uri-query|contains:
- 'save|' # Indication of saving a file which shouldn't be tested by vuln scanners
- 'powershell'
- 'cmd.exe'
- 'cmd /c'
- 'cmd /r'
- 'cmd /k'
- 'cscript'
- 'wscript'
- 'python'
- 'C:\Users\Public\'
- '%comspec%'
condition: all of selection_*
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
all of selection_*Stage 1: selection_search
selection_search:
cs-uri-query|contains: '?search=%00{.'
Stage 2: selection_payload
selection_payload:
cs-uri-query|contains:
- 'save|'
- 'powershell'
- 'cmd.exe'
- 'cmd /c'
- 'cmd /r'
- 'cmd /k'
- 'cscript'
- 'wscript'
- 'python'
- 'C:\Users\Public\'
- '%comspec%'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
cs-uri-query | match |
| field:"cs-uri-query" kind:match |
Rundll32 Internet Connection
#Detects a rundll32 that communicates with public IP addresses
Known False Positives
- Communication to other corporate systems that use IP addresses from public address spaces
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 3: Network connection |
Rule Body
title: Rundll32 Internet Connection
id: cdc8da7d-c303-42f8-b08c-b4ab47230263
status: test
description: Detects a rundll32 that communicates with public IP addresses
references:
- https://www.hybrid-analysis.com/sample/759fb4c0091a78c5ee035715afe3084686a8493f39014aea72dae36869de9ff6?environmentId=100
author: Florian Roth (Nextron Systems)
date: 2017-11-04
modified: 2024-03-13
tags:
- attack.stealth
- attack.t1218.011
- attack.execution
logsource:
category: network_connection
product: windows
detection:
selection:
Image|endswith: '\rundll32.exe'
Initiated: 'true'
filter_main_local_ranges:
DestinationIp|cidr:
- '127.0.0.0/8'
- '10.0.0.0/8'
- '172.16.0.0/12'
- '192.168.0.0/16'
- '169.254.0.0/16'
- '::1/128' # IPv6 loopback
- 'fe80::/10' # IPv6 link-local addresses
- 'fc00::/7' # IPv6 private addresses
filter_main_ms_ranges:
DestinationIp|cidr:
- '20.0.0.0/8' # Microsoft range, caused some FPs
- '51.103.0.0/16' # Microsoft AS8075 range, caused some FPs
- '51.104.0.0/16' # Microsoft AS8075 range, caused some FPs
- '51.105.0.0/16' # Microsoft AS8075 range, caused some FPs
filter_main_app_sdb:
CommandLine|endswith: '\system32\PcaSvc.dll,PcaPatchSdbTask'
filter_main_azure_managed:
SourceHostname|endswith: '.internal.cloudapp.net'
filter_main_svchost_update_processes:
# Note: This require "ParentImage" data enrichment.
ParentImage: 'C:\Windows\System32\svchost.exe'
DestinationPort: 443
condition: selection and not 1 of filter_main_*
falsepositives:
- Communication to other corporate systems that use IP addresses from public address spaces
level: medium
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_main_*Stage 1: selection
selection:
Image|endswith: '\rundll32.exe'
Initiated: 'true'
Stage 2: not filter_main_*
filter_main_local_ranges:
DestinationIp|cidr:
- '127.0.0.0/8'
- '10.0.0.0/8'
- '172.16.0.0/12'
- '192.168.0.0/16'
- '169.254.0.0/16'
- '::1/128'
- 'fe80::/10'
- 'fc00::/7'
filter_main_ms_ranges:
DestinationIp|cidr:
- '20.0.0.0/8'
- '51.103.0.0/16'
- '51.104.0.0/16'
- '51.105.0.0/16'
filter_main_app_sdb:
CommandLine|endswith: '\system32\PcaSvc.dll,PcaPatchSdbTask'
filter_main_azure_managed:
SourceHostname|endswith: '.internal.cloudapp.net'
filter_main_svchost_update_processes:
ParentImage: 'C:\Windows\System32\svchost.exe'
DestinationPort: 443
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Image | ends_with |
| field:"Image" kind:ends_with value:"\rundll32.exe" |
Initiated | eq |
| field:"Initiated" kind:eq value:"true" |
Exclusions
The rule actively suppresses these predicates.
Security Support Provider (SSP) Added to LSA Configuration
#Detects the addition of a SSP to the registry. Upon a reboot or API call, SSP DLLs gain access to encrypted and plaintext passwords stored in Windows.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation |
Telemetry Coverage
Rule Body
title: Security Support Provider (SSP) Added to LSA Configuration
id: eeb30123-9fbd-4ee8-aaa0-2e545bbed6dc
status: test
description: |
Detects the addition of a SSP to the registry. Upon a reboot or API call, SSP DLLs gain access to encrypted and plaintext passwords stored in Windows.
references:
- https://powersploit.readthedocs.io/en/latest/Persistence/Install-SSP/
- https://github.com/EmpireProject/Empire/blob/08cbd274bef78243d7a8ed6443b8364acd1fc48b/data/module_source/persistence/Install-SSP.ps1#L157
author: iwillkeepwatch
date: 2019-01-18
modified: 2026-03-30
tags:
- attack.privilege-escalation
- attack.persistence
- attack.t1547.005
logsource:
category: registry_event
product: windows
detection:
selection:
TargetObject|endswith:
- '\Control\Lsa\Security Packages'
- '\Control\Lsa\OSConfig\Security Packages'
filter_main_msiexec:
Image:
- 'C:\Windows\system32\msiexec.exe'
- 'C:\Windows\syswow64\MsiExec.exe'
filter_main_image_null:
Image: null
condition: selection and not 1 of filter_main_*
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_main_*Stage 1: selection
selection:
TargetObject|endswith:
- '\Control\Lsa\Security Packages'
- '\Control\Lsa\OSConfig\Security Packages'
Stage 2: not filter_main_*
filter_main_msiexec:
Image:
- 'C:\Windows\system32\msiexec.exe'
- 'C:\Windows\syswow64\MsiExec.exe'
filter_main_image_null:
Image: null
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TargetObject | ends_with |
| field:"TargetObject" kind:ends_with |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
Image | eq | C:\Windows\system32\msiexec.exe | excludes:Image field:"Image" value:"C:\Windows\system32\msiexec.exe" |
Image | eq | C:\Windows\syswow64\MsiExec.exe | excludes:Image field:"Image" value:"C:\Windows\syswow64\MsiExec.exe" |
Image | is_null | excludes:Image |
Suspicious Base64 Encoded User-Agent
#Detects suspicious encoded User-Agent strings, as seen used by some malware.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Command & Control |
Rule Body
title: Suspicious Base64 Encoded User-Agent
id: d443095b-a221-4957-a2c4-cd1756c9b747
related:
- id: 894a8613-cf12-48b3-8e57-9085f54aa0c3
type: derived
status: test
description: Detects suspicious encoded User-Agent strings, as seen used by some malware.
references:
- https://deviceatlas.com/blog/list-of-user-agent-strings#desktop
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-05-04
tags:
- attack.command-and-control
- attack.t1071.001
logsource:
category: proxy
detection:
selection:
c-useragent|startswith:
- 'Q2hyb21l' # Chrome Encoded with offset to not include padding
- 'QXBwbGVXZWJLaX' # AppleWebKit Encoded with offset to not include padding
- 'RGFsdmlr' # Dalvik Encoded with offset to not include padding
- 'TW96aWxsY' # Mozilla Encoded with offset to not include padding (as used by YamaBot)
condition: selection
falsepositives:
- Unknown
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
c-useragent|startswith:
- 'Q2hyb21l'
- 'QXBwbGVXZWJLaX'
- 'RGFsdmlr'
- 'TW96aWxsY'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
c-useragent | starts_with |
| field:"c-useragent" kind:starts_with |
System Control Panel Item Loaded From Uncommon Location
#Detects image load events of system control panel items (.cpl) from uncommon or non-system locations that may indicate DLL sideloading or other abuse techniques.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | |
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 7: Image loaded |
Rule Body
title: System Control Panel Item Loaded From Uncommon Location
id: 2b140a5c-dc02-4bb8-b6b1-8bdb45714cde
status: test
description: |
Detects image load events of system control panel items (.cpl) from uncommon or non-system locations that may indicate DLL sideloading or other abuse techniques.
references:
- https://www.hexacorn.com/blog/2024/01/06/1-little-known-secret-of-fondue-exe/
- https://www.hexacorn.com/blog/2024/01/01/1-little-known-secret-of-hdwwiz-exe/
- https://github.com/mhaskar/FsquirtCPLPoC
- https://securelist.com/sidewinder-apt/114089/
author: Anish Bogati
date: 2024-01-09
modified: 2026-02-17
tags:
- attack.persistence
- attack.privilege-escalation
- attack.execution
- attack.stealth
- attack.t1574.001
logsource:
product: windows
category: image_load
detection:
selection:
ImageLoaded|endswith:
- '\appwiz.cpl' # Usually loaded by fondue.exe
- '\bthprops.cpl' # Usually loaded by fsquirt.exe
- '\hdwwiz.cpl' # Usually loaded by hdwwiz.exe
filter_main_legit_location:
ImageLoaded|startswith:
- 'C:\Windows\Prefetch\'
- 'C:\Windows\System32\'
- 'C:\Windows\SysWOW64\'
- 'C:\Windows\WinSxS\'
condition: selection and not 1 of filter_main_*
falsepositives:
- Unknown
level: high
regression_tests_path: regression_data/rules/windows/image_load/image_load_side_load_cpl_from_non_system_location/info.yml
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_main_*Stage 1: selection
selection:
ImageLoaded|endswith:
- '\appwiz.cpl'
- '\bthprops.cpl'
- '\hdwwiz.cpl'
Stage 2: not filter_main_legit_location
filter_main_legit_location:
ImageLoaded|startswith:
- 'C:\Windows\Prefetch\'
- 'C:\Windows\System32\'
- 'C:\Windows\SysWOW64\'
- 'C:\Windows\WinSxS\'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
ImageLoaded | ends_with |
| field:"ImageLoaded" kind:ends_with |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
ImageLoaded | starts_with | C:\Windows\Prefetch\ | excludes:ImageLoaded field:"ImageLoaded" value:"C:\Windows\Prefetch\" |
ImageLoaded | starts_with | C:\Windows\SysWOW64\ | excludes:ImageLoaded field:"ImageLoaded" value:"C:\Windows\SysWOW64\" |
ImageLoaded | starts_with | C:\Windows\System32\ | excludes:ImageLoaded field:"ImageLoaded" value:"C:\Windows\System32\" |
ImageLoaded | starts_with | C:\Windows\WinSxS\ | excludes:ImageLoaded field:"ImageLoaded" value:"C:\Windows\WinSxS\" |
System crash behavior manipulation - WMImplant (registry)
#Detects scenarios where an attacker abuses the Windows "system failure and recovery" capacities (CrashControl) to store information or to establish persistence.
Known False Positives
- Forensic, BSOD investigation
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence |
Telemetry Coverage
Rule Body
title: System crash behavior manipulation - WMImplant (registry)
description: Detects scenarios where an attacker abuses the Windows "system failure and recovery" capacities (CrashControl) to store information or to establish persistence.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0003-Persistence/T1546-Event%20Triggered%20Execution
- https://github.com/FortyNorthSecurity/WMImplant/
- https://docs.microsoft.com/en-us/windows/client-management/system-failure-recovery-options
- https://mathieubuisson.github.io/crash-behaviour-with-powershell/
- https://fortynorthsecurity.com/blog/an-introduction-to-wmimplant-post-exploitation/
- https://fr.slideshare.net/CTruncer/blackhat-usa-2019-wmimplant-an-offensive-use-case-of-wmi
- https://securityaffairs.co/wordpress/117001/ics-scada/ot-network-hack-smart-meters.html
- https://logrhythm.com/blog/bad-rabbit-ransomware-technical-analysis/
- https://www.darkoperator.com/blog/2017/10/14/basics-of-tracking-wmi-activity
- https://lolbas-project.github.io/lolbas/Binaries/Wmic/
tags:
- attack.persistence
- attack.t1546.003
author: mdecrevoisier
status: experimental
logsource:
product: windows
category: registry_event
detection: # full command: "wmic recoveros set AutoReboot = False"
selection:
Image|endswith: \wmiprvse.exe
EventType: SetValue
TargetObject|endswith:
- \CurrentControlSet\Control\CrashControl\AutoReboot
- \CurrentControlSet\Control\CrashControl\CrashDumpEnabled
- \CurrentControlSet\Control\CrashControl\DumpFile
- \CurrentControlSet\Control\CrashControl\KernelDumpOnly
- \CurrentControlSet\Control\CrashControl\LogEvent
- \CurrentControlSet\Control\CrashControl\MiniDumpDir
- \CurrentControlSet\Control\CrashControl\Overwrite
- \CurrentControlSet\Control\CrashControl\SendAlert
condition: selection
falsepositives:
- Forensic, BSOD investigation
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
Image|endswith: \wmiprvse.exe
EventType: SetValue
TargetObject|endswith:
- \CurrentControlSet\Control\CrashControl\AutoReboot
- \CurrentControlSet\Control\CrashControl\CrashDumpEnabled
- \CurrentControlSet\Control\CrashControl\DumpFile
- \CurrentControlSet\Control\CrashControl\KernelDumpOnly
- \CurrentControlSet\Control\CrashControl\LogEvent
- \CurrentControlSet\Control\CrashControl\MiniDumpDir
- \CurrentControlSet\Control\CrashControl\Overwrite
- \CurrentControlSet\Control\CrashControl\SendAlert
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
EventType | eq |
| field:"EventType" kind:eq value:"SetValue" |
Image | ends_with |
| field:"Image" kind:ends_with value:"\wmiprvse.exe" |
TargetObject | ends_with |
| field:"TargetObject" kind:ends_with |
System time changed (PowerShell)
#Detects scenarios where an attacker attempts to change the system time to evade defense.
Known False Positives
- None
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
Rule Body
title: System time changed (PowerShell)
description: Detects scenarios where an attacker attempts to change the system time to evade defense.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0005-Defense%20Evasion/T1070.006-Timestomp
- https://blog.menasec.net/2019/02/threat-hunting-19-suspicious-system.html
- https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/set-date
tags:
- attack.defense_evasion
- attack.t1070.006
author: mdecrevoisier
status: experimental
logsource:
product: windows
category:
- ps_module
- ps_classic_script
- ps_script
detection: # full command: Set-Date -Date (Get-Date).AddDays(3)
selection_powershell_native:
EventID: 800
EventData|contains: Set-Date
EventData|contains:
- -Date
- -Adjust
selection_powershell_modern:
EventID: 4103
Payload|contains: Set-Date
Payload|contains:
- -Date
- -Adjust
selection_powershell_block:
EventID: 4104
ScriptBlockText|contains: Set-Date
ScriptBlockText|contains:
- -Date
- -Adjust
condition: selection_powershell_native or selection_powershell_modern or selection_powershell_block
falsepositives:
- None
level: medium
Stages and Predicates
Stage 0: condition
selection_powershell_native or selection_powershell_modern or selection_powershell_blockStage 1: selection_powershell_native
selection_powershell_native:
EventID: 800
EventData|contains: Set-Date
EventData|contains:
- -Date
- -Adjust
Stage 2: selection_powershell_modern
selection_powershell_modern:
EventID: 4103
Payload|contains: Set-Date
Payload|contains:
- -Date
- -Adjust
Stage 3: selection_powershell_block
selection_powershell_block:
EventID: 4104
ScriptBlockText|contains: Set-Date
ScriptBlockText|contains:
- -Date
- -Adjust
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
EventData | match |
| field:"EventData" kind:match |
Payload | match |
| field:"Payload" kind:match |
ScriptBlockText | match |
| field:"ScriptBlockText" kind:match |
Uncommon System Information Discovery Via Wmic.EXE
#Detects the use of the WMI command-line (WMIC) utility to identify and display various system information, including OS, CPU, GPU, and disk drive names; memory capacity; display resolution; and baseboard, BIOS, and GPU driver products/versions. Some of these commands were used by Aurora Stealer in late 2022/early 2023.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Discovery |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Uncommon System Information Discovery Via Wmic.EXE
id: 9d5a1274-922a-49d0-87f3-8c653483b909
related:
- id: d85ecdd7-b855-4e6e-af59-d9c78b5b861e
type: derived
status: test
description: |
Detects the use of the WMI command-line (WMIC) utility to identify and display various system information,
including OS, CPU, GPU, and disk drive names; memory capacity; display resolution; and baseboard, BIOS,
and GPU driver products/versions.
Some of these commands were used by Aurora Stealer in late 2022/early 2023.
references:
- https://github.com/redcanaryco/atomic-red-team/blob/a2ccd19c37d0278b4ffa8583add3cf52060a5418/atomics/T1082/T1082.md#atomic-test-25---system-information-discovery-with-wmic
- https://nwgat.ninja/getting-system-information-with-wmic-on-windows/
- https://blog.sekoia.io/aurora-a-rising-stealer-flying-under-the-radar
- https://blog.cyble.com/2023/01/18/aurora-a-stealer-using-shapeshifting-tactics/
- https://app.any.run/tasks/a6aa0057-82ec-451f-8f99-55650ca537da/
- https://www.virustotal.com/gui/file/d6f6bc10ae0e634ed4301d584f61418cee18e5d58ad9af72f8aa552dc4aaeca3/behavior
author: TropChaud
date: 2023-01-26
modified: 2023-12-19
tags:
- attack.discovery
- attack.t1082
logsource:
category: process_creation
product: windows
detection:
selection_wmic:
- Description: 'WMI Commandline Utility'
- OriginalFileName: 'wmic.exe'
- Image|endswith: '\WMIC.exe'
selection_commands:
CommandLine|contains:
- 'LOGICALDISK get Name,Size,FreeSpace'
- 'os get Caption,OSArchitecture,Version'
condition: all of selection_*
falsepositives:
- Unknown
level: medium
simulation:
- type: atomic-red-team
name: System Information Discovery with WMIC
technique: T1082
atomic_guid: 8851b73a-3624-4bf7-8704-aa312411565c
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_wmic_recon_system_info_uncommon/info.yml
Stages and Predicates
Stage 0: condition
all of selection_*Stage 1: selection_wmic
selection_wmic:
- Description: 'WMI Commandline Utility'
- OriginalFileName: 'wmic.exe'
- Image|endswith: '\WMIC.exe'
Stage 2: selection_commands
selection_commands:
CommandLine|contains:
- 'LOGICALDISK get Name,Size,FreeSpace'
- 'os get Caption,OSArchitecture,Version'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Description | eq |
| field:"Description" kind:eq value:"WMI Commandline Utility" |
Image | ends_with |
| field:"Image" kind:ends_with value:"\WMIC.exe" |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq value:"wmic.exe" |
User Added To Group With CA Policy Modification Access
#Monitor and alert on group membership additions of groups that have CA policy modification access
Known False Positives
- User removed from the group is approved
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation | |
| Defense Impairment | |
| Credential Access |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Azure | any: Entra ID audit event (any operation) |
Rule Body
title: User Added To Group With CA Policy Modification Access
id: 91c95675-1f27-46d0-bead-d1ae96b97cd3
status: test
description: Monitor and alert on group membership additions of groups that have CA policy modification access
references:
- https://learn.microsoft.com/en-us/entra/architecture/security-operations-infrastructure#conditional-access
author: Mark Morowczynski '@markmorow', Thomas Detzner '@tdetzner'
date: 2022-08-04
tags:
- attack.privilege-escalation
- attack.credential-access
- attack.persistence
- attack.defense-impairment
- attack.t1548
- attack.t1556
logsource:
product: azure
service: auditlogs
detection:
selection:
properties.message: Add member from group
condition: selection
falsepositives:
- User removed from the group is approved
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
properties.message: Add member from group
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
properties.message | eq |
| field:"properties.message" kind:eq value:"Add member from group" |
Wab/Wabmig Unusual Parent Or Child Processes
#Detects unusual parent or children of the wab.exe (Windows Contacts) and Wabmig.exe (Microsoft Address Book Import Tool) processes as seen being used with bumblebee activity
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | No specific technique |
| Stealth | No specific technique |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule Body
title: Wab/Wabmig Unusual Parent Or Child Processes
id: 63d1ccc0-2a43-4f4b-9289-361b308991ff
status: test
description: Detects unusual parent or children of the wab.exe (Windows Contacts) and Wabmig.exe (Microsoft Address Book Import Tool) processes as seen being used with bumblebee activity
references:
- https://thedfirreport.com/2022/08/08/bumblebee-roasts-its-way-to-domain-admin/
- https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/bumblebee-loader-cybercrime
- https://thedfirreport.com/2022/09/26/bumblebee-round-two/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-08-12
modified: 2022-09-27
tags:
- attack.execution
- attack.stealth
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
# Add more if known
- \WmiPrvSE.exe
- \svchost.exe
- \dllhost.exe
Image|endswith:
- '\wab.exe'
- '\wabmig.exe' # (Microsoft Address Book Import Tool)
selection_child:
# You can add specific suspicious child processes (such as cmd, powershell...) to increase the accuracy
ParentImage|endswith:
- '\wab.exe'
- '\wabmig.exe' # (Microsoft Address Book Import Tool)
condition: 1 of selection_*
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
1 of selection_*Stage 1: selection_parent
selection_parent:
ParentImage|endswith:
- \WmiPrvSE.exe
- \svchost.exe
- \dllhost.exe
Image|endswith:
- '\wab.exe'
- '\wabmig.exe'
Stage 2: selection_child
selection_child:
ParentImage|endswith:
- '\wab.exe'
- '\wabmig.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Image | ends_with |
| field:"Image" kind:ends_with |
ParentImage | ends_with |
| field:"ParentImage" kind:ends_with |
Windows native backup size re-configuration
#Detects scenarios where an attacker attempts to delete existing Windows native backup by reducing the allocated backup storage.
Known False Positives
- administrator cleaning outdated backup
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Impact |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule Body
title: Windows native backup size re-configuration
description: Detects scenarios where an attacker attempts to delete existing Windows native backup by reducing the allocated backup storage.
references:
- https://www.picussecurity.com/resource/blog/how-to-beat-nefilim-ransomware-attacks
- https://www.itechtics.com/volume-shadow-copies/
- https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/wbadmin
- https://www.picussecurity.com/resource/blog/technique-to-delete-volume-shadow-copies-deviceiocontrol
tags:
- attack.impact
- attack.t1490
author: mdecrevoisier
status: experimental
logsource:
product: windows
category: process_creation
detection:
selection: # vssadmin resize shadowstorage /for=c: /on=c: /maxsize=401MB
EventID: 4688
NewProcessName|endswith: \Windows\System32\vssadmin.exe
CommandLine|contains|all:
- resize
- shadowstorage
condition: selection
falsepositives:
- administrator cleaning outdated backup
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
EventID: 4688
NewProcessName|endswith: \Windows\System32\vssadmin.exe
CommandLine|contains|all:
- resize
- shadowstorage
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
NewProcessName | ends_with |
| field:"Image" kind:ends_with value:"\Windows\System32\vssadmin.exe" |