Skip to content

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

Siemphony’s repertoire

Command line enumerating attached peripheral or USB devices

Matches AN1353's Windows leg directly on the command line: the `Get-PnpDevice` PowerShell cmdlet MITRE names, and the `Win32_USBController` WMI class from its own `wmic path Win32_USBController` example, extended here — not by MITRE — to the closely related `Win32_PnPEntity` class that enumerates all Plug and Play hardware rather than only USB controllers, since both are reached through the same wmic/PowerShell WMI query surface AN1353 targets. The analytic's Sysmon EventID 10 process-access leg, which would show the enumeration reading device-manager or driver-store handles, is a separate event from process creation and is not expressed here. Peripheral discovery is inherently low-signal: the commands this rule matches are the same ones IT inventory tooling and helpdesk troubleshooting run constantly, so this rule is a lead for correlation, not a standalone incident indicator. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0491, 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 enumerating attached peripheral or USB devicesid: 2401243f-b474-4644-971c-d7697c901039status: experimentaldescription: |  Matches AN1353's Windows leg directly on the command line: the `Get-PnpDevice`  PowerShell cmdlet MITRE names, and the `Win32_USBController` WMI class from  its own `wmic path Win32_USBController` example, extended here — not by  MITRE — to the closely related `Win32_PnPEntity` class that enumerates all  Plug and Play hardware rather than only USB controllers, since both are  reached through the same wmic/PowerShell WMI query surface AN1353 targets.  The analytic's Sysmon EventID 10 process-access leg, which would show the  enumeration reading device-manager or driver-store handles, is a separate  event from process creation and is not expressed here. Peripheral discovery  is inherently low-signal: the commands this rule matches are the same ones  IT inventory tooling and helpdesk troubleshooting run constantly, so this  rule is a lead for correlation, not a standalone incident indicator.  UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0491, 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/T1120  - https://attack.mitre.org/detectionstrategies/DET0491author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-16tags:  - attack.discovery  - attack.t1120logsource:  category: process_creation  product: windowsdetection:  selection:    CommandLine|contains:      - 'Get-PnpDevice'      - 'Win32_USBController'      - 'Win32_PnPEntity'  condition: selectionfalsepositives:  - "Fleet-wide IT asset-inventory and RMM agents (SCCM, Intune, Datto, NinjaRMM and similar) that run Get-PnpDevice or WMI hardware queries on every managed endpoint on a recurring schedule — in most enterprise estates this is the largest single source of matches, which is why the level below is set low rather than higher."  - "Helpdesk and desktop-support troubleshooting, where a technician runs Get-PnpDevice or queries Win32_PnPEntity by hand to diagnose a malfunctioning printer, webcam or USB peripheral a user has reported."  - "Driver installation and Windows Update post-install scripts that enumerate Plug and Play devices to verify a driver bound correctly, which runs automatically after routine driver updates."level: low

Sentinel · KQL

Run this as a search.

DeviceProcessEvents| where (ProcessCommandLine contains "Get-PnpDevice" or ProcessCommandLine contains "Win32_USBController" or ProcessCommandLine contains "Win32_PnPEntity")

Splunk · SPL

Run this as a search.

index=* (CommandLine="*Get-PnpDevice*" OR CommandLine="*Win32_USBController*" OR CommandLine="*Win32_PnPEntity*")

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE (TO_LOWER(process.command_line) LIKE "*get-pnpdevice*" OR TO_LOWER(process.command_line) LIKE "*win32_usbcontroller*" OR TO_LOWER(process.command_line) LIKE "*win32_pnpentity*")

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)(Get-PnpDevice|Win32_USBController|Win32_PnPEntity)</field>    <description>Command line enumerating attached peripheral or USB devices</description>    <mitre>      <id>T1120</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.