Skip to content

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

Siemphony’s repertoire

Operating system and hardware metadata queried from a process

MITRE's Windows analytic looks for a process retrieving OS version, architecture, patch level or hardware characteristics, and its two tuning knobs — a time window over several discovery commands, and user context — are the parts that make it a detection rather than an inventory. Sigma can express neither, so this rule captures the single-event precursor: one command line that asks for system metadata, through the built-in utilities, through the WMI, PowerShell and .NET equivalents that avoid them, or through the registry values under `Windows NT\CurrentVersion` that hold the product name and build. Matching on CommandLine survives a relocated binary and reaches the scripted forms that never launch a named utility, but it is defeated by renaming the utility — as `Image|endswith` would be too, since only `OriginalFileName` survives a rename and it does not exist for the scripted forms. A query issued in-process through the WMI COM interfaces, which is how most agents and installers actually read this data, produces no command line at all and is invisible here. The low level reflects that a single query is expected behaviour on most hosts. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0525, 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: Operating system and hardware metadata queried from a processid: 19f8bd1e-bf11-425f-8868-9f33bd092ab3status: experimentaldescription: |  MITRE's Windows analytic looks for a process retrieving OS version,  architecture, patch level or hardware characteristics, and its two tuning  knobs — a time window over several discovery commands, and user context —  are the parts that make it a detection rather than an inventory. Sigma can  express neither, so this rule captures the single-event precursor: one command  line that asks for system metadata, through the built-in utilities, through  the WMI, PowerShell and .NET equivalents that avoid them, or through the  registry values under `Windows NT\CurrentVersion` that hold the product name  and build. Matching on CommandLine survives a relocated binary and reaches the  scripted forms that never launch a named utility, but it is defeated by  renaming the utility — as `Image|endswith` would be too, since only  `OriginalFileName` survives a rename and it does not exist for the scripted  forms. A query issued in-process through the WMI COM interfaces, which is how  most agents and installers actually read this data, produces no command line  at all and is invisible here. The low level reflects that a single query is  expected behaviour on most hosts.  UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0525, 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/T1082  - https://attack.mitre.org/detectionstrategies/DET0525author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-16tags:  - attack.discovery  - attack.t1082logsource:  category: process_creation  product: windowsdetection:  selection:    CommandLine|contains:      - 'systeminfo'      - 'msinfo32'      - 'dxdiag'      - 'Get-ComputerInfo'      - 'Win32_OperatingSystem'      - 'Win32_ComputerSystem'      - 'Win32_Processor'      - 'Win32_BIOS'      - 'csproduct get'      - 'wmic os get'      - 'Environment]::OSVersion'      - '/v ProductName'      - 'Windows NT\CurrentVersion'  condition: selectionfalsepositives:  - "Cloud and hypervisor guest tooling that runs its inventory as a script rather than in-process — Azure Run Command and custom script extensions, AWS SSM documents, and the VMware Tools or Citrix VDA maintenance tasks — which call Get-ComputerInfo or wmic os get on every host at boot and on each heartbeat. On a virtualised or cloud estate this is the largest single source of hits by a wide margin, and because it runs as SYSTEM it defeats MITRE's UserContext knob rather than being separated by it."  - "Asset inventory, patch management and licence-compliance agents, which run exactly these queries against every host on a schedule. MITRE's UserContext knob is the intended separator — exclude the service accounts those agents run under rather than removing the terms."  - "Helpdesk diagnostics and support scripts, where an operator runs systeminfo or msinfo32 while a ticket is open. This is the single-command case MITRE's TimeWindow knob is meant to distinguish from a reconnaissance burst, and no threshold is encoded in this rule."  - "Installer bootstrappers and deployment scripts that shell out to check the OS edition and build before proceeding, typically reg query on Windows NT\\CurrentVersion /v ProductName or a wmic os get line in a wrapper .cmd or .ps1."level: low

Sentinel · KQL

Run this as a search.

DeviceProcessEvents| where (ProcessCommandLine contains "systeminfo" or ProcessCommandLine contains "msinfo32" or ProcessCommandLine contains "dxdiag" or ProcessCommandLine contains "Get-ComputerInfo" or ProcessCommandLine contains "Win32_OperatingSystem" or ProcessCommandLine contains "Win32_ComputerSystem" or ProcessCommandLine contains "Win32_Processor" or ProcessCommandLine contains "Win32_BIOS" or ProcessCommandLine contains "csproduct get" or ProcessCommandLine contains "wmic os get" or ProcessCommandLine contains "Environment]::OSVersion" or ProcessCommandLine contains "/v ProductName" or ProcessCommandLine contains "Windows NT\\CurrentVersion")

Splunk · SPL

Run this as a search.

index=* (CommandLine="*systeminfo*" OR CommandLine="*msinfo32*" OR CommandLine="*dxdiag*" OR CommandLine="*Get-ComputerInfo*" OR CommandLine="*Win32_OperatingSystem*" OR CommandLine="*Win32_ComputerSystem*" OR CommandLine="*Win32_Processor*" OR CommandLine="*Win32_BIOS*" OR CommandLine="*csproduct get*" OR CommandLine="*wmic os get*" OR CommandLine="*Environment]::OSVersion*" OR CommandLine="*/v ProductName*" OR CommandLine="*Windows NT\\CurrentVersion*")

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE (TO_LOWER(process.command_line) LIKE "*systeminfo*" OR TO_LOWER(process.command_line) LIKE "*msinfo32*" OR TO_LOWER(process.command_line) LIKE "*dxdiag*" OR TO_LOWER(process.command_line) LIKE "*get-computerinfo*" OR TO_LOWER(process.command_line) LIKE "*win32_operatingsystem*" OR TO_LOWER(process.command_line) LIKE "*win32_computersystem*" OR TO_LOWER(process.command_line) LIKE "*win32_processor*" OR TO_LOWER(process.command_line) LIKE "*win32_bios*" OR TO_LOWER(process.command_line) LIKE "*csproduct get*" OR TO_LOWER(process.command_line) LIKE "*wmic os get*" OR TO_LOWER(process.command_line) LIKE "*environment]::osversion*" OR TO_LOWER(process.command_line) LIKE "*/v productname*" OR TO_LOWER(process.command_line) LIKE "*windows nt\\\\currentversion*")

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="5">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="CommandLine" type="pcre2">(?i)(systeminfo|msinfo32|dxdiag|Get-ComputerInfo|Win32_OperatingSystem|Win32_ComputerSystem|Win32_Processor|Win32_BIOS|csproduct get|wmic os get|Environment\]::OSVersion|/v ProductName|Windows NT\\CurrentVersion)</field>    <description>Operating system and hardware metadata queried from a process</description>    <mitre>      <id>T1082</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.