-
-
[原创][分享] 精简Windows内核漏洞驱动下载器
-
发表于: 23小时前 386
-
不止于 diffrays:一个更精简的 Windows 内核漏洞驱动下载方案
当你想做 CVE 二进制对比,发现光是"把驱动文件弄到手"就得折腾一小时——这件事我替你折腾完了。
一、diffrays:一站式漏洞驱动的"理想工具"
如果你做过 Windows 内核漏洞研究,一定熟悉这个场景:拿到一个 CVE 编号,想去对比补丁前后的驱动文件,看看漏洞到底修在哪里。手动操作的流程是什么?从 MSRC API 查组件名,去 Winbindex 翻版本历史,算时间戳,拼符号服务器 URL——任何一个环节出错,就得从头再来。
pwnfuzz的diffrays 就是为了解决这个痛点而生的。
它是一个功能完整的二进制补丁对比工具,核心流程简洁得漂亮:
diffrays autodiff --cve CVE-2025-29824
一条命令,它帮你做了所有脏活:从 MSRC 拉 CVE 元数据 → 解析受影响组件 → 找到对应的驱动文件名 → 下载 Winbindex 版本数据库 → 按 Patch Tuesday 规则筛选补丁版和漏洞版 → 从微软符号服务器下载两个文件 → 最后用 IDA Pro 做函数级伪代码对比,生成 SQLite 数据库 + Web 可视化界面。
说实话,第一次看到这个项目的时候我心里只有两个字:敬佩。
它的亮点非常突出:全自动化流水线、支持 40+ Windows 组件的组件映射表、Patch Tuesday 精准版本筛选、IDA Pro 深度集成、Flask 可视化结果浏览——基本上把漏洞驱动对比这件事做到了"开箱即用"。
二、
问题来了。我装上 diffrays,配好 IDA 环境,跑第一条命令——挂在了分析阶段。
不是它不好,是我的环境太"野"了。diffrays 的补丁对比模块依赖 ida_domain 配合 IDA Pro 9.1+ 使用,而我的 IDA 版本、Python 版本、ida_domain 的兼容性链条没完全对齐,折腾了一阵只好放弃。
冷静下来想想:我其实只需要下载驱动这一步。
拿到两个 .sys 文件之后,我有自己习惯的分析流程。对比功能对我来说不是刚需,但下载功能是。如果为了"自动下载"这一个环节,就得承受一整套环境的配置成本和兼容风险,性价比太低了。
三、DrvHunter:只做一件事的极简轮子
于是我从 diffrays 的源码中提取出了 CVE 解析 + 驱动下载 这条链路,单独封装了一个工具,叫 DrvHunter。
核心定位就一句话:一个只做 CVE 驱动下载的轻量命令行工具。
它保留了 diffrays 在这一环节的全部核心逻辑,但彻底砍掉了 IDA Pro 依赖和补丁对比模块:
- CVE 解析:调用 MSRC API 获取
tag(组件名)、releaseNumber(修复月份) - 组件映射:内置 40+ Windows 组件到文件名的映射表
- 版本数据库:从 Winbindex 下载指定文件的完整版本历史
- 版本筛选:Patch Tuesday 启发式算法,精确匹配补丁版和漏洞版
- 驱动下载:从微软符号服务器拉取实际 PE 文件
安装和上手只有几行命令:
# 安装
git clone 6bcK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6m8e0K6l9K6x3g2)9J5c8V1c8J5N6V1S2#2L8Y4c8W2M7W2)9J5k6h3N6A6N6l9`.`.
cd DrvHunter
pip install .
# 使用(两种模式)
drvhunter --cve CVE-2025-29824 # CVE 模式
drvhunter -f clfs.sys -m 2025-09 -w 11-24H2 # 手动模式
运行效果(示例为drvhunter --cve CVE-2025-59514):
=== Fetching CVE Data ===
CVE Title: Microsoft Streaming Service Proxy Elevation of Privilege Vulnerability
Tag: Microsoft Streaming Service
Release Number: 2025-Nov
Description: <p>Improper privilege management in Microsoft Streaming Service allows an authorized attacker to elevate privileges locally.</p>
[+] Matched component: Microsoft Streaming Service -> mskssrv.sys
[+] Patch month: 2025-11
=== Configuration ===
CVE: CVE-2025-59514
Filename: mskssrv.sys
Patch Month: 2025-11
Windows Version: 11-24H2
Output Dir: .
=== Downloading Winbindex Database for mskssrv.sys ===
[*] Downloading database: fecK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4K9h3&6T1K9h3&6V1k6i4S2Q4x3X3g2E0y4o6p5%4P5W2)9J5k6h3y4G2L8g2)9J5c8X3c8S2N6r3q4Q4x3V1k6T1P5g2)9#2k6X3k6A6L8r3g2F1j5h3#2W2i4K6g2X3j5$3!0E0M7s2u0W2M7%4y4W2k6q4)9J5c8X3#2K6K9%4y4K6M7Y4k6Q4x3X3g2K6P5i4y4Q4x3X3g2B7M7$3!0F1i4K6u0W2k6%4Z5`.
[+] Database saved: _mskssrv.json.gz
=== Finding Target Versions ===
[+] Selected patch version: 10.0.26100.7171 (2025-11-11)
[+] Selected vulnerable version: 10.0.26100.6725 (2025-10-14)
[+] Patch version: 10.0.26100.7171 (2025-11-11) [direct (11-24H2)]
[+] Vulnerable version: 10.0.26100.6725 (2025-10-14) [direct (11-24H2)]
[*] Patch KB URL: 09cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6N6i4m8H3L8%4u0@1i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3help/5068861
[*] Vulnerable KB URL: 130K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6N6i4m8H3L8%4u0@1i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3help/5066835
=== Downloading Drivers ===
[*] Downloading patch: b12K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6E0M7$3c8D9i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0%4L8X3I4G2j5h3c8Q4x3V1k6K6P5h3#2T1L8$3I4K6i4K6u0r3L8i4y4C8M7%4y4J5N6W2)9J5k6i4y4&6M7#2)9J5c8V1b7@1b7U0u0o6x3U0q4p5x3e0x3H3x3o6m8Q4x3V1k6E0M7$3E0K6M7%4u0$3i4K6u0W2M7%4W2K6
Saving as: mskssrv_10.0.26100.7171.sys
[+] Downloaded: mskssrv_10.0.26100.7171.sys (77,824 bytes)
[*] Downloading vulnerable: 12aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6E0M7$3c8D9i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0%4L8X3I4G2j5h3c8Q4x3V1k6K6P5h3#2T1L8$3I4K6i4K6u0r3L8i4y4C8M7%4y4J5N6W2)9J5k6i4y4&6M7#2)9J5c8U0S2r3b7V1g2p5c8f1f1I4x3e0b7H3x3o6m8Q4x3V1k6E0M7$3E0K6M7%4u0$3i4K6u0W2M7%4W2K6
Saving as: mskssrv_10.0.26100.6725.sys
[+] Downloaded: mskssrv_10.0.26100.6725.sys (81,920 bytes)
=== Download Complete ===
[+] Patched: mskssrv_10.0.26100.7171.sys
[+] Vulnerable: mskssrv_10.0.26100.6725.sys
依赖只有 requests 和 colorama,Python 3.8 以上就能跑,没有任何商业软件要求。
写在最后
DrvHunter 不是 diffrays 的替代品,也不试图成为。它是补充——为那些"只需要下载"的场景提供一个更轻的选择。
如果你需要完整的二进制补丁对比(伪代码提取 + 函数匹配 + 可视化),可以试试 diffrays,它做得非常好。
如果你只是想"根据 CVE 编号把两个驱动下载下来,剩下的我自己来"——那么 DrvHunter 也不错。
项目 MIT 协议开源,欢迎 Star 和 PR。