基于应用文件隐蔽自启动方法及装置和检测方法及装置与流程

文档序号:28956368发布日期:2022-02-19 11:52阅读:88来源:国知局
基于应用文件隐蔽自启动方法及装置和检测方法及装置与流程

1.本发明涉及自启动木马检测技术领域,具体涉及一种基于应用文件隐蔽自启动方法及装置和检测方法及装置。


背景技术:

2.现有技术(例如,专利号为:cn103955644a的专利中)针对自启动方式的木马检测技术主要基于操作系统公开的启动方式进行检测,比如windows操作系统默认提供多种自启动方式的api,比如注册表、计划任务和自启动文件夹等多种方式,通常检测技术会基于木马特征为基础并对自启动项进行检查,能检测到木马基于哪个启动项或什么动作启动,检测出的木马可以定位木马存储位置及其关联文件。
3.但是现有技术存在以下问题:
4.1、自启动方式的局限性,目前windows平台常用的自启动方式包括:
5.(1)启动目录
6.(2)注册表启动项
7.[0008][0009]
(3)系统配置文件
[0010]
win.inisystem.iniwininit.ini
[0011]
(4)开/关机/登录/注销脚本
[0012]
(5)任务计划
[0013]
(6)以windows服务方式启动
[0014]
(7)捆绑到正常软件
[0015]
目前绝大多数的windows平台程序(包括合法程序和恶意程序)均使用上述七种方式实现自启动,作为红队攻击人员同样经常使用上述七种方式进行自启动;不管是检测还是利用,都充斥着局限性。
[0016]
2、杀软的查杀率高,木马程序的自启动是木马程序的首要步骤,通常普通木马会采用上述七种自启动方式进行启动,受到传统启动方式的局限上述启动方式也是杀软的重点查杀对象,除此之外的启动方式杀软则不会进行拦截。
[0017]
3、高级木马利用非常规方式进行启动,杀软或edr产品则无法保证目标单位的安全性;高级木马通常采用多种隐蔽技术逃避杀毒软件的查杀,如果高级木马利用操作系统逻辑漏洞或利用应用程序实现自启动的方式目前技术难以进行检测。
[0018]
4、传统的dll劫持完成自启动,特别是系统dll劫持,通常需要实现原本系统dll的功能,否则系统在获取dll导出函数并调用时可能导致系统进程崩溃或功能异常。
[0019]
目前针对应用程序的dll劫持中最常见的攻击手法就是白exe加载黑dll(白加黑),但是此种程序仍需要上述七种启动方式的支持启动白exe;同时白exe也需要攻击人员上传至目标主机,隐蔽性相对较差。


技术实现要素:

[0020]
为此,本发明实施例提供一种基于应用文件隐蔽自启动方法及装置和检测方法及装置,以解决现有技术存在的问题。
[0021]
为了实现上述目的,本发明实施例提供如下技术方案:
[0022]
第一方面,一种基于应用文件隐蔽自启动方法,包括:
[0023]
检测所有利用应用文件启动的文件;
[0024]
获取全部的dll文件名;
[0025]
查找全部dll文件是否存在可以被替换或劫持的dll文件;
[0026]
若存在可以被替换或劫持的dll文件,则将木马文件改名为所述dll文件并放在对应的目录下随应用文件启动。
[0027]
进一步的,所述获取全部的dll文件名,具体包括:
[0028]
遍历本地磁盘下全部的exe文件,并解析所述exe文件对应的pe结构;
[0029]
找到位于pe header中的image_directory_entry_import导入表字段、image_directory_entry_bound_import绑定导入表字段和image_directory_entry_delay_import延迟导入表字段;
[0030]
提取所述image_directory_entry_import导入表字段、所述image_directory_entry_bound_import绑定导入表字段和所述image_directory_entry_delay_import延迟导入表字段中全部的dll文件名。
[0031]
第二方面,一种基于应用文件隐蔽自启动装置,包括:
[0032]
检测模块,用于检测所有利用应用文件启动的文件;
[0033]
获取模块,用于获取全部的dll文件名;
[0034]
查找模块,用于查找全部dll文件是否存在可以被替换或劫持的dll文件;
[0035]
替换模块,用于将木马文件改名为所述dll文件并放在对应的目录下随应用文件启动。
[0036]
第三方面,一种基于应用文件检测方法,包括:
[0037]
遍历所有自启动的应用文件,并查找dll文件是否存在被替换或劫持的dll文件;
[0038]
若存在被替换或劫持的dll文件,则判断是否为默认的应用文件;
[0039]
若否,则为疑似木马文件;
[0040]
运用异常行为模型进一步判断是否为木马文件。
[0041]
进一步的,判断所述被替换或劫持的dll文件是否为默认的应用文件时,是通过数字签名技术或者白名单技术来判断的。
[0042]
进一步的,遍历的目录包括:系统目录、windows目录、当前目录和环境变量path中所有目录。
[0043]
进一步的,所述系统目录、所述windows目录和所述当前目录均为getwindowsdirectory返回的目录。
[0044]
第四方面,一种基于应用文件检测方法装置,包括:
[0045]
查找模块,用于遍历所有自启动的应用文件,查找dll文件是否存在被替换或劫持的dll文件;
[0046]
判断模块,用于判断dll文件是否为默认的应用文件;若否,则为疑似木马文件;
[0047]
异常检测模块,用于进一步判断是否为木马文件。
[0048]
本发明至少具有以下有益效果:本发明提供一种基于应用文件隐蔽自启动方法及装置和检测方法及装置,检测所有利用应用文件启动的文件;获取全部的dll文件名;查找全部dll文件是否存在可以被替换或劫持的dll文件;若存在可以被替换或劫持的dll文件,则将木马文件改名为所述dll文件并放在对应的目录下随应用文件启动;公安机关等执法部门利用本发明提供的基于应用文件隐蔽自启动方法及装置和检测方法及装置,可以对操作系统程序启动的逻辑进行深度分析,通过程序绕过杀毒软件实现启动,具有一定隐藏效果。
附图说明
[0049]
为了更清楚地说明现有技术以及本发明,下面将对现有技术以及本发明实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引申获得其它的附图。
[0050]
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
[0051]
图1为本发明实施例提供的基于应用文件隐蔽自启动方法流程图;
[0052]
图2为本发明实施例提供的基于应用文件隐蔽自启动方法原理图;
[0053]
图3为本发明实施例提供的基于应用文件检测方法流程图。
具体实施方式
[0054]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0055]
在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)旨在区别指代的对象。对于具有时序流程的方案,这种术语表述方式不必理解为描述特定的顺序或先后次序,对于装置结构的方案,这种术语表述方式也不存在对重要程度、位置关系的区分等。
[0056]
此外,术语“包括”、“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包括了一系列步骤或单元的过程、方法、系统、产品或设备不必限于已明确列出的那些步骤或单元,而是还可包含虽然并未明确列出的但对于这些过程、方法、产品或设备固有的其它步骤或单元,或者基于本发明构思进一步的优化方案所增加的步骤或单元。
[0057]
请参阅图1和图2,本发明的一个实施例一种基于应用文件隐蔽自启动方法,包括:
[0058]
s1:检测所有利用应用文件启动的文件;
[0059]
s2:获取全部的dll文件名;
[0060]
具体的,遍历本地磁盘下全部的exe文件,并解析所述exe文件对应的pe结构;
[0061]
找到位于pe header中的image_directory_entry_import导入表字段、image_directory_entry_bound_import绑定导入表字段和image_directory_entry_delay_import延迟导入表字段;
[0062]
提取所述image_directory_entry_import导入表字段、所述image_directory_entry_bound_import绑定导入表字段和所述image_directory_entry_delay_import延迟导入表字段中全部的dll文件名
[0063]
s3:查找全部dll文件是否存在可以被替换或劫持的dll文件;
[0064]
s4:若存在可以被替换或劫持的dll文件,则将木马文件改名为所述dll文件并放在对应的目录下随应用文件启动。
[0065]
本发明的一个实施例提供一种基于应用文件隐蔽自启动装置,包括:
[0066]
检测模块,用于检测所有利用应用文件启动的文件;
[0067]
获取模块,用于获取全部的dll文件名;
[0068]
查找模块,用于查找全部dll文件是否存在可以被替换或劫持的dll文件;
[0069]
替换模块,用于将木马文件改名为所述dll文件并放在对应的目录下随应用文件启动。
[0070]
本发明的一个实施例提供一种基于应用文件检测方法,包括:
[0071]
s1:遍历所有自启动的应用文件,并查找dll文件是否存在被替换或劫持的dll文件;
[0072]
具体的,遍历的目录包括:系统目录、windows目录、当前目录和环境变量path中所有目录,系统目录、windows目录和当前目录均为getwindowsdirectory返回的目录。
[0073]
s2:若存在被替换或劫持的dll文件,则判断是否为默认的应用文件;
[0074]
具体的,判断被替换或劫持的dll文件是否为默认的应用文件时,是通过数字签名技术或者白名单技术来判断的。
[0075]
s3:若否,则为疑似木马文件;
[0076]
s4:运用异常行为模型进一步判断是否为木马文件。
[0077]
异常检测模型是一个在机器学习里通用的一种算法,它是通过检测很多正常的非木马文件通过上述算法生成一个类似于二维/三维的一个区域,然后检测的时候只要针对疑似木马文件进行分析,结果所在的区间范围不在这个区域内的均可以判断为木马文件。具体的,异常检测模型是一个比较成熟的现有技术,在此不在赘述。
[0078]
而且异常检测模型引入了基于向量空间的相似度计算算法和反向进程频率等概念,区分了不同系统调用对定义正常行为的不同作用,提高了正常行为定义的准确性;该模型的检测算法针对入侵造成异常的局部性特点,采用了局部分析算法,降低了误报率。
[0079]
本发明的一个实施例提供一种基于应用文件检测方法装置,包括:
[0080]
查找模块,用于遍历所有自启动的应用文件,查找dll文件是否存在被替换或劫持的dll文件;
[0081]
判断模块,用于判断dll文件是否为默认的应用文件;若否,则为疑似木马文件;
[0082]
异常检测模块,用于进一步判断是否为木马文件。
[0083]
本发明提供的基于应用文件隐蔽自启动方法及装置和检测方法及装置中采用了一种通用dll劫持技术,不用实现原dll导出函数功能即可实现劫持同时可针对目标机器上
的已经被设置为自启动的合法exe程序加载攻击程序dll。
[0084]
本发明具有以下优势:
[0085]
正常软件启动方式主要有以下几种:文件自启动项、注册表启动方式、服务启动方式、驱动启动方式、计划任务启动方式、系统配置文件启动和引导区启动方式,而木马病毒除了采用以上启动方式为,会采用大量不常用的启动方式,比如模拟一些专有软件的系统配置文件实现自启动、模拟vxd虚拟设备驱动实现自启动。
[0086]
本发明主要对操作系统程序启动的逻辑进行深度分析,采取实现程序绕过杀毒软件实现启动。
[0087]
(1)在软件正常启动方式上,通过伪装技术实现启动,让杀毒软件或安全人员误认为是正常软件的启动;
[0088]
(2)收集正常软件存在的dll文件加载漏洞,实现绕过杀毒软件;
[0089]
(3)在用于劫持的dll加载后,再加载原系统dll,并将模块链表中用于劫持的dll的基址修改为原系统dll的加载基址。以此使系统再次调用loadlibrary函数获取dll加载基址时获取的是原系统dll的基址,getprocaddress时也获取的是原系统dll的导出函数,从而实现通用dll劫持。该通用dll劫持方法还有一个好处,一些进程查看工具在查看进程模块时,也是通过遍历进程模块链表获取的,因此该方法将使这类工具无法查看进程中加载的劫持的dll,具有一定隐藏效果。
[0090]
以上几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0091]
以上实施例的各技术特征可以进行任意的组合(只要这些技术特征的组合不存在矛盾),为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述;这些未明确写出的实施例,也都应当认为是本说明书记载的范围。
[0092]
上文中通过一般性说明及具体实施例对本发明作了较为具体和详细的描述。应当指出的是,在不脱离本发明构思的前提下,显然还可以对这些具体实施例作出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1