本发明涉及软件工程技术领域,特别涉及一种弱口令暴力破解的开发系统及方法。
背景技术:
在这个“无密码不生活”的时代,密码安全也显得尤为重要。弱密码(weakpasswords)即容易破译的密码,多为简单的数字组合、帐号相同的数字组合、键盘上的临近键或常见姓名,例如“123456”、“abc123”、“michael”等。终端设备出厂配置的通用密码等都属于弱密码范畴。
弱密码的存在危害性极大,不法分子通过暴力破解这些弱密码,极有可能对系统、用户和业务系统造成致命的危害。同时,由于各种各样的原因,弱密码的存在又是广泛的,因此针对弱密码的检测是完全必要的,这是任何一位安全检测产品的研发者都应该考虑到的方面。
目前,在市场上,安全开发工作者在开发弱口令检测工具上,通常是单个功能的或者通用但不全面的,且没有考虑到后续地持续功能添加,无法有针对地对特定的服务弱口令暴力破解功能进行增强或修改。此外,单独开发一款软件相比插件地开发难度较大,且不方便管理,对团队协作开发不够友好。
技术实现要素:
本发明的目的是克服上述背景技术中不足,提供一种弱口令暴力破解的开发系统及方法,可有效地节约开发过程中的时间成本,提高开发效率,简化弱口令暴力破解软件开发的步骤,降低开发难度。
为了达到上述的技术效果,本发明采取以下技术方案:
一种弱口令暴力破解的开发系统,包含主机端口扫描模块、结果存储模块、插件控制模块、日志模块、暴破核心功能模块、辅助功能模块,主机端口扫描模块分别与辅助功能模块、结果存储模块相连,插件控制模块分别与结果存储模块、暴破核心功能模块相连,日志模块与结果存储模块相连,其中;
所述主机端口扫描模块用于对主机的存活性进行验证、检测主机开放的端口、对端口的服务进行指纹识别;
所述结果存储模块用于将对主机扫描出来的服务以字典的形式作为暴力破解的目标存储起来;
所述插件控制模块用于实现任务调度及动态加载暴破核心功能模块及插件调用机制;
所述日志模块用于存储程序运行中的信息、警告及错误提示;
所述辅助功能模块用于进行数据格式的转换、命令行参数解析、数据格式解析;
利用本发明的弱口令暴力破解的开发系统,后续开发者可以直接使用并进行二次开发,从而省去本系统中已包含的功能的重复开发,着重开发其具体要实现的功能点没通过本发明的弱口令暴力破解的开发系统,后续开发人员可仅实现某种特定的网络服务比如ftp、redis、mongodb等服务的破解过程,而不需要去想如何整合、调用、选择插件等一系列复杂的逻辑,就能实现暴破核心功能模块即能完成一次有效开发,从而起到有效地节约开发过程中的时间成本,提高开发效率,简化弱口令暴力破解软件开发的步骤,降低开发难度的效果。
进一步地,还包含通用功能模块,所述通用功能模块内内预设有若干常用功能单元,如banner信息的打印单元、数据的标准化输出单元、文件路径设置单元、编码解码单元、文件列表读取单元、文件内容读取单元、随机url产生单元、随机数生成单元、随机字符串的产生单元、获取插件列表单元、数据类型转化单元、url解析单元、http服务器判断单元、文件的json对象转化单元等,通过这些预设的功能单元可以有效的节约开发的时间周期。
进一步地,所述辅助功能模块内还包含编码转换单元、全局数据单元、异常机制单元、日志单元及线程池,辅助功能模块所起到的作用主要是解决在开发中的各种常用需求,提高开发效率和代码复用率,辅助功能模块内的各单元相当于工具模块,在后续开发中,直接调用这些单元中函数或者实例化类即可快捷地实现相应的功能,无需再重复编写代码。
进一步地,所述插件控制模块内包含插件调度单元,所述插件调度单元用于动态载入模块函数及模块的调用,由于在扫描之前,暴破核心功能模块不是确定的,所以需要在载入模块之前,根据扫描到的服务信息,进行动态载入模块函数确定需要加载的模块。
同时,本发明还公开了一种弱口令暴力破解的开发方法,包含上述的弱口令暴力破解的开发系统,且具体包含以下步骤:
s1.从用户处接收扫描参数,包括扫描自定义端口、目标主机或url;
s2.辅助功能模块在主函数中进行用户的命令行参数的解析,得到解析信息;
s3.主机端口扫描模块根据所述解析信息进行端口扫描,识别开发的服务是否存在开放的服务,若存在开放的服务,则将开放的端口服务信息存储于结果存储模块中;
s4.插件控制模块根据所述步骤s3得到的开放的端口服务信息调用插件扫描功能,识别开放的服务特征及端口,动态加载暴破核心功能模块并调用相应的插件模块进行爆破。
本发明与现有技术相比,具有以下的有益效果:
利用本发明的弱口令暴力破解的开发系统,后续开发者可以直接使用并进行二次开发,从而省去本系统中已包含的功能的重复开发,着重开发其具体要实现的功能点没通过本发明的弱口令暴力破解的开发系统,后续开发人员可仅实现某种特定的网络服务比如ftp、redis、mongodb等服务的破解过程,而不需要去想如何整合、调用、选择插件等一系列复杂的逻辑,就能实现暴破核心功能模块,从而起到有效地节约开发过程中的时间成本,提高开发效率,简化弱口令暴力破解软件开发的步骤,降低开发难度的效果。
附图说明
图1是本发明的弱口令暴力破解的开发系统的结构示意图。
具体实施方式
下面结合本发明的实施例对本发明作进一步的阐述和说明。
实施例:
实施例一:
如图1所示,一种弱口令暴力破解的开发系统,该系统由python语言实现,系统中包含的单元模块如下:主机端口扫描模块、结果存储模块、插件控制模块、日志模块、暴破核心功能模块、辅助功能模块。
主机端口扫描模块分别与辅助功能模块、结果存储模块相连,插件控制模块分别与结果存储模块、暴破核心功能模块相连,日志模块与结果存储模块相连,其中;
所述主机端口扫描模块用于对主机的存活性进行验证、检测主机开放的端口、对端口的服务进行指纹识别。所述结果存储模块用于将对主机扫描出来的服务以字典的形式作为暴力破解的目标存储起来。所述插件控制模块用于实现任务调度及动态加载暴破核心功能模块及插件调用机制。所述日志模块用于存储程序运行中的信息、警告及错误提示。所述辅助功能模块用于进行数据格式的转换、命令行参数解析、数据格式解析。
其运作关系主要为:
先从用户处接收扫描参数,包括扫描自定义端口、目标主机或url;
再由辅助功能模块在主函数中进行用户的命令行参数的解析,得到解析信息;
其次,主机端口扫描模块根据所述解析信息进行端口扫描,识别开发的服务是否存在开放的服务,若存在开放的服务,则将开放的端口服务信息存储于结果存储模块中;
最后,插件控制模块根据上步得到的开放的端口服务信息调用插件扫描功能,识别开放的服务特征及端口,动态加载暴破核心功能模块并调用相应的插件模块进行爆破。
具体的,该弱口令暴力破解的开发系统内还可设置通用功能模块,所述通用功能模块内预设有若干常用功能单元,如banner信息的打印单元、数据的标准化输出单元、文件路径设置单元、编码解码单元、文件列表读取单元、文件内容读取单元、随机url产生单元、随机数生成单元、随机字符串的产生单元、获取插件列表单元、数据类型转化单元、url解析单元、http服务器判断单元、文件的json对象转化单元等,通过这些预设的功能单元可以有效的节约开发的时间周期。
具体的,所述辅助功能模块内还包含编码转换单元、全局数据单元、异常机制单元、日志单元及线程池,辅助功能模块所起到的作用主要是解决在开发中的各种常用需求,提高开发效率和代码复用率,辅助功能模块内的各单元相当于工具模块,在后续开发中,直接调用这些单元中函数或者实例化类即可快捷地实现相应的功能,无需再重复编写代码。
具体的,所述插件控制模块内包含插件调度单元,所述插件调度单元用于动态载入模块函数及模块的调用,由于在扫描之前,暴破核心功能模块不是确定的,所以需要在载入模块之前,根据扫描到的服务信息,进行动态载入模块函数确定需要加载的模块。
利用本发明的弱口令暴力破解的开发系统,后续开发者可以直接使用并进行二次开发,从而省去本系统中已包含的功能的重复开发,着重开发其具体要实现的功能点没通过本发明的弱口令暴力破解的开发系统,后续开发人员可仅实现某种特定的网络服务比如ftp、redis、mongodb等服务的破解过程,而不需要去想如何整合、调用、选择插件等一系列复杂的逻辑,就能实现暴破核心功能模块即能完成一次有效开发,从而起到有效地节约开发过程中的时间成本,提高开发效率,简化弱口令暴力破解软件开发的步骤,降低开发难度的效果。
实施例二
本实施例为具体应用上述系统及方法实现弱口令暴力破解的一个实施例,利用本发明的系统及方法可以很容易地完成后续爆破插件地开发,如redis登录爆破,mongodb登录爆破等,本实施例中,以mongodb的爆破为例:
第一步,添加mongodb的账户及密码本;
第二步,添加插件相关信息至default.config.yaml,具体格式如下:
第三步,开发mongodbcheck的entry.py文件,在开文件中,主要需要实现的函数为mongodbcrack(),run(),start(),即可完成本插件的开发,其代码量极少且每一个插件的开发模式一样,方便复用和管理,也可多人同时开发不同插件,大大提高了开发效率;
具体的,mongodbcrack()的功能需要实现用单个密码进行登录连接,run()的功能需要实现循环调用mongodbcrack()实现爆破功能,start()需要实现的功能则是将爆破任务加入线程,是单个插件的入口。
下面为本实施例中,mongodb这一服务的暴破主要需要实现的三个函数的代码示例:
mongodbcrack()的实现示例如下:
run()示例如下:
start()的示例如下:
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。