基于C#的工具,可自动发现和利用目标二进制文件中的DLL劫持漏洞。劫持路径可在红队行动中用于绕过EDR。
该工具主要实现DLL劫持中以下阶段的自动化:
发现方法论:
利用方法论:
从 ProcMon 自动生成的 CSV 文件中解析潜在可利用的DLL劫持路径
将验证DLL(根据PE架构选择)逐个复制到劫持路径,并同时运行目标二进制一段时间
在DLL劫持过程中,可通过劫持场景获得以下输出:
入口点未找到的情况:
注意:代码已程序化处理“入口点未找到”错误,无需手动关闭MsgBox :) 否则会导致代码崩溃****
当所有潜在可利用的DLL劫持路径的劫持过程完成后,控制台以及文本文件(C:\DLLLogs\output_logs.txt)中会输出最终结果,格式如下:
这些已确认的DLL劫持路径可在红队行动中用于通过合法可执行文件(如OneDrive、Firefox、MSEdge、“自带LOLBIN”等)加载恶意DLL植入,从而绕过最先进的EDR,因为大多数EDR无法检测DLL劫持(如George Karantzas和Constantinos Patsakis在其研究论文中所述):https://arxiv.org/abs/2108.10422
注意:i 和 ii 先决条件应放在 ImpulsiveDLLHijacks.exe 本身的目录中。
构建和设置信息:
ImpulsiveDLLHijack
对于验证DLL:
设置: 将验证DLL(maldll32 和 maldll64)复制到 ImpulsiveDLLHijack.exe 目录中,然后执行 ImpulsiveDLLHijack.exe :))

目标可执行文件:OneDrive.exe
阶段:发现

阶段:利用




阶段:最终结果和日志

谢谢,非常欢迎反馈! - knight!