Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

电源设置 (T1653)

一句话通俗理解

攻击者偷偷改掉你电脑的电源设置,让它永远不睡觉——这样后门程序就能24小时在线,随时等你“叫醒“它

30秒速查卡

维度你需要知道的
这是什么?攻击者修改系统电源配置(禁用休眠、关闭屏幕保护超时、阻止自动关机),确保恶意程序持续运行
为什么危险?系统不休眠意味着后门永不掉线,攻击者随时可以连接;且改动隐蔽,用户通常不会注意电源设置变化
谁需要关心?系统管理员、笔记本用户安全意识培训、企业终端管理团队
你的第一步防御监控 powercfg 命令的异常调用和电源计划的非授权变更
如果只做一件事通过组策略锁定电源计划配置,禁止普通用户修改

难度等级

⭐ 初级:会用 Windows 设置面板或 powercfg 命令即可实施

前置知识检查

读这个文件前,你需要了解:

  • 电源计划(Power Plan):Windows 管理的“省电方案“,控制何时关屏幕、何时休眠、CPU 如何降频
  • 休眠(Hibernate)vs 睡眠(Sleep):休眠是把内存写入磁盘后断电;睡眠是维持内存供电的低功耗状态。两者都会暂停运行中的程序
  • powercfg 命令:Windows 内置的电源配置管理工具,可以命令行修改所有电源设置
  • 屏幕保护超时:多久没操作后启动屏保,屏保启动时常会触发锁屏——攻击者禁用它可避免锁屏后断连

技术描述

想象一下:你给手机设了“30秒自动锁屏“省电。但有个偷偷装到你手机上的 App,把自动锁屏改成了“永不“,还把省电模式关了——这样它就能一直后台运行、一直联网,等你睡着时偷偷干活。电脑上的电源设置攻击就是这回事。

操作系统为了省电和保护安全,会自动让设备进入低功耗或休眠状态。休眠时,所有程序暂停执行,网络连接断开。这对攻击者是个麻烦——他们植入的后门、C2 信标、挖矿程序都会在休眠时“失联“。于是攻击者修改电源设置,让系统永不休眠:

  1. 禁用休眠/睡眠powercfg /change standby-timeout-ac 0(插电时永不睡眠)
  2. 禁用休眠文件powercfg /hibernate off(彻底关闭休眠功能)
  3. 禁用屏幕保护超时:防止屏保启动触发锁屏,锁屏后某些远程控制会断开
  4. 修改电源按钮行为:把“按电源键“改为“什么都不做“,防止用户误关机中断后门
  5. 关闭盖子不操作:笔记本合盖时默认休眠,攻击者改为“不采取任何操作“

类比和技术之间的过渡:就像你给仓库装了个定时断电器,每天晚上12点自动断电。小偷进来后第一件事就是把定时器调到“永不断电“,这样它半夜偷东西时灯一直亮着、监控一直转着。在系统层面,这通过修改注册表 HKLM\SYSTEM\CurrentControlSet\Control\Power 或调用 powercfg 命令实现。

子技术列表

本技术暂无子技术。

攻击流程

flowchart TD
    A[1. 攻击者已获得系统访问权限] --> B[2. 植入后门/C2信标/挖矿程序]
    B --> C[3. 发现系统会自动休眠<br/>导致后门断线]
    C --> D[4. 调用 powercfg 修改电源设置]
    D --> E[5. 禁用休眠/睡眠/屏保超时]
    E --> F[6. 系统保持永久唤醒状态]
    F --> G[7. 后门程序持续运行<br/>C2 信标持续发送]
    G --> H[8. 攻击者随时可连接<br/>实现持久化控制]

