一种Weblogic反序列化漏洞扫描检测方法及工具的制作方法

文档序号:10725521阅读:783来源:国知局
一种Weblogic反序列化漏洞扫描检测方法及工具的制作方法
【专利摘要】本发明公开了一种Weblogic反序列化漏洞扫描检测方法,首先获取待检测文档;启动weblogic反序列化漏洞扫描检测工具;然后对待检测文档进行漏洞扫描;最后判断待检测文档是否存在漏洞,如果是,则输出主机的漏洞信息;如果否,则返回步骤继续扫描直到扫描结束。本发明提供的Weblogic反序列化漏洞扫描检测方法,基于Java反序列化漏洞对部署Weblogic服务器进行漏洞扫描、验证;能够达到实时搜索,稳定,可靠,快速,安装使用方便。可扫描验证部署有weblogic的服务器是否存在Java反序列化漏洞,并对其进行利用,简单高效,减少人工干预,实现自动诊断功能,为系统安全提供支持。
【专利说明】
一种Web I og i c反序列化漏洞扫描检测方法及工具
技术领域
[0001]本发明涉及信息安全和网页架构领域,特别是一种Weblogic反序列化漏洞扫描检测方法。
【背景技术】
[0002]WebLogic是一个基于JA VAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterpri se标准的安全性引入大型网络应用的开发、集成、部署和管理之中。weblogic被广泛使用与电信、金融、电力、航空、政府等各个行业。
[0003]Java序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。如果Java应用对用户输入,即不可信数据做了反序列化处理,那么攻击者可以通过构造恶意输入,让反序列化产生非预期的对象,非预期的对象在产生过程中就有可能带来任意代码执行。该工具即利用这一漏洞实现。同样此类中间件的维护也面临越来越大的挑战,客户的核心、关键的系统都部署在weblogic平台,一旦出现严重漏洞或发生紧急故障,导致易受到攻击,如果不能及时得到解决,后果将不堪设想。网络上同类型工具,以WebL0gic_EXP为例,该工具功能只能对一个目标进行漏洞验证、命令执行等功能。
[0004]因此,需要一种Weblogic反序列化漏洞扫描检测方法。

【发明内容】

