DLL劫持顾名思义,是去执行一个外部库(dll)的代码,而不是执行一个可移植的可执行 PE文件。通过DLL的搜索顺序,可以将代码植入二进制程序让易受攻击的应用程序加载并执行。这不是一个新提出的攻击方法,但有什么更好的方法可以通过NSA最新发布的工具Ghidra找到dll劫持代码吗?
我在这篇文章中将会相当深入地介绍DLL劫持,但首先有一些基本的概念需要了解一下。
使用Procmon,打开目标PE,识别试图从可写路径加载的DLLs文件名。
使用Ghidra识别所述DLL的入口点。
创建入口点是你的有效载荷的DLL。
对编译后的DLL进行重命名,并加入可写目录。
执行存在劫持突破的exe程序。
首先我们需要安装下列程序:
腻子 0.65-需要劫持的应用程序
tftpd32 v3.50-将被劫持的应用程序
测试DLL劫持的应用有很多,但这些应用都很简单,而且在我遇到的一些文章中都有记录。如果需要深入研究每个例子,一定要查看更多代码。Sysinternals还包含少量的二进制文件,如果你愿意的话,