吉沃运营专员 发表于 2022-5-19 16:38:46

对指定二进制文件进行 DLL 劫持研究 —— DLLirant

项目地址:https://github.com/Sh0ckFR/DLLirant
DLLirant 是一种可自动对指定二进制文件进行 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]
查看完整版本: 对指定二进制文件进行 DLL 劫持研究 —— DLLirant