Skip to content

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

Siemphony’s repertoire

Command line probes the host for hypervisor vendor artefacts

AN0478 describes a rapid sequence of system checks — CPU count, RAM size, registry keys, running processes — used to decide whether the host is a virtual machine or a sandbox. The sequence itself is not expressible: the analytic's TimeWindow knob asks for a burst of enumeration events inside X seconds, and lib/sigma has no aggregation, no timeframe and no near, so this rule fires on a single event and cannot tell one check from a run of ten. What it can do is separate VM detection from ordinary inventory, which is the whole difficulty with this technique: `Get-CimInstance Win32_ComputerSystem` and `wmic bios get serialnumber` are what every asset agent runs, and nothing in them is evasive. The discriminator used here is that the caller must *name a hypervisor vendor* in the command line — it is already looking for VMware, VirtualBox or QEMU rather than asking what the machine is — so the rule ANDs a list of enumeration binaries against a list of virtualization artefact strings covering the guest tools services, the vendor registry hives and the ACPI table names those tools register. Two things this deliberately cannot see, which matter more here than in most rules. Malware that performs the same checks in-process, through the WMI COM API, a CPUID instruction, a registry API call or a GetAdaptersInfo MAC-prefix comparison, creates no child process and produces nothing on this log source at all — process creation catches only the script-and-LOLBin form of the technique, which is the minority of it. And the brief's other two Windows legs do not help: Sysmon EventID 7 image_load and EventID 10 process_access carry no artefact name to match on for this behaviour. MITRE's ProcessAncestry and UserContext knobs are where a site adds a parent-process or session filter; the binary and artefact lists below were assembled here, not taken from MITRE. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0168, 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: Command line probes the host for hypervisor vendor artefactsid: 24957830-c758-406c-86b2-138170f7af63status: experimentaldescription: |  AN0478 describes a rapid sequence of system checks — CPU count, RAM size,  registry keys, running processes — used to decide whether the host is a virtual  machine or a sandbox. The sequence itself is not expressible: the analytic's  TimeWindow knob asks for a burst of enumeration events inside X seconds, and  lib/sigma has no aggregation, no timeframe and no near, so this rule fires on a  single event and cannot tell one check from a run of ten. What it can do is  separate VM detection from ordinary inventory, which is the whole difficulty  with this technique: `Get-CimInstance Win32_ComputerSystem` and `wmic bios get  serialnumber` are what every asset agent runs, and nothing in them is evasive.  The discriminator used here is that the caller must *name a hypervisor vendor*  in the command line — it is already looking for VMware, VirtualBox or QEMU  rather than asking what the machine is — so the rule ANDs a list of enumeration  binaries against a list of virtualization artefact strings covering the guest  tools services, the vendor registry hives and the ACPI table names those tools  register. Two things this deliberately cannot see, which matter more here than  in most rules. Malware that performs the same checks in-process, through the  WMI COM API, a CPUID instruction, a registry API call or a  GetAdaptersInfo MAC-prefix comparison, creates no child process and produces  nothing on this log source at all — process creation catches only the  script-and-LOLBin form of the technique, which is the minority of it. And the  brief's other two Windows legs do not help: Sysmon EventID 7 image_load and  EventID 10 process_access carry no artefact name to match on for this  behaviour. MITRE's ProcessAncestry and UserContext knobs are where a site adds  a parent-process or session filter; the binary and artefact lists below were  assembled here, not taken from MITRE.  UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0168, 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/T1497/001  - https://attack.mitre.org/detectionstrategies/DET0168author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-16tags:  - attack.defense-evasion  - attack.discovery  - attack.t1497.001logsource:  category: process_creation  product: windowsdetection:  selection_tool:    Image|endswith:      - '\wmic.exe'      - '\reg.exe'      - '\sc.exe'      - '\tasklist.exe'      - '\powershell.exe'      - '\pwsh.exe'      - '\cscript.exe'      - '\wscript.exe'  selection_artefact:    CommandLine|contains:      - 'VMware'      - 'VirtualBox'      - 'VBOX'      - 'vboxservice'      - 'vboxtray'      - 'vmtoolsd'      - 'vmwaretray'      - 'vmwareuser'      - 'QEMU'      - 'Virtual Machine'      - 'HARDWARE\ACPI\DSDT'      - 'HARDWARE\ACPI\FADT'      - 'HARDWARE\ACPI\RSDT'      - 'SYSTEM\CurrentControlSet\Services\Disk\Enum'      - 'SOFTWARE\Oracle\VirtualBox'  condition: selection_tool and selection_artefactfalsepositives:  - "Guest-tools installers and updaters. VMware Tools, the VirtualBox Guest Additions and the equivalent QEMU guest agent all probe for their own service and registry keys with sc query, reg query and WMI during install, upgrade and repair, and their names sit in the artefact list by construction. On a virtualized estate this is the single largest source of matches."  - "Software inventory and configuration management. Detection methods in Configuration Manager applications, Intune requirement scripts, and Ansible or Puppet facts that test for VMware Tools before applying a policy re-evaluate on a fixed schedule, so the same command line recurs on every managed guest at every cycle rather than once."  - "Monitoring and backup agents that check guest-tools health. Hypervisor-aware backup products and NOC checks query the VMTools service state to decide whether quiesced snapshots are possible, which matches sc.exe against the VMware term on every polling interval."  - "Virtualization administrators and support staff troubleshooting by hand. Confirming whether a machine is a guest, or why guest tools are not reporting, is done with exactly these commands, and on a helpdesk it happens often enough to outnumber anything malicious."level: medium

