Skip to content

Siemphony is in beta and still being built. How a rule earns its badge.

Siemphony’s repertoire

Windows host firewall profile disabled from the command line

Matches a command line that names a Windows Defender Firewall management surface and, in the same invocation, the argument that turns a profile off or opens its default inbound policy — the firewall-management execution half of MITRE's AN2043. Both predicates run on CommandLine so the rule catches the action whether it is netsh, the NetSecurity PowerShell module, or either of them wrapped in a shell, since the wrapper's own command line carries the same text. Scope is deliberately narrowed to profile-level disablement: adding and modifying individual rules is equally part of the technique but is what every software installer does, and folding it in here would bury the signal. The service-stop and registry-mutation paths the analytic also lists are separate log sources in the brief and are not attempted here. Prerequisite: on the Security EventID 4688 feed this needs the Audit Process Creation subcategory *and* the separate "Include command line in process creation events" policy — neither is on by default, and without the second one CommandLine arrives empty and this rule, which reads nothing else, matches nothing while appearing healthy. MITRE's AuthorizedAdminAccounts and MaintenanceWindow knobs are suppression inputs a single-event rule cannot apply and have to be handled in the SIEM. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0901, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full description

The detection

The 4 SIEM queries below are previews produced by Siemphony’s own translator, not pySigma, and none has been executed against a real backend — review before you deploy.

detection.yml

title: Windows host firewall profile disabled from the command lineid: 966cc04e-0239-4867-948d-e46630a0e3festatus: experimentaldescription: |  Matches a command line that names a Windows Defender Firewall management  surface and, in the same invocation, the argument that turns a profile off or  opens its default inbound policy — the firewall-management execution half of  MITRE's AN2043. Both predicates run on CommandLine so the rule catches the  action whether it is netsh, the NetSecurity PowerShell module, or either of  them wrapped in a shell, since the wrapper's own command line carries the same  text. Scope is deliberately narrowed to profile-level disablement: adding and  modifying individual rules is equally part of the technique but is what every  software installer does, and folding it in here would bury the signal. The  service-stop and registry-mutation paths the analytic also lists are separate  log sources in the brief and are not attempted here. Prerequisite: on the  Security EventID 4688 feed this needs the Audit Process Creation subcategory  *and* the separate "Include command line in process creation events" policy —  neither is on by default, and without the second one CommandLine arrives empty  and this rule, which reads nothing else, matches nothing while appearing  healthy. MITRE's AuthorizedAdminAccounts and MaintenanceWindow knobs are  suppression inputs a single-event rule cannot apply and have to be handled in  the SIEM.  UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0901, not hand-written and not tested by its author. Any lab result is on this rule's own page.references:  - https://attack.mitre.org/techniques/T1686/003  - https://attack.mitre.org/detectionstrategies/DET0901author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-16tags:  - attack.defense-evasion  - attack.t1686.003logsource:  category: process_creation  product: windowsdetection:  selection_scope:    CommandLine|contains:      - 'advfirewall'      - 'netsh firewall'      - 'NetFirewallProfile'  selection_disable:    CommandLine|contains:      - 'state off'      - 'opmode disable'      - 'opmode mode=disable'      - 'firewallpolicy allowinbound'      - 'Enabled False'      - 'Enabled:False'      - 'Enabled $false'      - 'Enabled:$false'      - 'DefaultInboundAction Allow'  condition: selection_scope and selection_disablefalsepositives:  - "Imaging and provisioning steps, and third-party endpoint-protection installers that disable the Windows profiles because the suite supplies its own firewall. These arrive as a burst under a management parent such as an SCCM, Intune or GPO client early in a build, which is what MITRE's AllowedManagementParents knob is there to carve out."  - "Help-desk troubleshooting of a connectivity complaint, where an administrator turns a profile off, tests, and turns it back on within a few minutes under the same account. The disable half of that pair is indistinguishable from the attack in a single event and needs the re-enable to be looked for before escalating."  - "Lab, test and reference images where the firewall is off by policy and the disabling command runs from a startup script on every boot, producing one match per machine per reboot. Scoping the rule away from those hosts is more reliable than trying to fingerprint the script."level: high

Sentinel · KQL

Run this as a search.

DeviceProcessEvents| where ((ProcessCommandLine contains "advfirewall" or ProcessCommandLine contains "netsh firewall" or ProcessCommandLine contains "NetFirewallProfile") and (ProcessCommandLine contains "state off" or ProcessCommandLine contains "opmode disable" or ProcessCommandLine contains "opmode mode=disable" or ProcessCommandLine contains "firewallpolicy allowinbound" or ProcessCommandLine contains "Enabled False" or ProcessCommandLine contains "Enabled:False" or ProcessCommandLine contains "Enabled $false" or ProcessCommandLine contains "Enabled:$false" or ProcessCommandLine contains "DefaultInboundAction Allow"))

Splunk · SPL

Run this as a search.

index=* ((CommandLine="*advfirewall*" OR CommandLine="*netsh firewall*" OR CommandLine="*NetFirewallProfile*") AND (CommandLine="*state off*" OR CommandLine="*opmode disable*" OR CommandLine="*opmode mode=disable*" OR CommandLine="*firewallpolicy allowinbound*" OR CommandLine="*Enabled False*" OR CommandLine="*Enabled:False*" OR CommandLine="*Enabled $false*" OR CommandLine="*Enabled:$false*" OR CommandLine="*DefaultInboundAction Allow*"))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE ((TO_LOWER(process.command_line) LIKE "*advfirewall*" OR TO_LOWER(process.command_line) LIKE "*netsh firewall*" OR TO_LOWER(process.command_line) LIKE "*netfirewallprofile*") AND (TO_LOWER(process.command_line) LIKE "*state off*" OR TO_LOWER(process.command_line) LIKE "*opmode disable*" OR TO_LOWER(process.command_line) LIKE "*opmode mode=disable*" OR TO_LOWER(process.command_line) LIKE "*firewallpolicy allowinbound*" OR TO_LOWER(process.command_line) LIKE "*enabled false*" OR TO_LOWER(process.command_line) LIKE "*enabled:false*" OR TO_LOWER(process.command_line) LIKE "*enabled $false*" OR TO_LOWER(process.command_line) LIKE "*enabled:$false*" OR TO_LOWER(process.command_line) LIKE "*defaultinboundaction allow*"))

Wazuh · XML rule

Deploy to your manager — this is a rule, not a search.

<group name="sigma,windows,process_creation,">  <!-- Rule ids must be unique on your manager; 100000+ is the user range. -->  <rule id="100000" level="12">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="CommandLine" type="pcre2">(?i)(advfirewall|netsh firewall|NetFirewallProfile)</field>    <field name="CommandLine" type="pcre2">(?i)(state off|opmode disable|opmode mode=disable|firewallpolicy allowinbound|Enabled False|Enabled:False|Enabled \$false|Enabled:\$false|DefaultInboundAction Allow)</field>    <description>Windows host firewall profile disabled from the command line</description>    <mitre>      <id>T1686.003</id>    </mitre>  </rule></group>

Verdicts · reactions · comments

Community

Verdicts from engineers who actually deployed it, and the conversation around it.

Log in to react
Not yet reported on

Nobody has run this in a real environment and said what happened.

Verdicts from engineers who deployed it

0 cast

No verdicts reported yet. The first one is worth more than the tenth — say what you ran it against.

Log in to report a verdict.

Log in to join the discussion.

No comments yet. Someone who deploys this will have something to say about it.