HydraSoft/HydraSoft-DLL-Hijack-Scanner

GitHub: HydraSoft/HydraSoft-DLL-Hijack-Scanner

一款无依赖的 Windows DLL 劫持与权限提升漏洞扫描工具,通过分析 PE 导入表和目录写入权限自动发现可利用的攻击路径。

Stars: 1 | Forks: 0

🔓 HydraSoft:高级 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" 事件中苦苦搜寻,该工具能对处于静态的二进制文件进行静态分析,并为红队(Red Team)行动提供即时、可操作的情报。


🖥️ 图形用户界面(GUI)

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

Robber GUI Interface

🎨 自定义评级配置

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

评级 颜色 Emoji 特征与代理难度
最佳 绿色 🟢 导入函数很少且二进制文件体积小。构建一个存根(stub)来处理所需导出的代理 DLL 非常容易。
良好 黄色 🟡 复杂度中等。需要稍微多花点精力来映射导出,同时避免导致宿主应用程序崩溃。
较差 红色 🔴 导入量巨大或二进制文件非常大。如果不引起执行不稳定,极难有效地进行代理。

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

针对自动化流水线和无头(headless)环境,我提供了一个功能强大的命令行界面(CLI)。进度信息会输出到 stderr,而干净的 JSON/CSV 结果则发送到 stdout,使其完全具备良好的管道(pipe)兼容性。

🧪 CLI 选项

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

--path <dir>               要扫描的目录(必填)

--output <file>            写入到文件(.json 或 .csv)。默认值:stdout

--image-type any|x86|x64   按架构过滤

--sign any|signed          按数字签名状态过滤

--rate any|best|good|bad   按复杂度评级过滤

--write-perm               仅显示目标目录可写的结果

--best-dll-count <n>       (默认值:2)

--best-exe-size <n>        KB 阈值(默认值: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[目标目录] --> B{PE 解析引擎}

    B --> C[提取标准与延迟导入]

    B --> D[检查 UAC 清单要求]

    C --> E{系统 DLL 过滤器}

    E -->|忽略 System32/SysWOW64| F[跳过误报]

    E -->|有效目标| G[评估搜索顺序路径]

    G --> H[检查目录可写性]

    H --> I[应用复杂度评级]

    I --> J[导出 JSON/CSV / 渲染 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 执行链。

标签:后端开发, 文档结构分析