对指定二进制文件进行 DLL 劫持研究 —— DLLirant
项目地址:https://github.com/Sh0ckFR/DLLirantDLLirant 是一种可自动对指定二进制文件进行 DLL 劫持研究的工具。
Demo 演示
安装
需要安装 Visual Studio Community Edition 或更高版本。
在 "DLLirantDLL" 目录下启动 DLLirantDLL.sln,更新项目上的 Visual Studio 版本,在 Visual Studio 顶部菜单中选择 "Release x64",关闭 Visual Studio (只需一次)。
从 pip 安装 pefile:
pip3 install pefile
使用
第一次需要使用 x64 Native Tools Command Prompt for VS 启动命令行(使用 windows touch 搜索)
使用 cd 命令到您的 DLLirant 目录并测试二进制文件:
python3 DLLirant.py -f "C:\THEFULLPATH\YourBinary.exe"
如果要创建代理 dll,可以在原始易受攻击的 dll 上使用 -p 选项 (参阅 https://itm4n.github.io/dll-proxying/ 了解更多信息):
python3 DLLirant.py -p "C:\THEFULLPATH\VulnerableDLL.dll"
它是如何工作的
该脚本将在 DLLirant.py 的同一目录中创建一个输出目录,将目标二进制文件复制到输出目录。
通过 pefile 库将提取二进制文件所需的 dll 名称,并通过使用所需的导出函数编译自定义 DLL 来逐一测试每个可用的导入函数。
如果执行二进制所需的函数,自定义 DLL 将创建一个 C:\\DLLirant\\output.txt 文件并显示一个 MessageBox 以确保可能发生 DLL 劫持。
还将在 DLLirant 目录中创建一个 results.txt,其中包含所有潜在的 DLL 劫持。
文件 admin-required.txt 也可用于需要特定权限的潜在 DLL 劫持。
如果二进制文件需要来自系统或其他文件的 DLL,可以在 DLLirant.py 的同一目录中创建一个导入目录,该脚本将使用目标二进制文件复制输出目录中的所有 DLL 文件。
技术参考 (法语)
[*]https://sh0ckfr.com/pages/martine-a-la-recherche-de-la-dll-hijacking-perdue/
[*]https://sh0ckfr.com/pages/martin-et-le-dll-proxying-de-cristal/
页:
[1]