该技术特有步骤说明

  1. 枚举当前电源配置powercfg /query 查看当前电源计划的所有设置
  2. 禁用休眠
    powercfg /change standby-timeout-ac 0
    powercfg /change standby-timeout-dc 0
    powercfg /change hibernate-timeout-ac 0
    powercfg /change hibernate-timeout-dc 0
    
  3. 关闭休眠功能powercfg /hibernate off(删除 hiberfil.sys,彻底关闭)
  4. 禁用屏幕保护:修改注册表 HKCU\Control Panel\Desktop\ScreenSaveActive 设为 0
  5. 修改电源按钮和盖子行为powercfg /setacvalueindex SCHEME_CURRENT 4f971e89-eebd-4455-a8de-9e59040e7347 7648efa3-dd9c-4e3e-b566-50f929386280 0(盖子合上时不操作)

真实案例

案例1:Rocke 挖矿木马篡改电源设置保持挖矿(2018-2019年)

  • 时间:2018年下半年至2019年
  • 目标:Linux 服务器和企业终端
  • 攻击组织:Rocke(挖矿团伙,持续利用多个漏洞传播)
  • 手法:Rocke 挖矿木马感染 Linux 服务器后,修改 systemd 的电源管理配置和 cpufreq 设置,将 CPU 频率锁定在最高档,禁用所有节能策略,确保挖矿程序以最大算力持续运行。同时禁用系统的自动休眠和挂起功能
  • 数据来源:一手厂商报告(Palo Alto Unit 42 Rocke 分析报告)

案例2:Shelljack 后门篡改电源配置保持持久连接(2021年)

  • 时间:2021年
  • 目标:Linux 服务器和 IoT 设备
  • 攻击组织:Mozi 僵尸网络运营者 + Mirai 变种团伙(如FreakOut、Gafgyt运营者)
  • 手法:Shelljack 后门感染后,执行 systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target 禁用所有电源管理目标,确保设备永不休眠,后门反向 shell 持续在线。同时修改 logind.confHandleLidSwitch=ignore
  • 数据来源:一手厂商报告(Trend IoT 安全报告)

案例3:UpdateAgent 木马修改电源计划绕过屏幕锁(2022年)

  • 时间:2022年
  • 目标:macOS 用户
  • 攻击组织:UpdateAgent(macOS 恶意软件家族)
  • 手法:UpdateAgent 感染 macOS 后,通过 pmset 命令修改电源管理设置,禁用 displaysleep(屏幕休眠)和 sleep(系统休眠),防止系统休眠后断开 C2 连接。同时禁用屏保以避免锁屏触发,使攻击者能通过 VNC 持续远程查看屏幕
  • 数据来源:一手厂商报告(Jamf Threat Labs、Microsoft Defender for Endpoint 报告)

红队视角

可持续利用手段

  1. 结合电源计划 + 计划任务:修改电源计划保持唤醒,再用计划任务定时唤醒后门,即使系统短暂休眠也能被唤醒
  2. 针对笔记本的盖子行为篡改:很多用户习惯合上笔记本就走,攻击者改“合盖不操作“后,用户以为电脑休眠了实际还在运行
  3. WOL(网络唤醒)配合:即使系统关机,通过配置网卡 WOL,攻击者可远程唤醒设备重新连接后门
  4. CPU 频率锁定:对挖矿场景,锁定 CPU 最高频率提升算力,同时禁用温度保护可能造成硬件损坏

攻击技术可复制性分析

维度评分说明
实现难度极低powercfg 是内置命令,一行搞定
检测绕过电源设置变化极隐蔽,用户几乎不查
持久化效果仅在系统未重启时有效,但配合其他持久化可长期
复制成本极低无需任何工具

蓝队视角

检测建议

用人话说:正常用户几乎不会用命令行 powercfg 改电源设置——他们都是去“设置-系统-电源“里点。如果你在日志里看到 powercfg 命令被非系统进程调用,或者电源计划突然从“平衡“变成“高性能且永不休眠“,这非常可疑。另外,突然禁用休眠的企业服务器也要警惕——服务器本来就不怎么休眠,主动禁用反而异常。

主机层检测

