ZeroDayVPN/ZerroDay-DLL-Hijack-Scanner

GitHub: ZeroDayVPN/ZerroDay-DLL-Hijack-Scanner

一款无依赖的 Windows DLL 劫持漏洞扫描器,通过分析 PE 导入表和目录写权限,自动化发现权限提升和代码执行向量。

Stars: 0 | Forks: 0

🔓 ZerroDay:高级 DLL 劫持扫描器

专为 Windows 权限提升精简漏洞发现流程

Download Release View Source


🧠 概念概述

我开发 ZerroDayEvil 是因为我需要一款快速、无依赖且开源的工具,用于在 Windows 环境中搜寻 DLL 劫持漏洞。当 Windows 应用程序加载动态链接库(DLL)时,它们会遵循严格的搜索顺序——从可执行文件自身的目录开始,然后依次移动到 System32、Windows 文件夹,最后是 PATH 环境变量。

如果一个应用程序试图加载一个不存在于受保护系统目录中的 DLL,并且我对该搜索链中靠前的目录具有写入权限,我就可以投放恶意 payload。ZerroDay 将这整个发现过程自动化了。它会遍历目录树,分析可移植可执行(PE)导入表,将它们与磁盘上实际存在的文件进行交叉比对,并精准定位确切的劫持机会。

🎯 核心理念

“寻找执行链中缺失的环节。”
我设计 ZerroDayEvil 的初衷是消除噪音。无需手动运行 Process Monitor (ProcMon) 并在成千上万的 “NAME NOT FOUND” 事件中苦苦搜寻,该工具可以直接静态分析处于静止状态的二进制文件,并为红队行动提供即时、可操作的情报。


🖥️ 图形用户界面(GUI)

将 GUI 指向目标目录,然后点击 Scan。当 Robber 解析可执行文件时,结果会实时填充到树视图中。你可以展开任何存在漏洞的可执行文件,检查哪些特定的 DLL 是可劫持的、你需要代理的导出方法,以及完整的搜索顺序路径(包括可写性标志)。

Robber GUI Interface

🎨 自定义评级配置

为了帮助优先考虑用于制作代理 DLL 的目标,我基于 payload 复杂度实现了一套颜色编码的评级系统:

评级等级 颜色 Emoji 特征与代理难度
最佳 绿色 🟢 导入函数少且二进制体积小。极其容易构建代理 DLL 来 stub 所需的导出。
良好 黄色 🟡 复杂度中等。需要多费些功夫来映射导出,以避免宿主应用程序崩溃。
较差 红色 🔴 导入量巨大或二进制文件非常大。在不导致执行不稳定的情况下极难进行有效代理。

🚀 快速入门指南(CLI 模式)

针对自动化 pipeline 和无头环境,我提供了一个功能强大的命令行界面(CLI)。进度信息会输出到 stderr,而干净的 JSON/CSV 结果则输出到 stdout,使其完全支持管道操作。

🧪 CLI 选项

Robber.exe --path <dir> [options]

--path <dir>               Directory to scan (required)

--output <file>            Write to file (.json or .csv). Default: stdout

--image-type any|x86|x64   Filter by architecture

--sign any|signed          Filter by digital signature status

--rate any|best|good|bad   Filter by complexity rating

--write-perm               Only show results where the target directory is writable

--best-dll-count <n>       (default: 2)

--best-exe-size <n>        KB threshold (default: 10240)

--help

💻 调用示例

搜寻最佳、最容易利用的目标并保存为 JSON:

Robber.exe --path "C:\Program Files" --rate best --output hits.json

将输出通过管道传递给 jq,以快速解析存在漏洞的路径:

Robber.exe --path "C:\Program Files" | jq '.[].exePath'

严格查找可写目录中已签名的二进制文件(非常适合用于绕过/持久化):

Robber.exe --path "C:\Tools" --sign signed --write-perm

📊 系统架构

graph TD

    A[Target Directory] --> B{PE Parser Engine}

    B --> C[Extract Standard & Delayed Imports]

    B --> D[Check UAC Manifest Requirements]

    C --> E{System DLL Filter}

    E -->|Ignore System32/SysWOW64| F[Skip False Positives]

    E -->|Valid Target| G[Evaluate Search Order Path]

    G --> H[Check Directory Writability]

    H --> I[Apply Complexity Rating]

    I --> J[Export JSON/CSV / Render GUI]

✨ 核心功能与智能过滤

🛡️ UAC 提权检测

Robber 会自动解析应用程序清单。如果可执行文件需要提权(requireAdministratorhighestAvailable),我会直接在输出中对其进行标记。在提权进程上成功进行 DLL 劫持不仅仅是任意的代码执行——它是一个直接的权限提升向量。

🧠 智能减少误报

我专门对引擎进行了编程,使其自动排除已知的系统 DLL(例如来自 System32SysWOW64Windows\System 的)。这意味着你不会被关于可再发行运行时(如 msvcr120.dll)的误报噪音所淹没。此外,扫描器还会分析标准和延迟导入。


🧰 技术规格与构建

🛠️ 编译要求

  • 完全使用 Delphi 编写。
  • 需要 Delphi XE2 或更高版本进行编译。
  • 无外部依赖。只需打开 Robber\Robber.dproj 并构建即可。

⚖️ 许可证与法律声明

🚨 免责声明

此工具严格仅用于授权的漏洞研究、系统管理和道德黑客(白帽)活动。
未经系统所有者明确书面许可,识别和利用 DLL 劫持漏洞是非法且不道德的。我对滥用此实用程序不承担任何责任,包括但不限于未经授权在生产系统上进行权限提升或持久化。请务必确保您的操作始终在约定好的授权测试范围内进行。


🔗 SEO 关键词(自然融入)

  • DLL 劫持漏洞扫描器
  • Windows 权限提升工具
  • PE 导入表分析
  • 红队横向移动准备
  • 自动化代理 DLL 生成目标
  • 未加引号服务路径的替代方案
  • 网络安全防御态势验证

🔄 下载与贡献

Download Repository

贡献指南

  1. Fork 该代码仓库。
  2. 提交专注于 Delphi 性能改进或 UI 增强的 PR。
  3. 确保严格维持项目无依赖的特性。

ZerroDayEvil — 系统性地瓦解 Windows 执行链。

标签:DLL劫持, Linux, Web报告查看器, 云安全监控, 协议分析, 权限提升, 静态分析