DLL劫持漏洞与思考

本文详细介绍了DLL劫持漏洞的工作原理,通过使用Sysinternals的Procmon和逆向工程工具Ghidra来识别可劫持的DLL及入口点。通过创建恶意DLL并将其放在目标应用程序的可写目录中,实现对程序的控制。讨论了多个入口点函数的处理方法,并提出了一些缓解措施,如使用安全的DLL搜索模式和应用白名单。
摘要由CSDN通过智能技术生成

DLL劫持顾名思义,是去执行一个外部库(dll)的代码,而不是执行一个可移植的可执行 PE文件。通过DLL的搜索顺序,可以将代码植入二进制程序让易受攻击的应用程序加载并执行。这不是一个新提出的攻击方法,但有什么更好的方法可以通过NSA最新发布的工具Ghidra找到dll劫持代码吗?

我在这篇文章中将会相当深入地介绍DLL劫持,但首先有一些基本的概念需要了解一下。

使用Procmon,打开目标PE,识别试图从可写路径加载的DLLs文件名。

使用Ghidra识别所述DLL的入口点。

创建入口点是你的有效载荷的DLL。

对编译后的DLL进行重命名,并加入可写目录。

执行存在劫持突破的exe程序。

首先我们需要安装下列程序:

Sysinternals套件

Ghidra- 如果尚未安装,需要Java 11

Visual Studio CE

腻子 0.65-需要劫持的应用程序

tftpd32 v3.50-将被劫持的应用程序

测试DLL劫持的应用有很多,但这些应用都很简单,而且在我遇到的一些文章中都有记录。如果需要深入研究每个例子,一定要查看更多代码。Sysinternals还包含少量的二进制文件,如果你愿意的话,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网安溦寀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值