# Sigma规则:检测 powercfg 命令禁用休眠行为
title: 可疑电源配置修改 - 禁用休眠
id: 3c4d5e6f-7890-1234-abcd-ef3456789012
status: experimental
description: 检测使用 powercfg 命令禁用系统休眠/睡眠功能的行为
logsource:
    product: windows
    category: process_creation
detection:
    selection_powercfg:
        Image|endswith: '\powercfg.exe'
        CommandLine|contains:
            - '/change standby-timeout'
            - '/change hibernate-timeout'
            - '/hibernate off'
            - 'standby-timeout-ac 0'
            'standby-timeout-dc 0'
    filter_legitimate:
        User|contains:
            - 'NT AUTHORITY\SYSTEM'  # 部分系统管理脚本会调用
        CommandLine|contains:
            - 'config_manager'  # SCCM 等管理工具
    condition: selection_powercfg and not filter_legitimate
falsepositives:
    - 企业电源管理脚本
    - 管理员手动配置
    - 部分虚拟化平台自动配置
level: medium
# Sigma规则:检测电源计划被修改为永不休眠
title: 电源计划被修改为永不休眠
id: 4d5e6f78-9012-3456-abcd-ef4567890123
status: experimental
description: 检测电源计划被修改为休眠/睡眠超时为0(永不)
logsource:
    product: windows
    service: security
detection:
    selection:
        EventID: 4657  # Registry value modified
        ObjectName|contains: '\Power\'
        NewValue: '0'
    condition: selection
falsepositives:
    - 服务器正常配置
    - Kiosk 模式设备
level: low

系统命令检测

# 查看当前电源计划设置
powercfg /query

# 检查休眠是否被禁用
powercfg /a

# 查看哪些进程最近调用过 powercfg
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-PowerShell/Operational'; Id=4104} |
  Where-Object {$_.Message -match 'powercfg'} | Select-Object TimeCreated, Message

# 检查注册表中的屏保设置
Get-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name ScreenSaveActive, ScreenSaveTimeOut

网络层检测

电源设置本身不直接产生网络行为,但可关联:

  • 系统电源状态日志(EventID 42 电源状态变更)与异常 C2 连接的时间关联
  • 非工作时间(凌晨)系统仍保持活跃且产生网络流量

应用层检测

  • 监控组策略对象的电源配置变更(企业环境应有统一策略)
  • EDR 监控 powercfg.exe 的异常父进程(正常应由 explorer.exe 或管理脚本调用,不应由未知进程调用)
  • 监控注册表 HKLM\SYSTEM\CurrentControlSet\Control\Power 的变更

防御改进措施

  1. 组策略锁定电源计划:通过 GPO 统一推送电源配置,禁止普通用户修改
  2. 服务器基线配置:对服务器建立“永不修改电源设置“的基线,偏离即告警
  3. 审计电源配置变更:启用注册表 Power 键的审计,记录所有修改
  4. 用户安全意识培训:提醒用户注意笔记本“合盖不休眠“等异常现象

应急响应优化

  • 怀疑感染时,优先检查 powercfg /query 输出是否异常
  • 检查 systemctl status sleep.target suspend.target(Linux)是否被 mask
  • macOS 用 pmset -g 查看当前电源管理设置

避坑指南

容易踩的坑

  1. 误判服务器正常配置:很多服务器本来就配置为永不休眠,看到 standby-timeout-ac 0 不要直接告警,要结合是否是新变更判断
  2. 忽视 macOS 和 Linux:电源设置攻击不只发生在 Windows,Linux 的 systemctl mask 和 macOS 的 pmset 同样需要监控
  3. 只看命令不看上下文powercfg 由 SCCM/Intune 等管理工具调用是正常的,要看父进程和调用上下文
  4. 忽视 CPU 频率锁定:挖矿木马会锁定 CPU 频率,这不是传统“电源设置“但属于同类,要监控 cpufreq 变更

