Power configuration changed to stop a host sleeping
Matches AN1174's observable — powercfg.exe created with arguments that modify sleep, hibernate or display timeouts — but narrowed from "any power setting changed" to "a timeout set to never", because a timeout of zero is what the technique actually needs: the machine stays awake, stays unlocked and keeps running the implant. The eight `<setting>-timeout-<ac|dc> 0` strings cover the standby, hibernate, monitor and disk timeouts on both mains and battery power, and a second selection takes the `-h off` / `-hibernate off` form that removes hibernation outright. Both are written as substrings of the whole command line so the older `powercfg -change -standby-timeout-ac 0` and the documented `powercfg /change standby-timeout-ac 0` spellings both match. Three honest limits: the same change made through `-setacvalueindex` names a power-setting GUID rather than a readable keyword and will not match; a change written straight into the registry under HKLM\SYSTEM\CurrentControlSet\Control\Power creates no process at all; and an unusual amount of whitespace between the setting and its value breaks the literal. AN1175 (Linux systemd-inhibit and /etc/systemd/sleep.conf) and AN1176 (macOS pmset) describe different platforms and different log sources and are not expressed here. The brief maps Security EventID 4688 onto Sigma's `process_creation` category, which is Sysmon-shaped — this rule is written in that vocabulary (`Image`, `CommandLine`), and a raw 4688 feed, whose native field names are `NewProcessName` and `CommandLine`, needs the usual field mapping applied before it can match. 4688 also requires *Audit Process Creation*, and matching on arguments additionally requires the separate *Include command line in process creation events* policy; with either off this rule returns zero rows, and zero rows here means blind, not quiet. UNVERIFIED — derived from MITRE ATT&CK DET0417 and never executed against logs.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: Power configuration changed to stop a host sleepingid: 92855449-7353-417e-80b6-2a2a0493eac8status: experimentaldescription: | Matches AN1174's observable — powercfg.exe created with arguments that modify sleep, hibernate or display timeouts — but narrowed from "any power setting changed" to "a timeout set to never", because a timeout of zero is what the technique actually needs: the machine stays awake, stays unlocked and keeps running the implant. The eight `<setting>-timeout-<ac|dc> 0` strings cover the standby, hibernate, monitor and disk timeouts on both mains and battery power, and a second selection takes the `-h off` / `-hibernate off` form that removes hibernation outright. Both are written as substrings of the whole command line so the older `powercfg -change -standby-timeout-ac 0` and the documented `powercfg /change standby-timeout-ac 0` spellings both match. Three honest limits: the same change made through `-setacvalueindex` names a power-setting GUID rather than a readable keyword and will not match; a change written straight into the registry under HKLM\SYSTEM\CurrentControlSet\Control\Power creates no process at all; and an unusual amount of whitespace between the setting and its value breaks the literal. AN1175 (Linux systemd-inhibit and /etc/systemd/sleep.conf) and AN1176 (macOS pmset) describe different platforms and different log sources and are not expressed here. The brief maps Security EventID 4688 onto Sigma's `process_creation` category, which is Sysmon-shaped — this rule is written in that vocabulary (`Image`, `CommandLine`), and a raw 4688 feed, whose native field names are `NewProcessName` and `CommandLine`, needs the usual field mapping applied before it can match. 4688 also requires *Audit Process Creation*, and matching on arguments additionally requires the separate *Include command line in process creation events* policy; with either off this rule returns zero rows, and zero rows here means blind, not quiet. UNVERIFIED — derived from MITRE ATT&CK DET0417 and never executed against logs.references: - https://attack.mitre.org/techniques/T1653 - https://attack.mitre.org/detectionstrategies/DET0417author: Siemphony pipeline (machine-derived from MITRE ATT&CK v19.2)date: 2026-08-17tags: - attack.persistence - attack.t1653logsource: category: process_creation product: windowsdetection: selection_tool: Image|endswith: '\powercfg.exe' selection_timeout_never: CommandLine|contains: - 'standby-timeout-ac 0' - 'standby-timeout-dc 0' - 'hibernate-timeout-ac 0' - 'hibernate-timeout-dc 0' - 'monitor-timeout-ac 0' - 'monitor-timeout-dc 0' - 'disk-timeout-ac 0' - 'disk-timeout-dc 0' selection_hibernate_off: CommandLine|contains|windash: - '-hibernate off' - '-h off' condition: selection_tool and (selection_timeout_never or selection_hibernate_off)falsepositives: - "Endpoint management enforcing a power baseline — an SCCM configuration item, an Intune script, a GPO startup script or an RMM policy that runs powercfg with monitor-timeout-ac 0 or standby-timeout-ac 0 on every host at every policy cycle. In a managed estate this is the highest-volume match by a wide margin, and it is why the level is low rather than medium. MITRE's AllowedAdminTools knob is where this gets scoped away, populated with the parent process or account of whichever agent runs it in your environment." - "Image build and provisioning task sequences, which routinely run powercfg -h off to reclaim the hiberfil.sys allocation on servers and VDI images and set standby-timeout-ac 0 so a long installation is not interrupted. One match per machine build, but every machine, and in bursts during a rollout." - "OEM laptop power utilities, conference-room and kiosk software, and presentation modes that apply a never-sleep profile whenever a device is docked or projecting, then revert it afterwards — producing pairs of matches tied to hardware state rather than to any user action." - "A user or administrator typing powercfg /change standby-timeout-ac 0 so an overnight backup, transfer or render is not interrupted, which is the same command line the technique uses and is separated from it only by who ran it and why."level: lowSentinel · KQL
Run this as a search.
DeviceProcessEvents| where (FolderPath endswith "\\powercfg.exe" and ((ProcessCommandLine contains "standby-timeout-ac 0" or ProcessCommandLine contains "standby-timeout-dc 0" or ProcessCommandLine contains "hibernate-timeout-ac 0" or ProcessCommandLine contains "hibernate-timeout-dc 0" or ProcessCommandLine contains "monitor-timeout-ac 0" or ProcessCommandLine contains "monitor-timeout-dc 0" or ProcessCommandLine contains "disk-timeout-ac 0" or ProcessCommandLine contains "disk-timeout-dc 0") or (ProcessCommandLine contains "-hibernate off" or ProcessCommandLine contains "/hibernate off" or ProcessCommandLine contains "–hibernate off" or ProcessCommandLine contains "—hibernate off" or ProcessCommandLine contains "―hibernate off" or ProcessCommandLine contains "-h off" or ProcessCommandLine contains "/h off" or ProcessCommandLine contains "–h off" or ProcessCommandLine contains "—h off" or ProcessCommandLine contains "―h off")))
Splunk · SPL
Run this as a search.
index=* (Image="*\\powercfg.exe" AND ((CommandLine="*standby-timeout-ac 0*" OR CommandLine="*standby-timeout-dc 0*" OR CommandLine="*hibernate-timeout-ac 0*" OR CommandLine="*hibernate-timeout-dc 0*" OR CommandLine="*monitor-timeout-ac 0*" OR CommandLine="*monitor-timeout-dc 0*" OR CommandLine="*disk-timeout-ac 0*" OR CommandLine="*disk-timeout-dc 0*") OR (CommandLine="*-hibernate off*" OR CommandLine="*/hibernate off*" OR CommandLine="*–hibernate off*" OR CommandLine="*—hibernate off*" OR CommandLine="*―hibernate off*" OR CommandLine="*-h off*" OR CommandLine="*/h off*" OR CommandLine="*–h off*" OR CommandLine="*—h off*" OR CommandLine="*―h off*")))Elastic · ES|QL
Run this as a search.
FROM logs-*| WHERE (TO_LOWER(process.executable) LIKE "*\\\\powercfg.exe" AND ((TO_LOWER(process.command_line) LIKE "*standby-timeout-ac 0*" OR TO_LOWER(process.command_line) LIKE "*standby-timeout-dc 0*" OR TO_LOWER(process.command_line) LIKE "*hibernate-timeout-ac 0*" OR TO_LOWER(process.command_line) LIKE "*hibernate-timeout-dc 0*" OR TO_LOWER(process.command_line) LIKE "*monitor-timeout-ac 0*" OR TO_LOWER(process.command_line) LIKE "*monitor-timeout-dc 0*" OR TO_LOWER(process.command_line) LIKE "*disk-timeout-ac 0*" OR TO_LOWER(process.command_line) LIKE "*disk-timeout-dc 0*") OR (TO_LOWER(process.command_line) LIKE "*-hibernate off*" OR TO_LOWER(process.command_line) LIKE "*/hibernate off*" OR TO_LOWER(process.command_line) LIKE "*–hibernate off*" OR TO_LOWER(process.command_line) LIKE "*—hibernate off*" OR TO_LOWER(process.command_line) LIKE "*―hibernate off*" OR TO_LOWER(process.command_line) LIKE "*-h off*" OR TO_LOWER(process.command_line) LIKE "*/h off*" OR TO_LOWER(process.command_line) LIKE "*–h off*" OR TO_LOWER(process.command_line) LIKE "*—h off*" OR TO_LOWER(process.command_line) LIKE "*―h off*")))
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="Image" type="pcre2">(?i)\\powercfg\.exe$</field> <field name="CommandLine" type="pcre2">(?i)((standby-timeout-ac 0|standby-timeout-dc 0|hibernate-timeout-ac 0|hibernate-timeout-dc 0|monitor-timeout-ac 0|monitor-timeout-dc 0|disk-timeout-ac 0|disk-timeout-dc 0)|(-hibernate off|/hibernate off|–hibernate off|—hibernate off|―hibernate off|-h off|/h off|–h off|—h off|―h off))</field> <description>Power configuration changed to stop a host sleeping</description> <mitre> <id>T1653</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.