关于dll:Qakbot新型感染链使用Windows7系统侧加载感染设备

前言:DLL侧加载(DLL side-loading)是一种常见的攻打办法,也就是咱们常说的“白加黑”技术,它利用了Windows中解决动态链接库(DLL)的形式。Qakbot恶意软件的开发者通过应用Windows7零碎在被感化的计算机上侧加载歹意负载,最终达到感化设施的成果。近日,平安钻研人员ProxyLife发现,从往年7月11日开始Qakbot滥用Windows 7 Calculator应用程序进行DLL侧加载攻打。这种办法也被持续被用于歹意垃圾邮件流动。Qakbot 恶意软件的开发者通过应用Windows7零碎在被感化的计算机上侧加载歹意负载,最终达到感化设施的成果。DLL侧加载(DLL side-loading)动静链接DLL是蕴含了若干个函数、类和资源的库文件。它能够被其余可执行文件(如.EXE文件和其它DLL文件)动静调用。应用DL的第一个长处是使多个应用程序,甚至是不同语言编写的应用程序能够共享一个DL文件,真正实现了“资源共享”;另一个长处是将DL文件作为应用程序一个独立的模块设计时,能够进步软件的开发速度,为软件降级提供了不便。而DLL侧加载(DLL side-loading)是一种常见的攻打办法,也就是咱们常说的“白加黑”技术,它利用了Windows中解决动态链接库(DLL)的形式。DLL侧加载(DLL side-loading)恶意软件通过坑骗一个非法的DLL,会在Windows的WinSxS目录中搁置一个伪造的歹意DLL文件,以便操作系统加载它而不是非法文件。DLL侧加载攻打(DLL side-loading Attack)通常在Microsoft Windows中,程序能够通过指定残缺门路或应用清单等其余机制来定义在运行时加载哪些库或文件夹。程序清单能够包含DLL重定向、文件名或残缺门路。因而,如果清单只援用了一个库文件名,它被视为弱援用并且容易受到DLL侧加载攻打。DLL侧加载攻打次要是利用弱库援用和Windows默认的搜寻程序,在零碎上搁置一个伪装成非法DLL的歹意DLL文件,非法程序将主动加载该文件。DLL侧加载通常会被勒索软件运营商应用,他们利用DLL侧加载来执行勒索软件有效载荷,以回避平安产品的检测。Qakbot病毒Qakbot病毒最开始是一种银行木马,受影响零碎为微软Windows。Qakbot最早被发现于2009年,依据微软的剖析,Qakbot被认为是由网络立功组织Gold Lagoon创立的。Qakbot专门针对企业、银行、医疗、教育等机构进行弱小的信息窃取性能,并继续监控用户的银行流动以欺诈大量钱财。近年来,Qakbot发现了多个降级的变种,利用高级技术进行反检测与自我假装,试图躲过了杀毒软件检测。起初Qakbot演变成了恶意软件投递器,勒索软件团伙在攻打的晚期阶段应用它来投递攻打信标,造成了许多重大经济损失。而且Qakbot交付的其它勒索软件包含RansomExx、Maze、ProLock和Egregor,最近,还公布了Black Basta勒索软件。Qakbot新型感化链那么Qakbot病毒是如何运行DLL侧加载(DLL side-loading)?为了进攻这种危险链接和攻打,ProxyLife和Cyble的钻研人员记认真钻研和记录了新型的Qakbot感化链。在最新的流动中应用的电子邮件带有一个HTML文件附件,该附件下载了一个有密码保护的ZIP压缩包,其中蕴含一个ISO文件。关上ZIP文件的明码显示在HTML文件中,锁定存档的起因是为了规避反病毒软件的检测。ISO蕴含一个lnk文件,一个“calc.exe”(Windows计算器)的正本,以及两个DLL文件,即WindowsCodecs.dll和一个名7533.dll的无效负载。当用户挂载ISO文件时,它只显示lnk文件,该文件被伪装成有重要信息的PDF文件或应用Microsoft Edge浏览器关上的文件。然而,在Windows中,快捷方式指向计算器应用程序。单击快捷方式通过命令提示符执行Calc.exe最终就会触发感化。Qakbot恶意软件的新型感化链的关键在于感化文件会被伪装成其它文件。因为在加载时,Windows 7零碎会主动搜寻并尝试加载非法的WindowsCodecs DLL文件。然而,Windows 7零碎不会查看某些硬编码门路中的DLL,如果将DLL文件搁置在与Calc.exe可执行文件雷同的文件夹中,它将加载具备雷同名称的任何DLL。威逼者就是利用这个破绽,创立他们本人的歹意WindowsCodecs.dll文件,而后启动其它编号.dll文件。通过像Windows零碎程序安装Qakbot后,一些安全软件在加载恶意软件时则无奈检测出它,造成了这种威逼回避了安全软件检测。然而有一点,此DLL侧加载破绽不适用于Windows 10 Calc.exe及当前版本,这也是威逼者会针对Windows 7版本的起因。Qakbot曾经有十多年的历史了,尽管投放这种病毒的流动并不频繁,然而依据记录,Emotet僵尸网络已经通过分布这种病毒来投放勒索软件的有效载荷。(局部音讯链接:https://www.bleepingcomputer....)

July 26, 2022 · 1 min · jiezi

关于dll:日子越来越有判头了用DLL劫持搞点事情

0x01 dll简介在Windows零碎中,为了节俭内存和实现代码重用,微软在Windows操作系统中实现了一种共享函数库的形式。这就是DLL(Dynamic Link Library),即动态链接库,这种库蕴含了可由多个程序同时应用的代码和数据。 每个DLL都有一个入口函数(DLLMain),零碎在特定环境下会调用DLLMain。在上面的事件产生时就会调用dll的入口函数: 1.过程装载DLL。2.过程卸载DLL。3.DLL在被装载之后创立了新线程。4.DLL在被装载之后一个线程被终止了。 另外,每个DLL文件中都蕴含有一个导出函数表也叫输出表(存在于PE的.edata节中)。应用一些PE文件查看工具如LoadPE,就能够查看导出函数的符号名即函数名称和函数在导出函数表中的标识号。应用程序导入函数与DLL文件中的导出函数进行链接有两种形式:隐式链接(load-time dynamiclinking)也叫动态调用和显式链接(run-time dynamiclinking)也叫动静调用。隐式链接形式个别用于开发和调试,而显式链接形式就是咱们常见的应用LoadLibary或者LoadLibraryEx函数(注:波及到模块加载的函数有很多)来加载DLL去调用相应的导出函数。调用LoadLibrary或者LoadLibraryEx函数时能够应用DLL的相对路径也能够应用绝对路径,dll门路搜寻规定然而很多状况下,开发人员都是应用了相对路径来进行DLL的加载。那么,在这种状况下,Windows零碎会依照特定的程序去搜寻一些目录,来确定DLL的残缺门路。对于动态链接库的搜寻程序的更多详细资料请参阅MSDN。依据MSDN文档的约定,在应用了DLL的相对路径调用LoadLibrary函数时,零碎会顺次从上面几个地位去查找所须要调用的DLL文件。 1.程序所在目录。2.加载 DLL 时所在的当前目录。3.系统目录即 SYSTEM32 目录。4.16位系统目录即 SYSTEM 目录。5.Windows目录。6.PATH环境变量中列出的目录微软为了避免DLL劫持破绽的产生,在XP SP2之后,增加了一个SafeDllSearchMode的注册表属性。注册表门路如下:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SafeDllSearchMode当SafeDllSearchMode的值设置为1,即平安DLL搜寻模式开启时,查找DLL的目录程序如下: 1.程序所在目录2.系统目录即 SYSTEM32 目录。3.16位系统目录即 SYSTEM 目录。4.Windows目录。5.加载 DLL 时所在的当前目录。6.PATH环境变量中列出的目录。在win7以上版本微软为了更进一步的进攻零碎的DLL被劫持,将一些容易被劫持的零碎DLL写进了一个注册表项中,那么但凡此项下的DLL文件就会被禁止从EXE本身所在的目录下调用,而只能从系统目录即SYSTEM32目录下调用。注册表门路如下: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs以前常常应用的一些劫持DLL曾经被退出了KnownDLLs注册表项,这就意味着应用诸如usp10.dll,lpk.dll,ws2_32.dll去进行DLL劫持曾经生效了。 所以在win7及以上当启用了SafeDllSearchMode搜寻程序如下 1.应用程序所在目录。2.系统目录SYSTEM32 目录。3.16位系统目录。没有获取该目录门路的函数,但会对其进行搜寻。4.Windows目录。应用GetWindowsDirectory函数获取此目录的门路。5.当前目录6.环境变量PATH中所有目录。须要留神的是,这里不包含App Paths注册表项指定的应用程序门路。Windows操作系统通过“DLL门路搜寻目录程序”和“KnownDLLs注册表项”的机制来确定应用程序所要调用的DLL的门路,之后,应用程序就将DLL载入了本人的内存空间,执行相应的函数性能。不过,微软又莫名其妙的容许用户在上述注册表门路中增加“ExcludeFromKnownDlls”注册表项,排除一些被“KnownDLLs注册表项”机制爱护的DLL。也就是说,只有在“ExcludeFromKnownDlls”注册表项中增加你想劫持的DLL名称就能够对该DLL进行劫持,不过批改之后须要重新启动电脑能力失效。 在上述形容加载DLL的整个过程中,DLL劫持破绽就是在零碎进行装置“DLL门路搜寻目录程序”搜寻DLL的时候产生的。 无论平安DLL搜寻模式是否开启,零碎总是首先会从应用程序(程序安装目录)所在目录加载DLL,如果没有找到就依照下面的程序顺次进行搜寻。那么,利用这个个性,攻击者就能够伪造一个雷同名称的dll,只有这个dll不在KnownDLLs注册表项中,咱们就能够对该dll进行劫持测试。 键值 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLswin10的如下 0x02 寻找可劫持dll有很多软件能够查看exe加载的dll process-explorer https://docs.microsoft.com/zh... 火绒剑 Process Monitor https://docs.microsoft.com/zh... 应用的时候能够设置Filter,填入过滤条件,能够帮忙排除很多无用的信息 Include the following filters:Operation is CreateFileOperation is LoadImagePath contains .cplPath contains .dllPath contains .drvPath contains .exePath contains .ocxPath contains .scrPath contains .sysExclude the following filters:Process Name is procmon.exeProcess Name is Procmon64.exeProcess Name is SystemOperation begins with IRP_MJ_Operation begins with FASTIO_Result is SUCCESSPath ends with pagefile.sys相似下图这种就是该dll在KnownDLLs注册表项里 ...

September 17, 2021 · 2 min · jiezi

关于dll:dll丢失解决方案

每个人都遇到过“无奈找到.dll文件...”的音讯弹窗。各位,这个问题终于能够解决了!在这里你能够找到电脑上最常失落或损坏的文件 网站地址 登录后能够看到如下界面 点击搜寻,即可下载你所需的dll文件

March 4, 2021 · 1 min · jiezi