Sentinel · KQL

Run this as a search.

DeviceProcessEvents| where ((FolderPath endswith "\\wmic.exe" or FolderPath endswith "\\reg.exe" or FolderPath endswith "\\sc.exe" or FolderPath endswith "\\tasklist.exe" or FolderPath endswith "\\powershell.exe" or FolderPath endswith "\\pwsh.exe" or FolderPath endswith "\\cscript.exe" or FolderPath endswith "\\wscript.exe") and (ProcessCommandLine contains "VMware" or ProcessCommandLine contains "VirtualBox" or ProcessCommandLine contains "VBOX" or ProcessCommandLine contains "vboxservice" or ProcessCommandLine contains "vboxtray" or ProcessCommandLine contains "vmtoolsd" or ProcessCommandLine contains "vmwaretray" or ProcessCommandLine contains "vmwareuser" or ProcessCommandLine contains "QEMU" or ProcessCommandLine contains "Virtual Machine" or ProcessCommandLine contains "HARDWARE\\ACPI\\DSDT" or ProcessCommandLine contains "HARDWARE\\ACPI\\FADT" or ProcessCommandLine contains "HARDWARE\\ACPI\\RSDT" or ProcessCommandLine contains "SYSTEM\\CurrentControlSet\\Services\\Disk\\Enum" or ProcessCommandLine contains "SOFTWARE\\Oracle\\VirtualBox"))

Splunk · SPL

Run this as a search.

index=* ((Image="*\\wmic.exe" OR Image="*\\reg.exe" OR Image="*\\sc.exe" OR Image="*\\tasklist.exe" OR Image="*\\powershell.exe" OR Image="*\\pwsh.exe" OR Image="*\\cscript.exe" OR Image="*\\wscript.exe") AND (CommandLine="*VMware*" OR CommandLine="*VirtualBox*" OR CommandLine="*VBOX*" OR CommandLine="*vboxservice*" OR CommandLine="*vboxtray*" OR CommandLine="*vmtoolsd*" OR CommandLine="*vmwaretray*" OR CommandLine="*vmwareuser*" OR CommandLine="*QEMU*" OR CommandLine="*Virtual Machine*" OR CommandLine="*HARDWARE\\ACPI\\DSDT*" OR CommandLine="*HARDWARE\\ACPI\\FADT*" OR CommandLine="*HARDWARE\\ACPI\\RSDT*" OR CommandLine="*SYSTEM\\CurrentControlSet\\Services\\Disk\\Enum*" OR CommandLine="*SOFTWARE\\Oracle\\VirtualBox*"))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE ((TO_LOWER(process.executable) LIKE "*\\\\wmic.exe" OR TO_LOWER(process.executable) LIKE "*\\\\reg.exe" OR TO_LOWER(process.executable) LIKE "*\\\\sc.exe" OR TO_LOWER(process.executable) LIKE "*\\\\tasklist.exe" OR TO_LOWER(process.executable) LIKE "*\\\\powershell.exe" OR TO_LOWER(process.executable) LIKE "*\\\\pwsh.exe" OR TO_LOWER(process.executable) LIKE "*\\\\cscript.exe" OR TO_LOWER(process.executable) LIKE "*\\\\wscript.exe") AND (TO_LOWER(process.command_line) LIKE "*vmware*" OR TO_LOWER(process.command_line) LIKE "*virtualbox*" OR TO_LOWER(process.command_line) LIKE "*vbox*" OR TO_LOWER(process.command_line) LIKE "*vboxservice*" OR TO_LOWER(process.command_line) LIKE "*vboxtray*" OR TO_LOWER(process.command_line) LIKE "*vmtoolsd*" OR TO_LOWER(process.command_line) LIKE "*vmwaretray*" OR TO_LOWER(process.command_line) LIKE "*vmwareuser*" OR TO_LOWER(process.command_line) LIKE "*qemu*" OR TO_LOWER(process.command_line) LIKE "*virtual machine*" OR TO_LOWER(process.command_line) LIKE "*hardware\\\\acpi\\\\dsdt*" OR TO_LOWER(process.command_line) LIKE "*hardware\\\\acpi\\\\fadt*" OR TO_LOWER(process.command_line) LIKE "*hardware\\\\acpi\\\\rsdt*" OR TO_LOWER(process.command_line) LIKE "*system\\\\currentcontrolset\\\\services\\\\disk\\\\enum*" OR TO_LOWER(process.command_line) LIKE "*software\\\\oracle\\\\virtualbox*"))

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="Image" type="pcre2">(?i)(\\wmic\.exe$|\\reg\.exe$|\\sc\.exe$|\\tasklist\.exe$|\\powershell\.exe$|\\pwsh\.exe$|\\cscript\.exe$|\\wscript\.exe$)</field>    <field name="CommandLine" type="pcre2">(?i)(VMware|VirtualBox|VBOX|vboxservice|vboxtray|vmtoolsd|vmwaretray|vmwareuser|QEMU|Virtual Machine|HARDWARE\\ACPI\\DSDT|HARDWARE\\ACPI\\FADT|HARDWARE\\ACPI\\RSDT|SYSTEM\\CurrentControlSet\\Services\\Disk\\Enum|SOFTWARE\\Oracle\\VirtualBox)</field>    <description>Command line probes the host for hypervisor vendor artefacts</description>    <mitre>      <id>T1497.001</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.