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 descriptionShow less
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: lowSentinel · 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.
Nobody has run this in a real environment and said what happened.
Verdicts from engineers who deployed it
0 castNo 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.