首页
学习
活动
专区
圈层
工具
发布

深入解析 DLL 劫持漏洞

然而,在相当长的一段时间里DLL劫持漏洞并没有受到大家的关注,直到2010年8月,微软发布安全通报2269637,同时网上公布了大量受影响软件的名字,DLL劫持漏洞才开始进入大家的视野。...由于实施这种DLL劫持不需要其他先决条件,许多厂商关注并承认该利用场景下的DLL劫持漏洞。...2.3 针对安装程序的DLL劫持 许多应用程序的安装包程序也存在有DLL劫持漏洞,这种场景与 针对应用程序安装目录的DLL劫持 比较类似,本来也没有什么特殊之处,不过结合后文提到的浏览器自动下载漏洞,其利用条件又变得相对简单了...,所以这里会导致DLL劫持漏洞。...DLL劫持漏洞缓解措施 DLL劫持漏洞在未来可能仍然会影响着许多软件或者操作系统组件,亦或是与其他漏洞相结合以衍生出新的攻击方法。

4.3K00

如何使用aDLL自动识别DLL劫持漏洞

关于aDLL aDLL是一款功能强大的代码分析工具,可以帮助广大研究人员以自动化的方式识别并发现DLL劫持漏洞。...DLL文件。...该工具的主要目标就是帮助广大研究人员搜索可执行程序所使用的DLL列表,并从中识别出潜在的DLL劫持漏洞。...DLL劫持攻击 DLL劫持指的是,病毒通过一些手段来劫持或者替换正常的DLL,欺骗正常程序加载预先准备好的恶意DLL。 首先我们要了解Windows为什么可以DLL劫持呢?...-w:定义在运行时搜索加载的DLL时可执行进程保持打开状态的秒数。默认时间为20秒。 -aDLL:如果搜索到了待测DLL,则会自动检测该DLL是否会通过伪装成合法DLL来执行(恶意DLL伪装)。

