Windows

DLL劫持漏洞攻击,预防和检测

黑麒麟拿shell十九 - dz论坛之Discuz! X3 0 uc key拿shell

黑麒麟拿shell十九 - dz论坛之Discuz! X3 0 uc key拿shell

目录:

Anonim

DLL代表动态链接库,是Windows或任何其他操作系统上运行的应用程序的外部部分。大多数应用程序本身并不完整,并将代码存储在不同的文件中。如果需要代码,则将相关文件加载到内存中并使用。这可以减少应用程序文件的大小,同时优化RAM的使用。本文介绍了什么是 DLL劫持 以及如何检测和防止它

什么是DLL文件或动态链接库

DLL文件是动态链接库,并且名称显而易见的是扩展名不同的应用程序。我们使用的任何应用程序可能使用或不使用某些代码。这些代码存储在不同的文件中,只有在需要相关的代码时才被调用或加载到RAM中。因此,它可以避免应用程序文件变得过大,并防止应用程序占用资源。

DLL文件的路径由Windows操作系统设置。路径使用全局环境变量进行设置。默认情况下,如果应用程序请求DLL文件,操作系统将查找存储应用程序的相同文件夹。如果没有找到它,它会根据全局变量设置到其他文件夹。有优先级附加到路径,它有助于Windows确定要查找DLL的文件夹。这是DLL劫持的地方。

什么是DLL劫持

由于DLL是扩展程序,对于使用机器上的几乎所有应用程序都是必需的,所以它们在计算机上以不同的文件夹形式存在,如前所述。如果将原始DLL文件替换为包含恶意代码的假DLL文件,则它被称为 DLL劫持 。

如前所述,操作系统在何处查找DLL文件具有优先级。首先,它将查找与应用程序文件夹相同的文件夹,然后根据操作系统环境变量设置的优先级进行搜索。因此,如果一个good.dll文件位于SysWOW64文件夹中,并且某人将某个bad.dll放在与SysWOW64文件夹相比具有较高优先级的文件夹中,则操作系统将使用bad.dll文件,因为它与该DLL具有相同的名称由应用程序请求。一旦进入RAM,它可以执行文件中包含的恶意代码,并可能危害您的计算机或网络。

如何检测DLL劫持

检测和防止DLL劫持的最简单方法是使用第三方工具。市场上有一些很好的免费工具可以帮助检测DLL黑客攻击并阻止它。

一个这样的程序是DLL Hijack Auditor,但它仅支持32位应用程序。您可以将其安装在您的计算机上并扫描所有Windows应用程序,以查看所有应用程序是否容易受到DLL劫持的攻击。界面简单明了。此应用程序的唯一缺点是无法扫描64位应用程序。另一个检测DLL劫持DLL_HIJACK_DETECT的程序可通过GitHub获得。这个程序检查应用程序,看看它们中的任何一个是否容易受到DLL劫持的攻击。如果是,程序会通知用户。该应用程序有两个版本 - x86和x64,因此您可以分别使用它们扫描32位和64位应用程序。

需要注意的是,上述程序只是在Windows平台上扫描应用程序的漏洞,而不是实际上防止劫持DLL文件

如何防止DLL劫持

首先,程序员应该解决这个问题,因为除了加强安全系统之外,您可以做的事情不多。如果程序员开始使用绝对路径,而不是相对路径,那么漏洞就会减少。读取绝对路径,Windows或任何其他操作系统将不依赖于系统变量的路径,并将直接针对预期的DLL,从而消除了在较高优先级路径中加载相同名称DLL的机会。这种方法也不具有防故障功能,因为如果系统受到攻击,并且网络犯罪分子知道DLL的确切路径,他们将用假DLL取代原始DLL。这将覆盖该文件,以便将原始DLL更改为恶意代码。但同样,网络犯罪分子需要知道在调用DLL的应用程序中提到的确切绝对路径。这个过程对网络犯罪分子来说很难,因此可以依靠。

回到你能做的事情上,试着扩大你的安全系统,以更好地保护你的Windows系统。使用一个好的防火墙。如果可能,请使用硬件防火墙或打开路由器防火墙。使用良好的入侵检测系统,以便您知道是否有人试图使用您的计算机。

如果您正在对计算机进行故障排除,则还可以执行以下操作来提高安全性:

禁止从远程网络共享加载DLL

  1. 禁止从WebDAV加载DLL文件
  2. 完全禁用WebClient服务或将其设置为手动
  3. 阻止TCP端口445和139,因为它们主要用于危害计算机
  4. 安装操作的最新更新系统和安全软件
  5. Microsoft

发布了阻止DLL劫持攻击的工具。此工具通过防止应用程序不安全地从DLL文件中加载代码来减轻DLL劫持攻击的风险。 如果您想在文章中添加任何内容,请在下面评论