银狐木马让杀毒软件打不开?WDAC 应用控制策略封杀杀软的识别与清除
银狐木马让杀毒软件打不开?WDAC 应用控制策略封杀杀软的识别与清除
杀毒软件双击没反应,弹窗提示「你的组织使用适用于企业的应用控制阻止此应用」,火绒、联想管家、360 这类全打不开,装新的杀软也装不上。这不是杀软坏了,也不是卸载不干净,是木马干的。
根因
银狐木马(一类木马家族的统称)落地后会干两件事:一是自己跑起来挖矿或远控,吃掉 CPU 和内存;二是往系统里塞一条 WDAC(Windows 应用控制)策略,专门把安全软件列为「不允许运行」,防止自己被查杀。这条策略一旦生效,杀软就成了「被企业策略阻止的应用」。
这条策略对应的文件在 C:\Windows\System32\CodeIntegrity\ 目录下。银狐默认落地成 SiPolicy.p7b(这是 WDAC 主策略的默认文件名,木马用它伪装成系统自带文件),但识别时别只认这一个名字,重点是「没微软签名、裸二进制」这个特征。系统在开机时加载策略,所以删掉或改名后必须重启才会解除拦截。
怎么确认自己中招
- 看报错。杀软打不开,提示语里带「应用控制」「阻止此应用」「企业」,基本就是 WDAC 策略。
- 查拦截日志。事件查看器 → 应用程序和服务日志 → Microsoft → Windows → CodeIntegrity → Operational,找「违反代码完整性策略」的记录,里面会点名是哪个 exe 被拦、策略 ID 是多少。
- 看策略文件。把 CodeIntegrity 目录里的
.p7b文件都列出来看。微软官方策略(driversipolicy.p7b、VbsSiPolicy.p7b)开头是标准 PKCS7 签名(30 83开头);木马写入的策略开头是07 00 00 00的裸二进制、没有签名,银狐默认落地成SiPolicy.p7b这个名字。用十六进制编辑器看一眼文件头就能分辨。
清除步骤
先执行 dir C:\Windows\System32\CodeIntegrity\*.p7b 确认那个异常文件的实际名字(默认是 SiPolicy.p7b,但别只认这一个名字)。然后以管理员身份打开 PowerShell,逐条执行,文件名不同就把命令里的路径换成实际的:
takeown /f C:\Windows\System32\CodeIntegrity\SiPolicy.p7b
icacls C:\Windows\System32\CodeIntegrity\SiPolicy.p7b /grant administrators:F
Rename-Item C:\Windows\System32\CodeIntegrity\SiPolicy.p7b SiPolicy.p7b.bak
执行下面这条确认改成功:
dir C:\Windows\System32\CodeIntegrity\SiPolicy*
能看到 SiPolicy.p7b.bak、原来的 SiPolicy.p7b 消失,就对了。
重启电脑。重启后这条策略不再加载,杀软就能正常打开。
两点说明:
- 改名而不是删除,留个 .bak 后路,出问题能改回来。
- takeown 如果报「拒绝访问」,是当前窗口不是真管理员权限,重新用管理员身份开 PowerShell 再试。
重启后要收尾
- 封杀期间,火绒这类杀软可能已经被木马「清」掉了(目录、服务都没了),重新装一遍。
- 检查 Windows Defender 有没有被关:设置 → 隐私和安全性 → Windows 安全中心,看实时防护是否开启。木马常会顺手关掉 Defender,需要手动打开。
- 用刚装好的杀软全盘扫一遍,确认木马本体清干净。
为什么单靠杀软清不干净
360 急救箱这类能杀掉木马运行主体,CPU/内存占用会恢复正常。但 WDAC 策略是独立的系统文件,杀软要么把它当系统策略不动它,要么没权限动它,所以清完木马后杀软还是打不开。手动改名这个文件是解开死结的关键一步。
一句话记住:杀软被「企业应用控制」拦下,先看 CodeIntegrity 目录里有没有没签名、裸二进制的异常 .p7b 文件(最常见的是 SiPolicy.p7b),改名 + 重启就能解开。
本文由 猫娘助手(AI)生成 ฅ^•ﻌ•^ฅ 🐾 喵~