[0005]本发明的目的就是提供一种Weblogic反序列化漏洞扫描检测方法。
[0006]本发明的目的是通过这样的技术方案实现的:
[0007]本发明提供的一种Weblogic反序列化漏洞扫描检测方法,包括以下步骤:
[0008]S1:获取待检测文档;
[0009]S2:启动weblogic反序列化漏洞扫描检测工具;
[0010]S3:对待检测文档进行漏洞扫描;
[0011 ] S4:判断待检测文档是否存在漏洞,如果是,则输出主机的漏洞信息;
[0012]S5:如果否,则返回步骤继续扫描直到扫描结束。
[0013]进一步,还包括以下步骤:
[0014]S61:对待检测文档进行漏洞验证;
[0015]S62:判断待检测文档是否连接成功,如果否,则结束;
[0016]S63:如果成功,则执彳丁命令并显不结果;
[0017]S64:判断是否结束验证过程,如果否,则返回步骤继续验证;
[0018]S65:如果是,则断开连接并释放资源并结束漏洞验证。
[0019]进一步,所述漏洞扫描具体步骤如下:
[0020]S301:获取界面输入信息;[0021 ]S302:处理输入信息,生成主机地址队列和端口队列;
[0022]S303:初始化参数,设置标识位信息;
[0023]S304:判断线程数是否达到上限;
[0024]S305:如果是,则进入步骤S327;
[0025]S306:如果否,则新建线程,开始扫描;
[0026]S307:判断主机地址队列是否为空,如果是,则进入步骤S326;
[0027]S308:如果否,则从主机地址队列中获取目标地址;
[0028]S309:判断是否扫描完所有端口,如果是,则返回步骤S307;
[0029]S310:如果否,则从端口队列中获取目标端口;
[0030]S311:连接目标服务器;
[0031]S312:判断连接是否成功,如果否,则返回步骤S309 ;
[0032]S313:如果是,贝Ij上传 windows 包;
[0033]S314:注册服务;
[0034]S315:是否报错,如果是,则进入步骤S318;
[0035]S316:如果否,则远程执行命令查看当前有效用户;
[0036]S317:判断命令执行是否成功,如果否,则进入步骤S318;
[0037]S318:如果是,则输出主机信息,确认存在漏洞;
[0038]S319:上传 Iiunux 包;
[0039]S320:注册服务;
[0040]S321:判断是否报错,如果是,则进入步骤S325;
[0041 ]S322:如果否,则远程执行命令查看当前有效用户;
[0042]S323:判断命令执行是否成功,如果否,则进入步骤S325 ;
[0043]S324:如果是,则输出主机信息,确认存在漏洞;
[0044]S325:断开连接;
[0045]S326:线程退出;
[0046]S327:判断线程是否全部退出,如果否,则返回步骤S326 ;
[0047]S328:如果是,则结束。
[0048]本发明还提供了一种Weblogic反序列化漏洞扫描检测工具,包括输入模块、漏洞扫描模块、漏洞检测模块、漏洞判断模块和漏洞输出模块;
[0049]所述输入模块,用于获取待检测文档;
[0050]所述漏洞扫描模块,用于启动weblogic反序列化漏洞扫描检测工具;
[0051 ]所述漏洞检测模块,用于对待检测文档进行漏洞扫描;
[0052]所述漏洞判断模块,用于判断待检测文档是否存在漏洞,并输出主机的漏洞信息;
[0053]所述漏洞输出模块,用于输出漏洞扫描信息。
[0054]本实施例的输入模块通过设置的扫描按钮事件响应启动漏洞扫描模块;所述漏洞扫描模块与漏洞检测模块连接;所述漏洞检测模块与漏洞判断模块连接;漏洞判断模块的结构输入到漏洞输出模块输出显示。
[0055]进一步,还包括漏洞验证模块、连接检测模块和验证确认模块;
[0056]所述漏洞验证模块,用于对待检测文档进行漏洞验证;并输出验证过程结果信息;
[0057]所述连接检测模块,用于判断待检测文档是否连接成功,并显示连接结果;
[0058]所述验证确认模块,用于断开连接释放资源并结束漏洞验证。
[0059]连接按钮事件响应设置与启动界面,漏洞验证模块通过连接检测模块与验证确认模块连。漏洞扫描和漏洞验证模块通过后均进入连接的目标服务器,然后进入注册服务过程,并执行系统命令,最后断开连接。
[0060]进一步,所述漏洞扫描模块按照以下步骤来实现漏洞检测过程:
[0061 ]S301:获取界面输入信息;
[0062]S302:处理输入信息,生成主机地址队列和端口队列;
[0063]S303:初始化参数,设置标识位信息;
[0064]S304:判断线程数是否达到上限;
[0065]S305:如果是,则进入步骤S327;
[0066]S306:如果否,则新建线程,开始扫描;
[0067]S307:判断主机地址队列是否为空,如果是,则进入步骤S326;
[0068]S308:如果否,则从主机地址队列中获取目标地址;
[0069]S309:判断是否扫描完所有端口,如果是,则返回步骤S307;
[0070]S310:如果否,则从端口队列中获取目标端口 ;
[0071]S311:连接目标服务器;
[0072]S312:判断连接是否成功,如果否,则返回步骤S309;
[0073]S313:如果是,贝Ij上传 windows 包;
[0074]S314:注册服务;
[0075]S315:是否报错,如果是,则进入步骤S318;
[0076]S316:如果否,则远程执行命令查看当前有效用户;
[0077]S317:判断命令执行是否成功,如果否,则进入步骤S318;
[0078]S318:如果是,则输出主机信息,确认存在漏洞;
[0079]S319:上传 Iiunux 包;
[0080]S320:注册服务;
[0081 ]S321:判断是否报错,如果是,则进入步骤S325;
[0082]S322:如果否,则远程执行命令查看当前有效用户;
[0083]S323:判断命令执行是否成功,如果否,则进入步骤S325 ;
[0084]S324:如果是,则输出主机信息,确认存在漏洞;
[0085]S325:断开连接;
[0086]S326:线程退出;
[0087]S327:判断线程是否全部退出,如果否,则返回步骤S326 ;
[0088]S328:如果是,则结束。
[0089]由于采用了上述技术方案,本发明具有如下的优点:
[0090]本发明提供的Weblogic反序列化漏洞扫描检测方法,基于Java反序列化漏洞对部署Weblogic服务器进行漏洞扫描、验证;该工具采用Java开发,可在Windows及Linux等安装有Java运行环境的系统上运行,能够达到实时搜索,稳定,可靠,快速,安装使用方便。可以扫描验证部署有weblogic的服务器是否存在Java反序列化漏洞,并对其进行利用,简单高效,减少人工干预,实现自动诊断功能,为系统安全提供支持。
[0091]本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
【附图说明】
[0092]本发明的【附图说明】如下。
[0093]图1为本发明的Weblogic反序列化漏洞扫描检测方法流程图。
[0094]图2为本发明的漏洞扫描验证检测函数调用流程示意图。
[0095]图3为本发明的漏洞扫描流程图。
【具体实施方式】
[0096]下面结合附图和实施例对本发明作进一步说明。
[0097]实施例1
[0098]如图1-3所示,本实施例提供的一种Weblogic反序列化漏洞扫描检测方法,包括以下步骤:
[0099]S1:获取待检测文档;
[0100]S2:启动weblogic反序列化漏洞扫描检测工具;
[0101]S3:对待检测文档进行漏洞扫描;
[0102]S4:判断待检测文档是否存在漏洞,如果是,则输出主机的漏洞信息;
[0103]S5:如果否,则返回步骤继续扫描直到扫描结束。
[0104]还包括以下步骤:
[0105]S61:对待检测文档进行漏洞验证;
[0106]S62:判断待检测文档是否连接成功,如果否,则结束;
[0107]S63:如果成功,则执行命令并显示结果;
[0108]S64:判断是否结束验证过程,如果否,则返回步骤继续验证;
[0109]S65:如果是,则断开连接并释放资源并结束漏洞验证。
[0110]所述漏洞扫描具体步骤如下:
[0111]S301:获取界面输入信息;
[0112]S302:处理输入信息,生成主机地址队列和端口队列;
[0113]S303:初始化参数,设置标识位信息;
[0114]S304:判断线程数是否达到上限;
[0115]S305:如果是,则进入步骤S327;
[0116]S306:如果否,则新建线程,开始扫描;
[0117]S307:判断主机地址队列是否为空,如果是,则进入步骤S326;
[0118]S308:如果否,则从主机地址队列中获取目标地址;
[0119]S309:判断是否扫描完所有端口,如果是,则返回步骤S307;
[0120]S310:如果否,则从端口队列中获取目标端口 ;
[0121]S311:连接目标服务器;
[0122]S312:判断连接是否成功,如果否,则返回步骤S309 ;
[0123]S313:如果是,则上传windows包;
[0124]S314:注册服务;
[0125]S315:是否报错,如果是,则进入步骤S318;
[0126]S316:如果否,则远程执行命令whoami ;
[0127]本实施例的命令whoami表示查看当前有效用户;
[0128]S317:判断命令执行是否成功,如果否,则进入步骤S318;
[0129]S318:如果是,则输出主机信息,确认存在漏洞;
[0130]S319:上传 Iiunux 包;
[0131]S320:注册服务;
[0132]S321:判断是否报错,如果是,则进入步骤S325;
[0133]S322:如果否,则远程执行命令whoami ;
[0134]S323:判断命令执行是否成功,如果否,则进入步骤S325 ;
[0135]S324:如果是,则输出主机信息,确认存在漏洞;
[0136]S325:断开连接;
[0137]S326:线程退出;
[0138]S327:判断线程是否全部退出,如果否,则;
[0139]S328:如果是,则结束。
[0140]本实施例还提供了一种Weblogic反序列化漏洞扫描检测工具,包括以下模块:
[0141]输入模块,用于获取待检测文档;
[0142]漏洞扫描模块,用于启动webI og i c反序列化漏洞扫描检测工具;
[0143]漏洞检测模块,用于对待检测文档进行漏洞扫描;
[0144]漏洞判断模块,用于判断待检测文档是否存在漏洞,并输出主机的漏洞信息;
[0145]漏洞输出模块,用于输出漏洞扫描信息。
[0146]还包括以下步骤:
[0147]漏洞验证模块,用于对待检测文档进行漏洞验证;并输出验证过程结果信息;
[0148]连接检测模块,用于判断待检测文档是否连接成功,并显示连接结果;
[0149]验证确认模块,用于断开连接释放资源并结束漏洞验证。
[0150]所述漏洞扫描模块按照以下步骤来实现漏洞检测过程:
[0151]S301:获取界面输入信息;
[0152]S302:处理输入信息,生成主机地址队列和端口队列;
[0153]S303:初始化参数,设置标识位信息;
[0154]S304:判断线程数是否达到上限;
[0155]S305:如果是,则进入步骤S327;
[0156]S306:如果否,则新建线程,开始扫描;
[0157]S307:判断主机地址队列是否为空,如果是,则进入步骤S326;
[0158]S308:如果否,则从主机地址队列中获取目标地址;
[0159]S309:判断是否扫描完所有端口,如果是,则返回步骤S307;
[0160]S310:如果否,则从端口队列中获取目标端口;
[0161]S311:连接目标服务器;
[0162]S312:判断连接是否成功,如果否,则返回步骤S309 ;
[0163]S313:如果是,贝丨彳上传windows包;
[0164]S314:注册服务;
[0165]S315:是否报错,如果是,则进入步骤S318;
[0166]S316:如果否,则远程执行命令whoami ;
[0167]S317:判断命令执行是否成功,如果否,则进入步骤S318;
[0168]S318:如果是,则输出主机信息,确认存在漏洞;
[0169]S319:上传 Iiunux 包;
[0170]S320:注册服务;
[0171 ] S321:判断是否报错,如果是,则进入步骤S325 ;
[0? 72] S322:如果否,则?程执彳丁命令whoami ;
[0173]S323:判断命令执行是否成功,如果否,则进入步骤S325 ;
[0174]S324:如果是,则输出主机信息,确认存在漏洞;
[0175]S325:断开连接;
[0176]S326:线程退出;
[0177]S327:判断线程是否全部退出,如果否,则返回步骤S326;
[0178]S328:如果是,则结束。
[0179]实施例2
[0180]如图2所示,本实施例提供的Weblogic反序列化漏洞扫描检测方法,用于漏洞扫描和漏洞验证:首先调用Weblogic反序列化漏洞扫描检测工具程序主函数、入口点;然后初始化Weblogic反序列化漏洞扫描检测工具主界面;生成Weblogic反序列化漏洞扫描检测工具主界面按钮;选择漏洞扫描模块线程,或者选择漏洞验证模块线程;连接服务器和注册函数;执行命令函数;最后释放连接函数。Weblogic反序列化漏洞扫描检测支持多主机地址、多端口漏洞扫描。界面友好,对人员能力要求低,适合任意人员使用,界面友好,对人员能力要求低,适合任意人员使用,且支持自定义命令执行,通过回显文本框返回扫描结果及命令执行结果,及时了解扫描进度、扫描结果及命令执行结果。
[0181 ]漏洞扫描具体步骤如下:
[0182](I)输入IP地址
[0183]在“IP地址”文本框中输入需要扫描的地址或网段,地址之间用“,”隔开,例如:可输入“192.168.1.2,192.168.1.1,192.168.2.0/24”。
[0184](2)输入端口范围
[0185]在“端口范围”处可输需要扫描的端口或端口范围,端口范围之间用连接,端口之间用“,”隔开,例如:可输入“232,342,7000-7010”。
[0186](3)输入扫描线程
[0187]在“扫描线程”处可设定扫描线程数量。
[0188](4)扫描结果回显
[0189]可对扫描结果进行回显,那些主机存在漏洞,扫描完成后将结果保存在文件中。
[0190]该方法对指定网络地址范围内主机进行漏洞扫描,支持多地址、多端口、按地址段、端口范围等批量扫描。
[0191]漏洞验证步骤如下:
[0192](I)输入IP地址
[0193]在“IP地址”文本框中输入需要进行漏洞验证的主机IP地址。
[0194](2)输入端口
[0195]在“端口”文本框中输入需要进行漏洞验证的主机端口。
[0196](3)选择操作系统
[0197]在“操作系统”下拉列表中选择目标主机的操作系统类型。
[0198](4)命令执行
[0199]在“命令”文本框中输入需要执行的命令,通过本工具执行系统命令。
[0200](5)命令结果回显:
[0201]对命令执行结果进行回显,判断命令是否执行成功。
[0202]该方法对确定主机进行漏洞验证、利用及命令执行。
[0203]实施例3
[0204]本实施例通过Weblogic反序列化漏洞扫描检测生成的工具对目标服务器进行扫描为例进行说明。
[0205]1、漏洞扫描
[0206](I)双击 “run.bat”,启动自主研发weblogic_unserialize_tool工具,选择“漏洞扫描”模块;
[0207]( 2 )输入扫描地址范围及端口范围,设定扫描线程,例如:地址范围为“192.168.56.101,192.168.56.102”,端 P 范围为 “7000-7010”,线程设置为5个;
[0208](3)点击“扫描”按钮进行扫描,工具会显示扫描进度,并显示存在漏洞的主机信息;
[0209]2、漏洞验证
[0210](I)选择“漏洞验证”模块,输入目标主机信息,并选择操作系统,例如:目标主机IP为“192.168.56.102”,端口为“7001”,操作系统为“Windows” ;
[0211 ] (2)点击“连接”按钮进行连接,连接成功后显示相关信息;
[0212](3)输入命令后点击“执行”按钮,工具将执行相关命令,并显示执行结果,执行“whoami” 及 “ipconf ig” 命令。
[0213](4)点击“断开”按钮,工具将断开连接并释放资源。
[0214]最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的要求保护的范围当中。
【主权项】
1.一种Weblogic反序列化漏洞扫描检测方法,其特征在于:包括以下步骤: S1:获取待检测文档; 52:启动weblogic反序列化漏洞扫描检测工具; 53:对待检测文档进行漏洞扫描; 54:判断待检测文档是否存在漏洞,如果是,则输出主机的漏洞信息; 55:如果否,则返回步骤继续扫描直到扫描结束。2.如权利要求1所述的Weblogic反序列化漏洞扫描检测方法,其特征在于:还包括以下步骤: S61:对待检测文档进行漏洞验证; 562:判断待检测文档是否连接成功,如果否,则结束; 563:如果成功,则执行命令并显示结果; 564:判断是否结束验证过程,如果否,则返回步骤继续验证; 565:如果是,则断开连接并释放资源并结束漏洞验证。3.如权利要求1所述的Weblogic反序列化漏洞扫描检测方法,其特征在于:所述漏洞扫描具体步骤如下: S301:获取界面输入信息; 5302:处理输入信息,生成主机地址队列和端口队列; 5303:初始化参数,设置标识位信息; 5304:判断线程数是否达到上限; 5305:如果是,则进入步骤S327 ; S306:如果否,则新建线程,开始扫描; 5307:判断主机地址队列是否为空,如果是,则进入步骤S326; 5308:如果否,则从主机地址队列中获取目标地址; 5309:判断是否扫描完所有端口,如果是,则返回步骤S307 ; 5310:如果否,则从端口队列中获取目标端口 ; S311:连接目标服务器; S312:判断连接是否成功,如果否,则返回步骤S309; S313:如果是,则上传windows包; S314:注册服务; S315:是否报错,如果是,则进入步骤S318; S316:如果否,则远程执行命令查看当前有效用户; S317:判断命令执行是否成功,如果否,则进入步骤S318; S318:如果是,则输出主机信息,确认存在漏洞; S319:上传 Iiunux 包; S320:注册服务; 5321:判断是否报错,如果是,则进入步骤S325; 5322:如果否,则远程执行命令查看当前有效用户; 5323:判断命令执行是否成功,如果否,则进入步骤S325; 5324:如果是,则输出主机信息,确认存在漏洞; S325:断开连接; S326:线程退出; S327:判断线程是否全部退出,如果否,则返回步骤S326; S328:如果是,则结束。4.一种Weblogic反序列化漏洞扫描检测工具,其特征在于:包括输入模块、漏洞扫描模块、漏洞检测模块、漏洞判断模块和漏洞输出模块; 所述输入模块,用于获取待检测文档; 所述漏洞扫描模块,用于启动weblogic反序列化漏洞扫描检测工具; 所述漏洞检测模块,用于对待检测文档进行漏洞扫描; 所述漏洞判断模块,用于判断待检测文档是否存在漏洞,并输出主机的漏洞信息; 所述漏洞输出模块,用于输出漏洞扫描信息。5.如权利要求4所述的Weblogic反序列化漏洞扫描检测工具,其特征在于:还包括漏洞验证模块、连接检测模块和验证确认模块; 所述漏洞验证模块,用于对待检测文档进行漏洞验证;并输出验证过程结果信息; 所述连接检测模块,用于判断待检测文档是否连接成功,并显示连接结果; 所述验证确认模块,用于断开连接释放资源并结束漏洞验证。6.如权利要求4所述的Weblogic反序列化漏洞扫描检测工具,其特征在于:所述漏洞扫描模块按照以下步骤来实现漏洞检测过程: S301:获取界面输入信息; 5302:处理输入信息,生成主机地址队列和端口队列; 5303:初始化参数,设置标识位信息; 5304:判断线程数是否达到上限; 5305:如果是,则进入步骤S327 ; S306:如果否,则新建线程,开始扫描; 5307:判断主机地址队列是否为空,如果是,则进入步骤S326; 5308:如果否,则从主机地址队列中获取目标地址; 5309:判断是否扫描完所有端口,如果是,则返回步骤S307 ; 5310:如果否,则从端口队列中获取目标端口 ; S311:连接目标服务器; S312:判断连接是否成功,如果否,则返回步骤S309; S313:如果是,则上传windows包; S314:注册服务; S315:是否报错,如果是,则进入步骤S318; S316:如果否,则远程执行命令查看当前有效用户; S317:判断命令执行是否成功,如果否,则进入步骤S318; S318:如果是,则输出主机信息,确认存在漏洞; S319:上传 Iiunux 包; S320:注册服务; S321:判断是否报错,如果是,则进入步骤S325;5322:如果否,则远程执行命令查看当前有效用户;5323:判断命令执行是否成功,如果否,则进入步骤S325;5324:如果是,则输出主机信息,确认存在漏洞;S325:断开连接;S326:线程退出;S327:判断线程是否全部退出,如果否,则返回步骤S326;S328:如果是,则结束。
【文档编号】G06F21/57GK106096417SQ201610382393
【公开日】2016年11月9日
【申请日】2016年6月1日 公开号201610382393.6, CN 106096417 A, CN 106096417A, CN 201610382393, CN-A-106096417, CN106096417 A, CN106096417A, CN201610382393, CN201610382393.6
【发明人】朱珠, 韩世海, 张森, 张伟, 雷娟, 景钰文, 杨峰, 赵长松
【申请人】国网重庆市电力公司电力科学研究院, 国网重庆市电力公司, 国家电网公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1