Skip to content

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

Siemphony’s repertoire

Saved wireless profiles enumerated or exported in cleartext

AN1280 describes two things: enumerating the wireless profiles a host has saved, and pulling their pre-shared keys back out in cleartext. Both are driven from the command line through netsh's wlan context, so this rule requires the wlan token and one of the profile, export, network-listing or key=clear actions in the same command line; the pair is what separates discovery from the wireless diagnostics that share the binary. `show interfaces` and `show drivers` are deliberately excluded — they report the adapter's current state, carry neither a profile list nor a key, and are the first commands support staff type at any connectivity complaint. The other half of the analytic, wlanAPI.dll called directly from code, leaves no command line behind and is invisible here, so a quiet result is not evidence that nothing enumerated the wireless profiles. The logic is written in the Sysmon EventID 1 vocabulary the brief names for this category; the brief's other source, the PowerShell 4103/4104 channel, needs Script Block Logging enabled and a different field mapping, and if this category is fed from Security 4688 instead that channel needs Audit Process Creation plus the separate Include command line in process creation events policy — without it CommandLine is empty and the rule cannot match at all. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0464, 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: Saved wireless profiles enumerated or exported in cleartextid: a7735f02-c3a9-4da7-be01-47a4cdc43dd5status: experimentaldescription: |  AN1280 describes two things: enumerating the wireless profiles a host has saved,  and pulling their pre-shared keys back out in cleartext. Both are driven from  the command line through netsh's wlan context, so this rule requires the wlan  token and one of the profile, export, network-listing or key=clear actions in  the same command line; the pair is what separates discovery from the wireless  diagnostics that share the binary. `show interfaces` and `show drivers` are  deliberately excluded — they report the adapter's current state, carry neither a  profile list nor a key, and are the first commands support staff type at any  connectivity complaint. The other half of the analytic, wlanAPI.dll called  directly from code, leaves no command line behind and is invisible here, so a  quiet result is not evidence that nothing enumerated the wireless profiles. The  logic is written in the Sysmon EventID 1 vocabulary the brief names for this  category; the brief's other source, the PowerShell 4103/4104 channel, needs  Script Block Logging enabled and a different field mapping, and if this category  is fed from Security 4688 instead that channel needs Audit Process Creation plus  the separate Include command line in process creation events policy — without  it CommandLine is empty and the rule cannot match at all.  UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0464, 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/T1016/002  - https://attack.mitre.org/detectionstrategies/DET0464author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-16tags:  - attack.discovery  - attack.t1016.002logsource:  category: process_creation  product: windowsdetection:  selection_wlan_context:    CommandLine|contains: 'wlan '  selection_action:    CommandLine|contains:      - 'show profile'      - 'show networks'      - 'export profile'      - 'key=clear'  condition: selection_wlan_context and selection_actionfalsepositives:  - "Wireless troubleshooting by helpdesk staff or by an automated diagnostic script, where netsh wlan show profiles is run to check which networks a laptop has saved before rebuilding a connection. On a mobile fleet this is the highest-volume benign match and is what the level below reflects."  - "Asset inventory and endpoint management agents that collect the saved SSID list from every portable machine on a schedule, to report which corporate, guest and home networks a laptop has joined."  - "Provisioning, imaging and onboarding scripts that call netsh wlan export profile with key=clear on a reference machine and re-import the resulting XML during a build, which uses the cleartext key by design."  - "Wireless site-survey and roaming diagnostics tooling that calls netsh wlan show networks mode=bssid repeatedly while an engineer measures coverage, producing a burst of matches from one host over a short period."level: medium

Sentinel · KQL

Run this as a search.

DeviceProcessEvents| where (ProcessCommandLine contains "wlan " and (ProcessCommandLine contains "show profile" or ProcessCommandLine contains "show networks" or ProcessCommandLine contains "export profile" or ProcessCommandLine contains "key=clear"))

Splunk · SPL

Run this as a search.

index=* (CommandLine="*wlan *" AND (CommandLine="*show profile*" OR CommandLine="*show networks*" OR CommandLine="*export profile*" OR CommandLine="*key=clear*"))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE (TO_LOWER(process.command_line) LIKE "*wlan *" AND (TO_LOWER(process.command_line) LIKE "*show profile*" OR TO_LOWER(process.command_line) LIKE "*show networks*" OR TO_LOWER(process.command_line) LIKE "*export profile*" OR TO_LOWER(process.command_line) LIKE "*key=clear*"))

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="7">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="CommandLine" type="pcre2">(?i)wlan </field>    <field name="CommandLine" type="pcre2">(?i)(show profile|show networks|export profile|key=clear)</field>    <description>Saved wireless profiles enumerated or exported in cleartext</description>    <mitre>      <id>T1016.002</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.