Detection rules › Sigma
Sigma rules: 07
Admin User Remote Logon
#Detect remote login by Administrator user (depending on internal pattern).
Known False Positives
- Legitimate administrative activity.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access | |
| Persistence | |
| Privilege Escalation | |
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Security-Auditing | Event ID 4624: An account was successfully logged on. |
Rule Body
title: Admin User Remote Logon
id: 0f63e1ef-1eb9-4226-9d54-8927ca08520a
status: test
description: Detect remote login by Administrator user (depending on internal pattern).
references:
- https://car.mitre.org/wiki/CAR-2016-04-005
author: juju4
date: 2017-10-29
modified: 2022-10-09
tags:
- attack.privilege-escalation
- attack.persistence
- attack.lateral-movement
- attack.initial-access
- attack.stealth
- attack.t1078.001
- attack.t1078.002
- attack.t1078.003
- car.2016-04-005
logsource:
product: windows
service: security
definition: 'Requirements: Identifiable administrators usernames (pattern or special unique character. ex: "Admin-*"), internal policy mandating use only as secondary account'
detection:
selection:
EventID: 4624
LogonType: 10
AuthenticationPackageName: Negotiate
TargetUserName|startswith: 'Admin'
condition: selection
falsepositives:
- Legitimate administrative activity.
level: low
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
EventID: 4624
LogonType: 10
AuthenticationPackageName: Negotiate
TargetUserName|startswith: 'Admin'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
AuthenticationPackageName | eq |
| field:"AuthenticationPackageName" kind:eq value:"Negotiate" |
LogonType | eq |
| field:"LogonType" kind:eq value:"10" |
TargetUserName | starts_with |
| field:"TargetUserName" kind:starts_with value:"Admin" |
ADS Zone.Identifier Deleted By Uncommon Application
#Detects the deletion of the "Zone.Identifier" ADS by an uncommon process. Attackers can leverage this in order to bypass security restrictions that make use of the ADS such as Microsoft Office apps.
Known False Positives
- Other third party applications not listed.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
Rule Body
title: ADS Zone.Identifier Deleted By Uncommon Application
id: 3109530e-ab47-4cc6-a953-cac5ebcc93ae
related:
- id: 7eac0a16-5832-4e81-865f-0268a6d19e4b
type: similar
status: test
description: Detects the deletion of the "Zone.Identifier" ADS by an uncommon process. Attackers can leverage this in order to bypass security restrictions that make use of the ADS such as Microsoft Office apps.
references:
- https://securityliterate.com/how-malware-abuses-the-zone-identifier-to-circumvent-detection-and-analysis/
- Internal Research
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-09-04
modified: 2025-07-04
tags:
- attack.stealth
- attack.t1070.004
logsource:
product: windows
category: file_delete
detection:
selection:
TargetFilename|endswith: ':Zone.Identifier'
filter_main_generic:
# Note: in some envs this activity might be performed by other software. Apply additional filters as necessary
Image:
- 'C:\Program Files\PowerShell\7-preview\pwsh.exe'
- 'C:\Program Files\PowerShell\7\pwsh.exe'
- 'C:\Windows\explorer.exe'
- 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
- 'C:\Windows\SysWOW64\explorer.exe'
- 'C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe'
filter_optional_browsers_chrome:
Image:
- 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
- 'C:\Program Files\Google\Chrome\Application\chrome.exe'
filter_optional_browsers_firefox:
Image:
- 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'
- 'C:\Program Files\Mozilla Firefox\firefox.exe'
filter_optional_browsers_msedge:
Image:
- 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
- 'C:\Program Files\Microsoft\Edge\Application\msedge.exe'
condition: selection and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
- Other third party applications not listed.
level: medium
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_main_* and not 1 of filter_optional_*Stage 1: selection
selection:
TargetFilename|endswith: ':Zone.Identifier'
Stage 2: not filter_main_generic
filter_main_generic:
Image:
- 'C:\Program Files\PowerShell\7-preview\pwsh.exe'
- 'C:\Program Files\PowerShell\7\pwsh.exe'
- 'C:\Windows\explorer.exe'
- 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
- 'C:\Windows\SysWOW64\explorer.exe'
- 'C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe'
Stage 3: not filter_optional_*
filter_optional_browsers_chrome:
Image:
- 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
- 'C:\Program Files\Google\Chrome\Application\chrome.exe'
filter_optional_browsers_firefox:
Image:
- 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'
- 'C:\Program Files\Mozilla Firefox\firefox.exe'
filter_optional_browsers_msedge:
Image:
- 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
- 'C:\Program Files\Microsoft\Edge\Application\msedge.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TargetFilename | ends_with |
| field:"TargetFilename" kind:ends_with value:":Zone.Identifier" |
Exclusions
The rule actively suppresses these predicates.
App Granted Privileged Delegated Or App Permissions
#Detects when administrator grants either application permissions (app roles) or highly privileged delegated permissions
Known False Positives
- When the permission is legitimately needed for the app
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Azure | Add app role assignment to service principal |
Rules Detecting the Same Action
These rules filter on the same operation.
- [Entra ID] Application Assigned Administrator Permissions Immediately After Obtaining Role Management Permissions (Kusto)
- [Entra ID] Application Granted Administrative Permission to Assign Microsoft Entra ID Roles (Kusto)
- Added Credentials to Existing Application (Sigma)
- Added Owner To Application (Sigma)
- Admin promotion after Role Management Application Permission Grant (Kusto)
- App Granted Microsoft Permissions (Sigma)
- Application AppID Uri Configuration Changes (Sigma)
- Application ID URI Changed (Kusto)
Rule Body
title: App Granted Privileged Delegated Or App Permissions
id: 5aecf3d5-f8a0-48e7-99be-3a759df7358f
related:
- id: ba2a7c80-027b-460f-92e2-57d113897dbc
type: obsolete
status: test
description: Detects when administrator grants either application permissions (app roles) or highly privileged delegated permissions
references:
- https://learn.microsoft.com/en-us/entra/architecture/security-operations-applications#application-granted-highly-privileged-permissions
author: Bailey Bercik '@baileybercik', Mark Morowczynski '@markmorow'
date: 2022-07-28
modified: 2023-03-29
tags:
- attack.persistence
- attack.privilege-escalation
- attack.t1098.003
logsource:
product: azure
service: auditlogs
detection:
selection:
properties.message: Add app role assignment to service principal
condition: selection
falsepositives:
- When the permission is legitimately needed for the app
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
properties.message: Add app role assignment to service principal
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
properties.message | eq |
| field:"properties.message" kind:eq value:"Add app role assignment to service principal" |
CVE-2024-50623 Exploitation Attempt - Cleo
#Detects exploitation attempt of Cleo's CVE-2024-50623 by looking for a "cmd.exe" process spawning from the Celo software suite with suspicious Powershell commandline.
Known False Positives
- Unlikely
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: CVE-2024-50623 Exploitation Attempt - Cleo
id: f007b877-02e3-45b7-8501-1b78c2864029
status: experimental
description: |
Detects exploitation attempt of Cleo's CVE-2024-50623 by looking for a "cmd.exe" process spawning from the Celo software suite with suspicious Powershell commandline.
references:
- https://www.huntress.com/blog/threat-advisory-oh-no-cleo-cleo-software-actively-being-exploited-in-the-wild
author: Tanner Filip, Austin Worline, Chad Hudson, Matt Anderson
date: 2024-12-09
tags:
- attack.initial-access
- attack.execution
- attack.t1190
- cve.2024-50623
- detection.emerging-threats
logsource:
category: process_creation
product: windows
detection:
selection:
ParentImage|endswith: '\javaw.exe'
ParentCommandLine|contains:
- 'Harmony'
- 'lexicom'
- 'VersaLex'
- 'VLTrader'
Image|endswith: '\cmd.exe'
CommandLine|contains:
- 'powershell'
- ' -enc '
- ' -EncodedCommand'
- '.Download'
condition: selection
falsepositives:
- Unlikely
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
ParentImage|endswith: '\javaw.exe'
ParentCommandLine|contains:
- 'Harmony'
- 'lexicom'
- 'VersaLex'
- 'VLTrader'
Image|endswith: '\cmd.exe'
CommandLine|contains:
- 'powershell'
- ' -enc '
- ' -EncodedCommand'
- '.Download'
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:"\cmd.exe" |
ParentCommandLine | match |
| field:"ParentCommandLine" kind:match |
ParentImage | ends_with |
| field:"ParentImage" kind:ends_with value:"\javaw.exe" |
Exports Critical Registry Keys To a File
#Detects the export of a crital Registry key to a file.
Known False Positives
- Dumping hives for legitimate purpouse i.e. backup or forensic investigation
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Discovery |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Exports Critical Registry Keys To a File
id: 82880171-b475-4201-b811-e9c826cd5eaa
related:
- id: f0e53e89-8d22-46ea-9db5-9d4796ee2f8a
type: similar
status: test
description: Detects the export of a crital Registry key to a file.
references:
- https://lolbas-project.github.io/lolbas/Binaries/Regedit/
- https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f
author: Oddvar Moe, Sander Wiebing, oscd.community
date: 2020-10-12
modified: 2024-03-13
tags:
- attack.exfiltration
- attack.discovery
- attack.t1012
logsource:
category: process_creation
product: windows
detection:
selection_img:
- Image|endswith: '\regedit.exe'
- OriginalFileName: 'REGEDIT.EXE'
selection_cli_1:
CommandLine|contains|windash: ' -E '
selection_cli_2:
CommandLine|contains:
- 'hklm'
- 'hkey_local_machine'
selection_cli_3:
CommandLine|endswith:
- '\system'
- '\sam'
- '\security'
condition: all of selection_*
falsepositives:
- Dumping hives for legitimate purpouse i.e. backup or forensic investigation
level: high
Stages and Predicates
Stage 0: condition
all of selection_*Stage 1: selection_img
selection_img:
- Image|endswith: '\regedit.exe'
- OriginalFileName: 'REGEDIT.EXE'
Stage 2: selection_cli_1
selection_cli_1:
CommandLine|contains|windash: ' -E '
Stage 3: selection_cli_2
selection_cli_2:
CommandLine|contains:
- 'hklm'
- 'hkey_local_machine'
Stage 4: selection_cli_3
selection_cli_3:
CommandLine|endswith:
- '\system'
- '\sam'
- '\security'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | ends_with |
| field:"CommandLine" kind:ends_with |
CommandLine | match |
| field:"CommandLine" kind:match |
Image | ends_with |
| field:"Image" kind:ends_with value:"\regedit.exe" |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq value:"REGEDIT.EXE" |
HackTool - SILENTTRINITY Stager DLL Load
#Detects SILENTTRINITY stager dll loading activity
Known False Positives
- Unlikely
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Command & Control |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 7: Image loaded |
Rule Body
title: HackTool - SILENTTRINITY Stager DLL Load
id: 75c505b1-711d-4f68-a357-8c3fe37dbf2d
related:
- id: 03552375-cc2c-4883-bbe4-7958d5a980be # Process Creation
type: derived
status: test
description: Detects SILENTTRINITY stager dll loading activity
references:
- https://github.com/byt3bl33d3r/SILENTTRINITY
author: Aleksey Potapov, oscd.community
date: 2019-10-22
modified: 2023-02-17
tags:
- attack.command-and-control
- attack.t1071
logsource:
category: image_load
product: windows
detection:
selection:
Description|contains: 'st2stager'
condition: selection
falsepositives:
- Unlikely
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
Description|contains: 'st2stager'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Description | match |
| field:"Description" kind:match value:"st2stager" |
JAMF MDM Potential Suspicious Child Process
#Detects potential suspicious child processes of "jamf". Could be a sign of potential abuse of Jamf as a C2 server as seen by Typhon MythicAgent.
Known False Positives
- Legitimate execution of custom scripts or commands by Jamf administrators. Apply additional filters accordingly
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | No specific technique |
Telemetry Coverage
Rule Body
title: JAMF MDM Potential Suspicious Child Process
id: 2316929c-01aa-438c-970f-099145ab1ee6
status: test
description: Detects potential suspicious child processes of "jamf". Could be a sign of potential abuse of Jamf as a C2 server as seen by Typhon MythicAgent.
references:
- https://github.com/MythicAgents/typhon/
- https://www.zoocoup.org/casper/jamf_cheatsheet.pdf
- https://docs.jamf.com/10.30.0/jamf-pro/administrator-guide/Components_Installed_on_Managed_Computers.html
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-08-22
tags:
- attack.execution
logsource:
category: process_creation
product: macos
detection:
selection:
ParentImage|endswith: '/jamf'
Image|endswith:
# Note: Add additional binaries/commands that are uncommon during your typical admin usage of Jamf
- '/bash'
- '/sh'
condition: selection
falsepositives:
- Legitimate execution of custom scripts or commands by Jamf administrators. Apply additional filters accordingly
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
ParentImage|endswith: '/jamf'
Image|endswith:
- '/bash'
- '/sh'
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 value:"/jamf" |
Kerberos ticket without a trailing $ (CVE-2021-42278/42287)
#Detects scenarios where an attacker attempts to spoof the SAM account name of a a domain controller in order to impersonate it. Vulnerability comes from that computer accounts should have a trailing $ in their name (i.e. sAMAccountName attribute) but no validation process existed until the patch was released. During the offensive phase, attacker will create and rename the sAMAccountName of a computer account to look like the one of a domain controller.
Known False Positives
- None
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Privilege Escalation | |
| Credential Access |
Telemetry Coverage
Rule Body
title: Kerberos ticket without a trailing $ (CVE-2021-42278/42287)
description: Detects scenarios where an attacker attempts to spoof the SAM account name of a a domain controller in order to impersonate it. Vulnerability comes from that computer accounts should have a trailing $ in their name (i.e. sAMAccountName attribute) but no validation process existed until the patch was released. During the offensive phase, attacker will create and rename the sAMAccountName of a computer account to look like the one of a domain controller.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0006-Credential%20Access/T1558-Steal%20or%20Forge%20Kerberos%20Tickets
- https://exploit.ph/cve-2021-42287-cve-2021-42278-weaponisation.html
- https://www.thehacker.recipes/ad/movement/kerberos/samaccountname-spoofing
- https://support.microsoft.com/en-us/topic/kb5008380-authentication-updates-cve-2021-42287-9dafac11-e0d0-4cb8-959a-143bd0201041
- https://github.com/WazeHell/sam-the-admin
- https://github.com/cube0x0/noPac
- https://github.com/ly4k/Pachine
- https://cloudbrothers.info/en/exploit-kerberos-samaccountname-spoofing/
tags:
- attack.credential_access
- attack.t1558 # forged ticket
- attack.privilege_escalation
- attack.t1068 # exploitation for privilege escalation
author: mdecrevoisier
status: experimental
logsource:
product: windows
service: security
detection:
selection_tgt:
EventID: 4768
Status: 0x0 # Success
ServiceSid|endswith: '-502' # Krbtgt account SID
#TargetUserName.lower() == Computer.split(".")[0].lower() # normal behavior would be that TargetUsername and Computer are different (DC01$ and DC01.domain.lan). Having both matching is suspicious.
selection_tgs:
EventID: 4769
Status: 0x0 # Success
ServiceName|endswith: $
#TargetUserName.split("@")[0].lower() == Computer.split(".")[0].lower() # normal behavior would be that TargetUsername and Computer are different (DC01$@domain.lan vs DC01.domain.lan). Having both matching is suspicious.
selection_host:
TargetUserName|contains: "$"
condition: (selection_tgt or selection_tgs) and not selection_host
falsepositives:
- None
level: high
Stages and Predicates
Stage 0: condition
(selection_tgt or selection_tgs) and not selection_hostStage 1: selection_tgt
selection_tgt:
EventID: 4768
Status: 0x0
ServiceSid|endswith: '-502'
Stage 2: selection_tgs
selection_tgs:
EventID: 4769
Status: 0x0
ServiceName|endswith: $
Stage 3: not selection_host
selection_host:
TargetUserName|contains: "$"
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
ServiceName | ends_with |
| field:"ServiceName" kind:ends_with value:"$" |
ServiceSid | ends_with |
| field:"ServiceSid" kind:ends_with value:"-502" |
Status | eq |
| field:"Status" kind:eq value:"0" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
TargetUserName | match | $ | excludes:TargetUserName field:"TargetUserName" value:"$" |
Massive group membership changes detected
#Detects scenarios where an attacker will add a compromised account into different domain groups in order to gain access to all the assets under the control of those concerned groups.
Known False Positives
- Automatic scripts, provisionning accounts
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence |
Telemetry Coverage
Rule Body
title: Massive group membership changes detected
name: massive_group_changes
description: Detects scenarios where an attacker will add a compromised account into different domain groups in order to gain access to all the assets under the control of those concerned groups.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0003-Persistence/T1098.xxx-Account%20manipulation
tags:
- attack.persistence
- attack.t1098
author: mdecrevoisier
status: experimental
logsource:
product: windows
service: security
detection:
selection:
EventID:
- 4728 # security global group member added
- 4756 # universal group member added
- 4732 # local and domain local group member added
condition: selection
falsepositives:
- Automatic scripts, provisionning accounts
level: medium
---
title: Massive group membership changes detected Count
status: experimental
correlation:
type: value_count
rules:
- massive_group_changes # Referenced here
group-by:
- SubjectUserSid
timespan: 15m
condition:
gte: 20
field: TargetSid # Count how many different groups had a member added in a short period by the same user
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
EventID:
- 4728
- 4756
- 4732
Massive remote schedule task creation via named pipes (CrackMapExec with ATexec)
#Detects scenarios where an attacker remotely creates a scheduled task on multiple hosts over named pipes to execute commands or elevate privileges.
Known False Positives
- Administrator activity, backup solutions
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution |
Telemetry Coverage
Rule Body
title: Massive remote schedule task creation via named pipes (CrackMapExec with ATexec)
description: Detects scenarios where an attacker remotely creates a scheduled task on multiple hosts over named pipes to execute commands or elevate privileges.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0002-Execution/T1053.005-Scheduled%20Task
- https://github.com/SecureAuthCorp/impacket/blob/master/examples/atexec.py
- https://u0041.co/blog/post/1
- https://blog.menasec.net/2019/03/threat-hunting-25-scheduled-tasks-for.html
tags:
- attack.execution
- attack.t1053.005
author: mdecrevoisier
status: experimental
logsource:
product: windows
service: security
detection:
selection:
EventID: 5145
ShareName: '\\*\IPC$'
RelativeTargetName: atsvc
AccessList|contains: '%%4417' # WriteData
condition: selection | count(Computer) by IpAddress > 20
falsepositives:
- Administrator activity, backup solutions
level: medium
Stages and Predicates
Stage 0: condition
selection | count(Computer) by IpAddress > 20Stage 1: selection
selection:
EventID: 5145
ShareName: '\\*\IPC$'
RelativeTargetName: atsvc
AccessList|contains: '%%4417'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
AccessList | match |
| field:"AccessList" kind:match value:"%%4417" |
RelativeTargetName | eq |
| field:"RelativeTargetName" kind:eq value:"atsvc" |
ShareName | wildcard |
| field:"ShareName" kind:wildcard value:"\\*\IPC$" |
Mesh Agent Service Installation
#Detects a Mesh Agent service installation. Mesh Agent is used to remotely manage computers
Known False Positives
- Legitimate use of the tool
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Command & Control |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Service-Control-Manager | Event ID 7045: A service was installed in the system. |
Rule Body
title: Mesh Agent Service Installation
id: e0d1ad53-c7eb-48ec-a87a-72393cc6cedc
status: test
description: Detects a Mesh Agent service installation. Mesh Agent is used to remotely manage computers
references:
- https://thedfirreport.com/2022/11/28/emotet-strikes-again-lnk-file-leads-to-domain-wide-ransomware/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-11-28
tags:
- attack.command-and-control
- attack.t1219.002
logsource:
product: windows
service: system
detection:
selection_root:
Provider_Name: 'Service Control Manager'
EventID: 7045
selection_service:
- ImagePath|contains: 'MeshAgent.exe'
- ServiceName|contains: 'Mesh Agent'
condition: all of selection_*
falsepositives:
- Legitimate use of the tool
level: medium
Stages and Predicates
Stage 0: condition
all of selection_*Stage 1: selection_root
selection_root:
Provider_Name: 'Service Control Manager'
EventID: 7045
Stage 2: selection_service
selection_service:
- ImagePath|contains: 'MeshAgent.exe'
- ServiceName|contains: 'Mesh Agent'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
ImagePath | match |
| field:"ImagePath" kind:match value:"MeshAgent.exe" |
Provider_Name | eq |
| field:"Provider_Name" kind:eq value:"Service Control Manager" |
ServiceName | match |
| field:"ServiceName" kind:match value:"Mesh Agent" |
Modify System Firewall
#Detects the removal of system firewall rules. Adversaries may only delete or modify a specific system firewall rule to bypass controls limiting network usage or access. Detection rules that match only on the disabling of firewalls will miss this.
Known False Positives
- Legitimate admin activity
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Defense Impairment |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Linux | auditd EXECVE record: Arguments supplied to the execve system call |
Rule Body
title: Modify System Firewall
id: 323ff3f5-0013-4847-bbd4-250b5edb62cc
related:
- id: 53059bc0-1472-438b-956a-7508a94a91f0
type: similar
status: test
description: |
Detects the removal of system firewall rules. Adversaries may only delete or modify a specific system firewall rule to bypass controls limiting network usage or access.
Detection rules that match only on the disabling of firewalls will miss this.
references:
- https://www.trendmicro.com/en_us/research/22/c/cyclops-blink-sets-sights-on-asus-routers--.html
- https://blog.aquasec.com/container-security-tnt-container-attack
- https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/getting-started-with-nftables_configuring-and-managing-networking
author: IAI
date: 2023-03-06
modified: 2025-10-12
tags:
- attack.defense-impairment
- attack.t1686
logsource:
product: linux
service: auditd
detection:
selection1:
type: 'EXECVE'
a0: 'iptables'
a1|contains: 'DROP'
selection2:
type: 'EXECVE'
a0: 'firewall-cmd'
a1|contains: 'remove'
selection3:
type: 'EXECVE'
a0: 'ufw'
a1|contains: 'delete'
selection4:
type: 'EXECVE'
a0: 'nft'
a1|contains:
- 'delete'
- 'flush'
condition: 1 of selection*
falsepositives:
- Legitimate admin activity
level: medium
Stages and Predicates
Stage 0: condition
1 of selection*Stage 1: selection1
selection1:
type: 'EXECVE'
a0: 'iptables'
a1|contains: 'DROP'
Stage 2: selection2
selection2:
type: 'EXECVE'
a0: 'firewall-cmd'
a1|contains: 'remove'
Stage 3: selection3
selection3:
type: 'EXECVE'
a0: 'ufw'
a1|contains: 'delete'
Stage 4: selection4
selection4:
type: 'EXECVE'
a0: 'nft'
a1|contains:
- 'delete'
- 'flush'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
a0 | eq |
| field:"a0" kind:eq |
a1 | match |
| field:"a1" kind:match |
type | eq |
| field:"type" kind:eq value:"EXECVE" |
New AWS Lambda Function URL Configuration Created
#Detects when a user creates a Lambda function URL configuration, which could be used to expose the function to the internet and potentially allow unauthorized access to the function's IAM role for AWS API calls. This could give an adversary access to the privileges associated with the Lambda service role that is attached to that function.
Known False Positives
- Creating a Lambda function URL configuration may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment.
- Creating a Lambda function URL configuration from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access | No specific technique |
| Privilege Escalation | No specific technique |
Telemetry Coverage
Rule Body
title: New AWS Lambda Function URL Configuration Created
id: ec541962-c05a-4420-b9ea-84de072d18f4
status: experimental
description: |
Detects when a user creates a Lambda function URL configuration, which could be used to expose the function to the internet and potentially allow unauthorized access to the function's IAM role for AWS API calls.
This could give an adversary access to the privileges associated with the Lambda service role that is attached to that function.
references:
- https://docs.aws.amazon.com/lambda/latest/dg/API_CreateFunctionUrlConfig.html
- https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-privilege-escalation/aws-lambda-privesc
- https://www.wiz.io/blog/how-to-set-secure-defaults-on-aws
author: Ivan Saakov
date: 2024-12-19
tags:
- attack.initial-access
- attack.privilege-escalation
logsource:
product: aws
service: cloudtrail
detection:
selection:
eventSource: lambda.amazonaws.com
eventName: 'CreateFunctionUrlConfig'
condition: selection
falsepositives:
- Creating a Lambda function URL configuration may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment.
- Creating a Lambda function URL configuration from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule.
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
eventSource: lambda.amazonaws.com
eventName: 'CreateFunctionUrlConfig'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
eventName | eq |
| field:"aws::eventName" kind:eq value:"CreateFunctionUrlConfig" |
eventSource | eq |
| field:"aws::eventSource" kind:eq value:"lambda.amazonaws.com" |
New Network Trace Capture Started Via Netsh.EXE
#Detects the execution of netsh with the "trace" flag in order to start a network capture
Known False Positives
- Legitimate administration activity
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Credential Access | |
| Discovery |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: New Network Trace Capture Started Via Netsh.EXE
id: d3c3861d-c504-4c77-ba55-224ba82d0118
status: test
description: Detects the execution of netsh with the "trace" flag in order to start a network capture
references:
- https://blogs.msdn.microsoft.com/canberrapfe/2012/03/30/capture-a-network-trace-without-installing-anything-capture-a-network-trace-of-a-reboot/
- https://klausjochem.me/2016/02/03/netsh-the-cyber-attackers-tool-of-choice/
author: Kutepov Anton, oscd.community
date: 2019-10-24
modified: 2023-02-13
tags:
- attack.discovery
- attack.credential-access
- attack.t1040
logsource:
category: process_creation
product: windows
detection:
selection_img:
- Image|endswith: '\netsh.exe'
- OriginalFileName: 'netsh.exe'
selection_cli:
CommandLine|contains|all:
- 'trace'
- 'start'
condition: all of selection_*
falsepositives:
- Legitimate administration activity
level: medium
Stages and Predicates
Stage 0: condition
all of selection_*Stage 1: selection_img
selection_img:
- Image|endswith: '\netsh.exe'
- OriginalFileName: 'netsh.exe'
Stage 2: selection_cli
selection_cli:
CommandLine|contains|all:
- 'trace'
- 'start'
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:"\netsh.exe" |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq value:"netsh.exe" |
Non-DLL Extension File Renamed With DLL Extension
#Detects rename operations of files with non-DLL extensions to files with a DLL extension. This is often performed by malware in order to avoid initial detections based on extensions.
Known False Positives
- Likely from installers and temporary locations
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Rule Body
title: Non-DLL Extension File Renamed With DLL Extension
id: bbfd974c-248e-4435-8de6-1e938c79c5c1
status: test
description: |
Detects rename operations of files with non-DLL extensions to files with a DLL extension. This is often performed by malware in order to avoid initial detections based on extensions.
references:
- https://twitter.com/ffforward/status/1481672378639912960
- https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1036/T1036.md#atomic-test-1---system-file-copied-to-unusual-location
author: frack113
date: 2022-02-19
modified: 2023-11-11
tags:
- attack.stealth
- attack.t1036.008
- detection.threat-hunting
logsource:
product: windows
category: file_rename
definition: 'Requirements: Microsoft-Windows-Kernel-File Provider with at least the KERNEL_FILE_KEYWORD_RENAME_SETLINK_PATH keyword'
detection:
selection:
TargetFilename|endswith: '.dll'
filter_main_dll:
# Note: To avoid file renames
SourceFilename|endswith: '.dll'
filter_main_installers:
SourceFilename|endswith: '.tmp'
filter_main_empty_source:
SourceFilename: ''
filter_main_null_source:
SourceFilename: null
filter_main_tiworker:
Image|contains: ':\Windows\WinSxS\'
Image|endswith: '\TiWorker.exe'
filter_main_upgrade:
- Image|endswith: ':\Windows\System32\wuauclt.exe'
- TargetFilename|contains: ':\$WINDOWS.~BT\Sources\'
filter_main_generic:
Image|contains:
- ':\Program Files (x86)\'
- ':\Program Files\'
filter_optional_squirrel:
SourceFilename|contains: '\SquirrelTemp\temp'
condition: selection and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
- Likely from installers and temporary locations
level: medium
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_main_* and not 1 of filter_optional_*Stage 1: selection
selection:
TargetFilename|endswith: '.dll'
Stage 2: not filter_main_*
filter_main_dll:
SourceFilename|endswith: '.dll'
filter_main_installers:
SourceFilename|endswith: '.tmp'
filter_main_empty_source:
SourceFilename: ''
filter_main_null_source:
SourceFilename: null
filter_main_tiworker:
Image|contains: ':\Windows\WinSxS\'
Image|endswith: '\TiWorker.exe'
filter_main_upgrade:
- Image|endswith: ':\Windows\System32\wuauclt.exe'
- TargetFilename|contains: ':\$WINDOWS.~BT\Sources\'
filter_main_generic:
Image|contains:
- ':\Program Files (x86)\'
- ':\Program Files\'
Stage 3: not filter_optional_squirrel
filter_optional_squirrel:
SourceFilename|contains: '\SquirrelTemp\temp'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TargetFilename | ends_with |
| field:"TargetFilename" kind:ends_with value:".dll" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
Image | ends_with | \TiWorker.exe | excludes:Image field:"Image" value:"\TiWorker.exe" |
Image | match | :\Windows\WinSxS\ | excludes:Image field:"Image" value:":\Windows\WinSxS\" |
Image | ends_with | :\Windows\System32\wuauclt.exe | excludes:Image field:"Image" value:":\Windows\System32\wuauclt.exe" |
Image | match | :\Program Files (x86)\ | excludes:Image field:"Image" value:":\Program Files (x86)\" |
Image | match | :\Program Files\ | excludes:Image field:"Image" value:":\Program Files\" |
SourceFilename | ends_with | .dll | excludes:SourceFilename field:"SourceFilename" value:".dll" |
SourceFilename | ends_with | .tmp | excludes:SourceFilename field:"SourceFilename" value:".tmp" |
SourceFilename | is_null | excludes:SourceFilename | |
TargetFilename | match | :\$WINDOWS.~BT\Sources\ | excludes:TargetFilename field:"TargetFilename" value:":\$WINDOWS.~BT\Sources\" |
SourceFilename | match | \SquirrelTemp\temp | excludes:SourceFilename field:"SourceFilename" value:"\SquirrelTemp\temp" |
NTFS hard link creation
#Detects scenarios where an attacker attempts to create a hard link.
Known False Positives
- admin activity on file server
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Security-Auditing | Event ID 4664: An attempt was made to create a hard link. |
Rule Body
title: NTFS hard link creation
description: Detects scenarios where an attacker attempts to create a hard link.
references:
- https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4664
tags:
- attack.persistence
- attack.t1547.009 # Boot or Logon Autostart Execution: Shortcut Modification
author: mdecrevoisier
status: experimental
logsource:
product: windows
category: process_creation
detection:
selection:
EventID: 4664
condition: selection
falsepositives:
- admin activity on file server
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
EventID: 4664
OpenCanary - MSSQL Login Attempt Via Windows Authentication
#Detects instances where an MSSQL service on an OpenCanary node has had a login attempt using Windows Authentication.
Known False Positives
- Unlikely
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Credential Access | |
| Collection |
Rule Body
title: OpenCanary - MSSQL Login Attempt Via Windows Authentication
id: 6e78f90f-0043-4a01-ac41-f97681613a66
status: test
description: |
Detects instances where an MSSQL service on an OpenCanary node has had a login attempt using Windows Authentication.
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.credential-access
- attack.collection
- attack.t1003
- attack.t1213
logsource:
category: application
product: opencanary
detection:
selection:
logtype: 9002
condition: selection
falsepositives:
- Unlikely
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
logtype: 9002
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
logtype | eq |
| field:"logtype" kind:eq value:"9002" |
Potential CVE-2021-26084 Exploitation Attempt
#Detects potential exploitation of CVE-2021-260841 a Confluence RCE using OGNL injection
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access |
Rule Body
title: Potential CVE-2021-26084 Exploitation Attempt
id: 38825179-3c78-4fed-b222-2e2166b926b1
status: test
description: Detects potential exploitation of CVE-2021-260841 a Confluence RCE using OGNL injection
references:
- https://github.com/TesterCC/exp_poc_library/blob/be61622600ec79d8fba2fa5f816a870715f0cb3b/exp_poc/CVE-2021-26084_Confluence_OGNL_injection/CVE-2021-26084.md
- https://github.com/httpvoid/writeups/blob/62d3751945289d088ccfdf4d0ffbf61598a2cd7d/Confluence-RCE.md
- https://confluence.atlassian.com/doc/confluence-security-advisory-2021-08-25-1077906215.html
- https://mraddon.blog/2017/03/20/confluence-trick-to-create-pages-from-blueprint-templates/
author: Sittikorn S, Nuttakorn T
date: 2022-12-13
modified: 2023-03-24
tags:
- attack.initial-access
- attack.t1190
- cve.2021-26084
- detection.emerging-threats
logsource:
category: webserver
definition: 'Requirements: The POST request body data must be collected in order to make use of certain parts of this detection'
detection:
selection_main:
cs-method: 'POST'
sc-status: 200
cs-username: 'anonymous' # This string is used to reduce possible FP you could remove it to get authenticated attempts
selection_exploit_1:
cs-uri-query|contains|all:
- '/pages/createpage-entervariables.action'
- 'SpaceKey=x' # This URI assume that you can't have a space ID of "X"
selection_exploit_2_uri:
cs-uri-query|contains: '/doenterpagevariables.action'
selection_exploit_2_keyword:
- 'u0027' # This string should appear in the post body as a value of the parameter "queryString"
condition: selection_main and (selection_exploit_1 or all of selection_exploit_2_*)
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selection_main and (selection_exploit_1 or all of selection_exploit_2_*)Stage 1: selection_main
selection_main:
cs-method: 'POST'
sc-status: 200
cs-username: 'anonymous'
Stage 2: selection_exploit_1
selection_exploit_1:
cs-uri-query|contains|all:
- '/pages/createpage-entervariables.action'
- 'SpaceKey=x'
Stage 3: selection_exploit_2_uri
selection_exploit_2_uri:
cs-uri-query|contains: '/doenterpagevariables.action'
Stage 4: selection_exploit_2_keyword
selection_exploit_2_keyword:
- 'u0027'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
cs-method | eq |
| field:"cs-method" kind:eq value:"POST" |
cs-uri-query | match |
| field:"cs-uri-query" kind:match |
cs-username | eq |
| field:"cs-username" kind:eq value:"anonymous" |
sc-status | eq |
| field:"sc-status" kind:eq value:"200" |
Potential Data Exfiltration Activity Via CommandLine Tools
#Detects the use of various CLI utilities exfiltrating data via web requests
Known False Positives
- Unlikely
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: Potential Data Exfiltration Activity Via CommandLine Tools
id: 7d1aaf3d-4304-425c-b7c3-162055e0b3ab
status: test
description: Detects the use of various CLI utilities exfiltrating data via web requests
references:
- https://www.sentinelone.com/blog/living-off-windows-defender-lockbit-ransomware-sideloads-cobalt-strike-through-microsoft-security-tool/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-08-02
modified: 2025-10-19
tags:
- attack.execution
- attack.t1059.001
logsource:
category: process_creation
product: windows
detection:
selection_iwr:
Image|endswith:
- '\powershell_ise.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\cmd.exe'
CommandLine|contains:
- 'curl '
- 'Invoke-RestMethod'
- 'Invoke-WebRequest'
- 'irm '
- 'iwr '
- 'wget '
CommandLine|contains|all:
- ' -ur' # Shortest possible version of the -uri flag
- ' -me' # Shortest possible version of the -method flag
- ' -b'
- ' POST '
selection_curl:
Image|endswith: '\curl.exe'
CommandLine|contains: '--ur' # Shortest possible version of the --uri flag
selection_curl_data:
CommandLine|contains:
- ' -d ' # Shortest possible version of the --data flag
- ' --data '
selection_wget:
Image|endswith: '\wget.exe'
CommandLine|contains:
- '--post-data'
- '--post-file'
payloads:
- CommandLine|re:
- 'net\s+view'
- 'sc\s+query'
- CommandLine|contains:
- 'Get-Content'
- 'GetBytes'
- 'hostname'
- 'ifconfig'
- 'ipconfig'
- 'netstat'
- 'nltest'
- 'qprocess'
- 'systeminfo'
- 'tasklist'
- 'ToBase64String'
- 'whoami'
- CommandLine|contains|all:
- 'type '
- ' > '
- ' C:\'
condition: (selection_iwr or all of selection_curl* or selection_wget) and payloads
falsepositives:
- Unlikely
level: high
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_susp_data_exfiltration_via_cli/info.yml
Stages and Predicates
Stage 0: condition
(selection_iwr or all of selection_curl* or selection_wget) and payloadsStage 1: selection_iwr
selection_iwr:
Image|endswith:
- '\powershell_ise.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\cmd.exe'
CommandLine|contains:
- 'curl '
- 'Invoke-RestMethod'
- 'Invoke-WebRequest'
- 'irm '
- 'iwr '
- 'wget '
CommandLine|contains|all:
- ' -ur'
- ' -me'
- ' -b'
- ' POST '
Stage 2: selection_curl
selection_curl:
Image|endswith: '\curl.exe'
CommandLine|contains: '--ur'
Stage 3: selection_curl_data
selection_curl_data:
CommandLine|contains:
- ' -d '
- ' --data '
Stage 4: selection_wget
selection_wget:
Image|endswith: '\wget.exe'
CommandLine|contains:
- '--post-data'
- '--post-file'
Stage 5: payloads
payloads:
- CommandLine|re:
- 'net\s+view'
- 'sc\s+query'
- CommandLine|contains:
- 'Get-Content'
- 'GetBytes'
- 'hostname'
- 'ifconfig'
- 'ipconfig'
- 'netstat'
- 'nltest'
- 'qprocess'
- 'systeminfo'
- 'tasklist'
- 'ToBase64String'
- 'whoami'
- CommandLine|contains|all:
- 'type '
- ' > '
- ' C:\'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
CommandLine | regex_match |
| field:"CommandLine" kind:regex_match |
Image | ends_with |
| field:"Image" kind:ends_with |
Potential Exploitation Attempt Of Undocumented WindowsServer RCE
#Detects potential exploitation attempt of undocumented Windows Server Pre Auth Remote Code Execution (RCE)
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Potential Exploitation Attempt Of Undocumented WindowsServer RCE
id: 6d5b8176-d87d-4402-8af4-53aee9db7b5d
status: test
description: Detects potential exploitation attempt of undocumented Windows Server Pre Auth Remote Code Execution (RCE)
references:
- https://github.com/SigmaHQ/sigma/pull/3946
- https://twitter.com/hackerfantastic/status/1616455335203438592?s=20
author: Florian Roth (Nextron Systems), Nasreddine Bencherchali
date: 2023-01-21
tags:
- attack.initial-access
- attack.t1190
- detection.emerging-threats
logsource:
category: process_creation
product: windows
detection:
selection:
ParentImage|endswith: '\svchost.exe'
Image|endswith: '\svchost.exe'
ParentCommandLine|contains: '-k DHCPServer'
CommandLine|contains: '-k DHCPServer'
User|contains: # Covers many language settings for Network Service. Please expand.
- 'NETWORK SERVICE'
- 'NETZWERKDIENST'
- 'SERVIZIO DI RETE'
- 'SERVICIO DE RED'
condition: selection
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
ParentImage|endswith: '\svchost.exe'
Image|endswith: '\svchost.exe'
ParentCommandLine|contains: '-k DHCPServer'
CommandLine|contains: '-k DHCPServer'
User|contains:
- 'NETWORK SERVICE'
- 'NETZWERKDIENST'
- 'SERVIZIO DI RETE'
- 'SERVICIO DE RED'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match value:"-k DHCPServer" |
Image | ends_with |
| field:"Image" kind:ends_with value:"\svchost.exe" |
ParentCommandLine | match |
| field:"ParentCommandLine" kind:match value:"-k DHCPServer" |
ParentImage | ends_with |
| field:"ParentImage" kind:ends_with value:"\svchost.exe" |
User | match |
| field:"user" kind:match |
Potential ShellDispatch.DLL Sideloading
#Detects potential DLL sideloading of "ShellDispatch.dll"
Known False Positives
- Some installers may trigger some false positives
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | |
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 7: Image loaded |
Rule Body
title: Potential ShellDispatch.DLL Sideloading
id: 844f8eb2-610b-42c8-89a4-47596e089663
status: test
description: Detects potential DLL sideloading of "ShellDispatch.dll"
references:
- https://www.hexacorn.com/blog/2023/06/07/this-lolbin-doesnt-exist/
author: X__Junior (Nextron Systems)
date: 2023-06-20
tags:
- attack.persistence
- attack.privilege-escalation
- attack.execution
- attack.stealth
- attack.t1574.001
logsource:
category: image_load
product: windows
detection:
selection:
ImageLoaded|endswith: '\ShellDispatch.dll'
filter_main_legit_path:
- ImageLoaded|contains|all:
- ':\Users\'
- '\AppData\Local\Temp\'
- ImageLoaded|contains: ':\Windows\Temp\'
condition: selection and not 1 of filter_main_*
falsepositives:
- Some installers may trigger some false positives
level: medium
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_main_*Stage 1: selection
selection:
ImageLoaded|endswith: '\ShellDispatch.dll'
Stage 2: not filter_main_legit_path
filter_main_legit_path:
- ImageLoaded|contains|all:
- ':\Users\'
- '\AppData\Local\Temp\'
- ImageLoaded|contains: ':\Windows\Temp\'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
ImageLoaded | ends_with |
| field:"ImageLoaded" kind:ends_with value:"\ShellDispatch.dll" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
ImageLoaded | match | :\Users\ | excludes:ImageLoaded field:"ImageLoaded" value:":\Users\" |
ImageLoaded | match | \AppData\Local\Temp\ | excludes:ImageLoaded field:"ImageLoaded" value:"\AppData\Local\Temp\" |
ImageLoaded | match | :\Windows\Temp\ | excludes:ImageLoaded field:"ImageLoaded" value:":\Windows\Temp\" |
PUA - System Informer Driver Load
#Detects driver load of the System Informer tool
Known False Positives
- System Informer is regularly used legitimately by system administrators or developers. Apply additional filters accordingly
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 6: Driver loaded |
Rule Body
title: PUA - System Informer Driver Load
id: 10cb6535-b31d-4512-9962-513dcbc42cc1
related:
- id: 67add051-9ee7-4ad3-93ba-42935615ae8d
type: similar
status: test
description: Detects driver load of the System Informer tool
references:
- https://systeminformer.sourceforge.io/
- https://github.com/winsiderss/systeminformer
author: Florian Roth (Nextron Systems)
date: 2023-05-08
modified: 2024-11-23
tags:
- attack.persistence
- attack.privilege-escalation
- attack.t1543
logsource:
category: driver_load
product: windows
detection:
selection:
- ImageLoaded|endswith: '\SystemInformer.sys'
- Hashes|contains:
- 'SHA256=8B9AD98944AC9886EA4CB07700E71B78BE4A2740934BB7E46CA3B56A7C59AD24'
- 'SHA256=A41348BEC147CA4D9EA2869817527EB5CEA2E20202AF599D2B30625433BCF454'
- 'SHA256=38EE0A88AF8535A11EFE8D8DA9C6812AA07067B75A64D99705A742589BDD846D'
- 'SHA256=A773891ACF203A7EB0C0D30942FB1347648F1CD918AE2BFD9A4857B4DCF5081B'
- 'SHA256=4C3B81AC88A987BBDF7D41FA0AECC2CEDF5B9BD2F45E7A21F376D05345FC211D'
- 'SHA256=3241BC14BEC51CE6A691B9A3562E5C1D52E9D057D27A3D67FD0B245C350B6D34'
- 'SHA256=047C42E9BBA28366868847C7DAFC1E043FB038C796422D37220493517D68EE89'
- 'SHA256=18931DC81E95D0020466FA091E16869DBE824E543A4C2C8FE644FA71A0F44FEB'
- 'SHA256=B4C2EF76C204273132FDE38F0DED641C2C5EE767652E64E4C4071A4A973B6C1B'
- 'SHA256=640954AFC268565F7DAA6E6F81A8EE05311E33E34332B501A3C3FE5B22ADEA97'
- 'SHA256=251BE949F662C838718F8AA0A5F8211FB90346D02BD63FF91E6B224E0E01B656'
- 'SHA256=E2606F272F7BA054DF16BE464FDA57211EF0D14A0D959F9C8DCB0575DF1186E4'
- 'SHA256=3A9E1D17BEEB514F1B9B3BACAEE7420285DE5CBDCE89C5319A992C6CBD1DE138'
condition: selection
falsepositives:
- System Informer is regularly used legitimately by system administrators or developers. Apply additional filters accordingly
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
- ImageLoaded|endswith: '\SystemInformer.sys'
- Hashes|contains:
- 'SHA256=8B9AD98944AC9886EA4CB07700E71B78BE4A2740934BB7E46CA3B56A7C59AD24'
- 'SHA256=A41348BEC147CA4D9EA2869817527EB5CEA2E20202AF599D2B30625433BCF454'
- 'SHA256=38EE0A88AF8535A11EFE8D8DA9C6812AA07067B75A64D99705A742589BDD846D'
- 'SHA256=A773891ACF203A7EB0C0D30942FB1347648F1CD918AE2BFD9A4857B4DCF5081B'
- 'SHA256=4C3B81AC88A987BBDF7D41FA0AECC2CEDF5B9BD2F45E7A21F376D05345FC211D'
- 'SHA256=3241BC14BEC51CE6A691B9A3562E5C1D52E9D057D27A3D67FD0B245C350B6D34'
- 'SHA256=047C42E9BBA28366868847C7DAFC1E043FB038C796422D37220493517D68EE89'
- 'SHA256=18931DC81E95D0020466FA091E16869DBE824E543A4C2C8FE644FA71A0F44FEB'
- 'SHA256=B4C2EF76C204273132FDE38F0DED641C2C5EE767652E64E4C4071A4A973B6C1B'
- 'SHA256=640954AFC268565F7DAA6E6F81A8EE05311E33E34332B501A3C3FE5B22ADEA97'
- 'SHA256=251BE949F662C838718F8AA0A5F8211FB90346D02BD63FF91E6B224E0E01B656'
- 'SHA256=E2606F272F7BA054DF16BE464FDA57211EF0D14A0D959F9C8DCB0575DF1186E4'
- 'SHA256=3A9E1D17BEEB514F1B9B3BACAEE7420285DE5CBDCE89C5319A992C6CBD1DE138'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Hashes | match |
| field:"Hashes" kind:match |
ImageLoaded | ends_with |
| field:"ImageLoaded" kind:ends_with value:"\SystemInformer.sys" |
Python SQL Exceptions
#Generic rule for SQL exceptions in Python according to PEP 249
Known False Positives
- Application bugs
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access |
Rule Body
title: Python SQL Exceptions
id: 19aefed0-ffd4-47dc-a7fc-f8b1425e84f9
status: stable
description: Generic rule for SQL exceptions in Python according to PEP 249
references:
- https://www.python.org/dev/peps/pep-0249/#exceptions
author: Thomas Patzke
date: 2017-08-12
modified: 2020-09-01
tags:
- attack.initial-access
- attack.t1190
logsource:
category: application
product: python
detection:
keywords:
- DataError
- IntegrityError
- ProgrammingError
- OperationalError
condition: keywords
falsepositives:
- Application bugs
level: medium
Stages and Predicates
Stage 0: condition
keywordsStage 1: keywords
keywords:
- DataError
- IntegrityError
- ProgrammingError
- OperationalError
RDP discovery performed on multiple hosts
#Detects scenarios where an attacker attempts to discover active RDP services via tools like Hydra. Note that this event doesn't provide any information about login outcome (success or failure) as well as user information. For further correlation, ID 4624/4625 (logon type 3, 7 or 10) as well as ID 1149 should be used.
Known False Positives
- VAS scanners, administrator jump host
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Credential Access | |
| Discovery | |
| Lateral Movement |
Telemetry Coverage
Rule Body
title: RDP discovery performed on multiple hosts
name: rdp_discovery_multiple_host
description: Detects scenarios where an attacker attempts to discover active RDP services via tools like Hydra. Note that this event doesn't provide any information about login outcome (success or failure) as well as user information. For further correlation, ID 4624/4625 (logon type 3, 7 or 10) as well as ID 1149 should be used.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0007-Discovery/T1046-Network%20Service%20Scanning
- https://github.com/mehranexpert/Crazy-RDP
- https://github.com/3gstudent/SharpRDPCheck
- https://ponderthebits.com/2018/02/windows-rdp-related-event-logs-identification-tracking-and-investigation/
- https://purerds.org/remote-desktop-security/auditing-remote-desktop-services-logon-failures-1/
- http://woshub.com/rdp-connection-logs-forensics-windows/
- https://jpcertcc.github.io/ToolAnalysisResultSheet/details/mstsc.htm
- https://github.com/AndrewRathbun/DFIRMindMaps/tree/main/OSArtifacts/Windows/RDP_Authentication_Artifacts
- https://github.com/TonyPhipps/SIEM/blob/master/Notable-Event-IDs.md#microsoft-windows-remotedesktopservices-rdpcoretsoperational
- https://dfironthemountain.wordpress.com/2019/02/15/rdp-event-log-dfir/
- https://nullsec.us/windows-event-id-1029-hashes/
- https://www.13cubed.com/downloads/rdp_flowchart.pdf
- https://nullsec.us/windows-rdp-related-event-logs-the-client-side-of-the-story/
tags:
- attack.discovery
- attack.t1046 # network service scanning
- attack.credential_access
- attack.t1110 # brutforce
- attack.lateral_movement
- attack.t1021.001 # remote services: RDP
author: mdecrevoisier
status: experimental
logsource:
product: windows
category: rdp
detection:
selection:
EventID: 131 # The server accepted a new TCP connection from client <ip>:<port>.
Channel: Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational
filter:
IpAddress: # In ID 131, IP address is provided in "ClientIP.split(":")[0]
- "%vulnerability_scanners%"
- "%admin_jump_hosts%"
- "127.0.0.1"
- "::1"
condition: selection and not filter
falsepositives:
- VAS scanners, administrator jump host
level: high
---
title: RDP discovery performed on multiple hosts Count
status: experimental
correlation:
type: value_count
rules:
- rdp_discovery_multiple_host # Referenced here
group-by:
- IpAddress
timespan: 5m
condition:
gte: 20
field: Computer # Count of many computer are reporting connection attemps from a single source IP
level: high
Stages and Predicates
Stage 0: condition
selection and not filterStage 1: selection
selection:
EventID: 131
Channel: Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational
Stage 2: not filter
filter:
IpAddress:
- "%vulnerability_scanners%"
- "%admin_jump_hosts%"
- "127.0.0.1"
- "::1"
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
IpAddress | eq | %admin_jump_hosts% | excludes:IpAddress field:"IpAddress" value:"%admin_jump_hosts%" |
IpAddress | eq | %vulnerability_scanners% | excludes:IpAddress field:"IpAddress" value:"%vulnerability_scanners%" |
IpAddress | eq | 127.0.0.1 | excludes:IpAddress field:"IpAddress" value:"127.0.0.1" |
IpAddress | eq | ::1 | excludes:IpAddress field:"IpAddress" value:"::1" |
RegAsm.EXE Initiating Network Connection To Public IP
#Detects "RegAsm.exe" initiating a network connection to public IP adresses
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 3: Network connection |
Rule Body
title: RegAsm.EXE Initiating Network Connection To Public IP
id: 0531e43a-d77d-47c2-b89f-5fe50321c805
status: test
description: Detects "RegAsm.exe" initiating a network connection to public IP adresses
references:
- https://app.any.run/tasks/ec207948-4916-47eb-a0f4-4c6abb2e7668/
- https://research.splunk.com/endpoint/07921114-6db4-4e2e-ae58-3ea8a52ae93f/
- https://lolbas-project.github.io/lolbas/Binaries/Regasm/
author: frack113
date: 2024-04-25
tags:
- attack.stealth
- attack.t1218.009
logsource:
category: network_connection
product: windows
detection:
selection:
Initiated: 'true'
Image|endswith: '\regasm.exe'
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
level: medium
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_main_*Stage 1: selection
selection:
Initiated: 'true'
Image|endswith: '\regasm.exe'
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:"\regasm.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" |
Unsigned Kernel Extension Load Attempt
#Detects attempts to load unsigned kernel extensions which may indicate rootkit installation or malicious kernel-level access
Known False Positives
- Legitimate unsigned kexts in development environments
- Testing scenarios
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation |
Telemetry Coverage
Rule Body
title: Unsigned Kernel Extension Load Attempt
id: 7e7a1a47-45dd-4f97-8205-1d6aea67f682
status: experimental
description: Detects attempts to load unsigned kernel extensions which may indicate
rootkit installation or malicious kernel-level access
references:
- https://attack.mitre.org/techniques/T1547/006/
- https://objective-see.com/blog/blog_0x4B.html
author: Eric Brown - Nebulock, Inc.
date: 2025/10/29
tags:
- attack.persistence
- attack.privilege_escalation
- attack.t1547.006
logsource:
product: macos
service: endpointsecurity
category: kernel_extension
detection:
selection:
esf.event_type: 17
event.action: kextload
filter_signed:
TeamID: '*'
condition: selection and not filter_signed
falsepositives:
- Legitimate unsigned kexts in development environments
- Testing scenarios
level: critical
modified: 2025/01/15
Stages and Predicates
Stage 0: condition
selection and not filter_signedStage 1: selection
selection:
esf.event_type: 17
event.action: kextload
Stage 2: not filter_signed
filter_signed:
TeamID: '*'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
esf.event_type | eq |
| field:"esf.event_type" kind:eq value:"17" |
event.action | eq |
| field:"EventType" kind:eq value:"kextload" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
TeamID | wildcard | * | excludes:TeamID field:"TeamID" value:"*" |
Windows traffic capture abuse
#Detects scenarios where an attacker use the native Windows sniffer in order to capture sensitive information or credentials.
Known False Positives
- Administrator network troubleshooting
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Credential Access |
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: Windows traffic capture abuse
description: Detects scenarios where an attacker use the native Windows sniffer in order to capture sensitive information or credentials.
references:
- https://bakerstreetforensics.com/2022/01/07/quickpcap-capturing-a-pcap-with-powershell/
tags:
- attack.credential_access
- attack.t1040 # Network Sniffing
author: mdecrevoisier
status: experimental
logsource:
product: windows
category: process_creation
detection:
selection:
NewProcessName|endswith: '\netsh.exe'
CommandLine|contains|all: # full command : 'netsh trace start capture=yes IPv4.Address=192.168.1.167 '
- netsh
- start
- capture
condition: selection
falsepositives:
- Administrator network troubleshooting
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
NewProcessName|endswith: '\netsh.exe'
CommandLine|contains|all:
- netsh
- start
- capture
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:"\netsh.exe" |