本技术特有的注意事项

  • 电源设置修改常与其他持久化手段配合使用——单独出现时易被忽视,建议关联分析
  • 部分企业 Kiosk 设备(如展览展示机)正常配置为永不休眠,需建立白名单
  • IoT 设备的电源管理配置通常更简单,篡改后影响更大

检测建议

网络层

  • 关联系统电源状态事件与非工作时间网络流量
  • 监控休眠时间窗口内的异常 C2 心跳

主机层

  • Windows EventID 42:电源状态变更(系统进入/退出休眠)
  • Windows EventID 4657:注册表 Power 键值修改
  • Sysmon EventID 1powercfg.exe 进程创建
  • Linuxsystemctl status sleep.target/etc/systemd/logind.conf 变更监控
  • macOSpmset -g 定期对比

应用层

  • 组策略管理控制台监控电源策略变更
  • MDM(Intune/Jamf)监控设备电源配置偏离基线

Sigma 规则

见上方“蓝队视角→检测建议“中的两条 Sigma 规则。

缓解措施

缓解措施类型效果实施建议
组策略锁定电源计划预防GPO 统一推送,禁止用户修改
电源配置审计检测启用注册表 Power 键审计
服务器基线监控检测对服务器建立电源配置基线
powercfg 命令监控检测监控非系统进程调用 powercfg
用户安全意识培训预防提醒注意异常电源行为

动手实验

实验目标

理解电源设置修改的影响,验证“永不休眠“对后门持久化的作用

实验步骤

# 1. 记录当前电源设置(实验前基线)
powercfg /query > C:\temp\before.txt

# 2. 模拟攻击者修改电源设置
powercfg /change standby-timeout-ac 0    # 插电时永不睡眠
powercfg /change standby-timeout-dc 0    # 电池时永不睡眠
powercfg /change hibernate-timeout-ac 0  # 插电时永不休眠
powercfg /change hibernate-timeout-dc 0  # 电池时永不休眠

# 3. 验证修改
powercfg /query > C:\temp\after.txt
Compare-Object (Get-Content C:\temp\before.txt) (Get-Content C:\temp\after.txt)

# 4. 模拟后门:启动一个定时 ping(代表 C2 心跳)
# 即使你不操作电脑,这个 ping 也会持续运行
while($true) { ping -n 1 127.0.0.1 | Out-Null; Start-Sleep -Seconds 60 }

# 5. 实验后恢复
powercfg /restoredefaultschemes

预期输出

# Compare-Object 输出会显示 standby-timeout 和 hibernate-timeout 从原值变为 0
InputObject                 SideIndicator
-----------                 -------------
  Power Setting Index: 0x0  =>   (修改后值为0,表示永不)
  Power Setting Index: 0x1  <=   (修改前原值)

工具说明

工具用途说明
powercfg(Windows 内置)电源配置管理最常用的电源设置工具
pmset(macOS 内置)macOS 电源管理类似 powercfg
systemctl(Linux 内置)系统服务管理mask/unmask 电源目标
Group Policy Editor组策略配置企业统一电源策略

术语解释

术语通俗解释
电源计划(Power Plan)Windows 的“省电方案“,控制休眠、屏幕关闭等时机
休眠(Hibernate)把内存写入磁盘后断电,程序暂停,开机后恢复
睡眠(Sleep/Standby)维持内存供电的低功耗状态,程序暂停,唤醒快
hiberfil.sysWindows 休眠功能使用的文件,禁用休眠会删除它
WOL(Wake-on-LAN)网络唤醒,通过特殊网络包远程开机
cpufreqLinux CPU 频率管理机制,攻击者可锁定最高频率
Kiosk 模式设备只运行单一应用的展示模式,通常配置为永不休眠

参考资料

📚 如果你想深入了解

🔧 如果你想动手试试

🎯 真实攻击参考

版本历史

版本日期变更说明
v1.02026-07-10初始版本,基于 MITRE ATT&CK v19 和 v3.0 写作风格指南编写