首页
社区
课程
招聘
[原创][分享] 精简Windows内核漏洞驱动下载器
发表于: 23小时前 385

[原创][分享] 精简Windows内核漏洞驱动下载器

23小时前
385

不止于 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 338K9s2c8@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: f0fK9s2c8@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:      0f1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6N6i4m8H3L8%4u0@1i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3help/5068861
[*] Vulnerable KB URL: 4c4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6N6i4m8H3L8%4u0@1i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3help/5066835

=== Downloading Drivers ===

[*] Downloading patch: 49dK9s2c8@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: 3d8K9s2c8@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

依赖只有 requestscolorama,Python 3.8 以上就能跑,没有任何商业软件要求。


写在最后

DrvHunter 不是 diffrays 的替代品,也不试图成为。它是补充——为那些"只需要下载"的场景提供一个更轻的选择。

如果你需要完整的二进制补丁对比(伪代码提取 + 函数匹配 + 可视化),可以试试 diffrays,它做得非常好。

如果你只是想"根据 CVE 编号把两个驱动下载下来,剩下的我自己来"——那么 DrvHunter 也不错。

项目 MIT 协议开源,欢迎 Star 和 PR。


[招生]科锐逆向工程师培训(2026年7月3日实地,远程教学同时开班, 第56期)!

收藏
免费 0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回