2.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    干货 | DLL劫持

    DLL劫持漏洞(DLL Hijacking Exploit),严格点说,它是通过⼀些⼿段来劫持或者替换正常的DLL,欺 骗正常程序加载预先准备好的恶意DLL的⼀类漏洞的统称。...利⽤DLL劫持漏洞,病毒⽊⻢可以随着⽂档的 打开(或者其他⼀些程序正常⾏为)⽽激活⾃身,进⽽获得系统的控制权。...原理 DLL劫持漏洞之所以被称为漏洞,还要从负责加载DLL的系统API LoadLibrary 来看。熟悉Windows代 码的同学都知道,调⽤ LoadLibrary 时可以使⽤DLL的相对路径。...PATH环境变量中列出的⽬录 dll劫持就发⽣在系统按照顺序搜索这些特定⽬录时。只要⿊客能够将恶意的DLL放在优先于正 常DLL所在的⽬录,就能够欺骗系统优先加载恶意DLL,来实现“劫持”。...说明 在notepad++7.3.3以后notepad官方已经修复这个漏洞,再7.3.3版本以后每次运行notepad++会先检查这个dll是否时原来的dll,这里如果要测试需要下载7.3.3以前的版本

    2.8K21

    bypassUAC && DLL劫持

    一句话解释就是因为有的可以程序可以autoElevate(自动提升) 这也是我们常用的几种uac bypass的手法之一.常见手法如下 1.白名单提权机制 - autoElevate 2.DLL 劫持...3.Windows 自身漏洞提权 4.远程注入 5.COM 接口技术 具有autoElevate属性True的应用程序会在启动时自动提升权限,而这些应用程序往往都具备微软的签名,微软认为它是可信的。...故此,在该程序启动时,将会以管理员身份启动,假设我们通过COM技术或者DLL劫持该应用程序,也能够获得管理员权限,但分析成本,利用难度也都是很高的。...0x12 BypassUAC 下面我们来查找一下具有该权限的应用程序,并利用DLL劫持的方法来bypassUAC,关于DLL劫持的原理这里不再论述,网上已经有多相关的文章了。...我们最后选择了winsat.exe这个程序作为我们的劫持程序,下面就是查看该程序会加载的DLL。 ? 发现其会加载dxgi.dll。 下面就是需要编写我们的dll了,原理如下(图来自国外) ?

    1.6K20

    什么是DLL劫持

    Windows在其基础体系结构中具有DLL的搜索路径(加载DLL文件要遵循目录查找优先级)。...Microsoft Windows使用Windows文件保护机制来保护System32之类的系统路径,但是在企业解决方案中保护可执行文件免受DLL劫持的最佳方法是: 使用绝对路径而不是相对路径 如果您有个人签名...,请在将DLL加载到内存之前对DLL文件签名并检查应用程序中的签名。...否则请使用原始DLL哈希检查DLL文件的哈希) 当然,这也不是仅限于Windows。从理论上讲,任何允许动态链接外部库的OS都容易受到攻击。...查找丢失可以加载的缺少DLL的好工具:https : //processhacker.sourceforge.io/ 学习资源/链接以了解DLL劫持 https://resources.infosecinstitute.com

    1.2K40

    最新dll劫持详解

    本文将对dll劫持进行分析和利用。 基础知识 DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。...dll 这里dll劫持的选用的是notepad++,注意版本问题,我第一次进行dll劫持的时候使用的是最新版本,导致我鼓捣半天都没能正确执行,搞得我一脸懵逼,百度之后才发现notepad后面的版本修复了漏洞...,想要劫持难度很大。...comment(linker, "/EXPORT:uv_udp_open=libuvOrg.uv_udp_open,@195") 即时调用 还是劫持之前的dll:libuv.dll,这里还是先输入DLL...但是即时调用实际上是调用了劫持dll的某个函数,只不过那个函数会jmp到原本的dll中的相应函数的地址。达到的效果相同,但是实现的原理不同。

    3.9K30

    DLL劫持注入浅析

    劫持原理 DLL劫持是指病毒通过一些手段来劫持或者替换正常的DLL,欺骗正常程序加载预先准备好的恶意DLL的过程,如下图中的al1ex.dll是应用程序运行所需加载的DLL,该系统文件默认存放在Windows...系统中的C:\Windows\system32路径下,但由于Windows优先搜索当前路径,所以当我们把恶意al1ex.dll放在应用程序同一路径下,便会被程序成功加载,从而执行恶意操作 劫持检查 我们可以使用以下方法进行劫持检查...DLL劫持的目的 DLL Hijack Auditor Dll Hijack Auditor是一款智能DLL劫持检测工具,它避免木马病毒通过劫持dll动态库文件的方式来实现自身的加载运行,可以有效的避免木马病毒劫持动态库文件...随后构造恶意DLL文件并劫持的DLL放到该应用程序目录下,重新启动该应用程序,检查是否劫持成功 注入演示 首先使用msfvenom生成dll msfvenom -p windows/x64/meterpreter...DLL劫持的基本原理以及DLL劫持的检测方式,最后我们介绍了DLL注入的方法~

    93910

    在Windows中劫持DLL

    DLL劫持 首先,让我们弄清定义,从最广泛的意义上讲,DLL劫持是欺骗合法/受信任的应用程序以加载任意DLL,诸如DLL搜索顺序劫持、DLL加载顺序劫持、DLL欺骗、DLL注入和DLL侧面加载等术语经常被误认为是相同的...,这些术语充其量只能描述DLL劫持的特定情况,但通常可互换使用,因此使用不正确,概括地说,DLL劫持更为准确,因为DLL劫持始终涉及从合法DLL接管DLL。...DLL搜索顺序劫持:在不带路径的应用程序指定的DLL中,以特定顺序在固定位置搜索,通过将恶意的DLL放在实际DLL之前的搜索位置,劫持了搜索顺序,有时包括目标应用程序的工作目录 Phantom DLL劫持...劫持列表 下表列出了windows 10 v1909上c:\windows\system32中易受"相对路径DLL劫持"变体DLL劫持攻击的所有可执行文件,在每个可执行文件的旁边是一个或多个可能被劫持的...spaces),但归根结底,用户可以创建C:\windows \system32\(注意第一个文件夹后面的空格),并自动提升放置在该文件夹中的可执行文件,将其视为受信任的位置 这是否是一个适当的安全漏洞值得商榷

    3.4K10

    DLL劫持原理学习

    一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。 简而言之: DLL 是一个包含可由多个程序同时使用的代码和数据的库。...文件,如果我们将用恶意的dll来替换系统的dll文件,就是将DLL和doc文档放在一起,运行的时候就会在当前目录中找到DLL,从而优先系统目录下的DLL而被执行。...劫持 简而言之,不影响程序 本身功能的同时执行恶意dll 举个栗子: 将原来的dll名写在转发方法里,然后将生成的dll文件重命名为劫持的dll文件名: #include "pch.h" #include...) { } return TRUE; } 然后将dll放在exe同一目录,已经劫持成功了: 0x06 使用DLL劫持上线主机 dll加载shellcode上线 生成shellcode...说一下这种方案的好处,就是DLL根本没有恶意操作,所以肯定会免杀,但是你的木马文件要做好免杀,这种思路主要应用于通过劫持一些程序的DLL,然后实现隐蔽的重启上线,也就是权限持续维持,单单杀启动项对DLL

    1.2K40

    使用DLLHSC扫描DLL劫持目标

    DLLHSC DLLHSC全称为DLL Hijack SCanner,即DLL劫持扫描工具,DLLHSC可以生成线索并自动帮助广大研究人员发现合适的DLL劫持攻击目标,以方便实现DLL搜索顺序劫持。...DLLHSC实现了这个工具的核心功能,detour项目生成一个用于钩住API的DLL文件,Payload项目负责生成用作概念验证的DLL,广大研究人员可以测试可执行文件并查看是否可以通过搜索顺序劫持技术来加载它...工具操作模式 DLLHSC实现了三种操作模式,具体如下: 1、轻量级模式 将可执行镜像加载到内存中,解析导入表,然后用Payload DLL替换导入表中引用的任何DLL。...当某些可执行文件从加载的DLL导入函数时,如果提供的DLL无法导出这些函数并满足所提供镜像的依赖关系时,可能会显示错误消息框。...请注意,从项目Payload生成的DLL必须重命名为payload32.DLL(针对32位体系结构)或payload64.DLL(针对64位体系结构)。

    1.8K20

    实战 | DLL劫持思路和研究

    dll 这里dll劫持的选用的是notepad++,注意版本问题,我第一次进行dll劫持的时候使用的是最新版本,导致我鼓捣半天都没能正确执行,搞得我一脸懵逼,百度之后才发现notepad后面的版本修复了漏洞...,想要劫持难度很大。...这里我选择的是libuv.dll`进行劫持 找到路径下的libuv.dll 然后使用到aheadlib这个工具,输入dll就填QQ.exe路径下的libuv.dll,输出CPP会自动生成,原始DLL...comment(linker, "/EXPORT:uv_udp_open=libuvOrg.uv_udp_open,@195") 即时调用 还是劫持之前的dll:libuv.dll,这里还是先输入DLL...但是即时调用实际上是调用了劫持dll的某个函数,只不过那个函数会jmp到原本的dll中的相应函数的地址。达到的效果相同,但是实现的原理不同。

    3.7K21

    无处不在的dll劫持

    当然这里只是简单的说了一种情况,某些情况下,即便正常dll存在,我们也可以通过dll劫持转发的方式劫持,目前不少厂商已经通过hash,MD5校验或数字签名验证等方式确保加载的dll为自己的dll,这会是即便你找到了相关可利用的...dll劫持但还是失败的原因之一。...DLL的漏洞,通常需要几个步骤: 1.启动应用程序 2.使用Process Monitor等类似软件查看该应用程序启动后加载的动态链接库。...5.将编写好的劫持DLL放到该应用程序目录下,重新启动该应用程序,检测是否劫持成功。...转发式劫持 能够成功劫持,但劫持后影响正常程序运行 基本原理如下: 这里可以使用工具AheadLib 使用生成的cpp文件编译,将原来的dll改名为voice_helperOrg.dll 生成一个

    1.1K30

    Kaspersky AVP.exe DLL 劫持

    Kaspersky AVP.exe 中的 DLL 注入允许本地管理员在不知道 Kaspersky 密码的情况下杀死或篡改防病毒软件和在高权限中执行命令。...,路径为C:\windows\System32\ Avpui.exe同样加载不存在的Wow64log.dll,路径为C:\windows\System32\ kpm.exe同样加载不存在的Wow64log.dll...: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: //log("detach"); break; } return TRUE...; } 手动复制在目标文件目录中,然后启动卡巴斯基,可以看到加载了我们的Wow64log.dll 启动Kaspersky Password Manager Service 加载了我们的恶意DLL并执行了...我们可以编译一个恶意的dll利用卡巴斯基的进程去kill其它卡巴斯基的进程。 也可以在卡巴是安全上下文中执行我们的shellcode 例如:

    1.6K20
    领券