CN116414521A - 分布异构靶场的虚拟机远程命令交互方法、装置及介质 - Google Patents

分布异构靶场的虚拟机远程命令交互方法、装置及介质 Download PDF

Info

Publication number
CN116414521A
CN116414521A CN202310262045.5A CN202310262045A CN116414521A CN 116414521 A CN116414521 A CN 116414521A CN 202310262045 A CN202310262045 A CN 202310262045A CN 116414521 A CN116414521 A CN 116414521A
Authority
CN
China
Prior art keywords
virtual machine
target
remote command
agent
execution
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.)
Pending
Application number
CN202310262045.5A
Other languages
English (en)
Inventor
贾焰
杨明盛
黄珺
方滨兴
韩伟红
张家伟
李宗哲
吴志良
杨杰
吉青利
陈睿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peng Cheng Laboratory
Original Assignee
Peng Cheng Laboratory
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Peng Cheng Laboratory filed Critical Peng Cheng Laboratory
Priority to CN202310262045.5A priority Critical patent/CN116414521A/zh
Publication of CN116414521A publication Critical patent/CN116414521A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了分布异构靶场的虚拟机远程命令交互方法、装置及介质,分布异构靶场包括主靶场和分靶场,方法包括:接收用户的查询请求并返回可接收远程命令的虚拟机的虚拟机信息;接收用户通过前端页面下发的远程命令执行请求,前端页面支持预编排模式和交互模式;检查全部目标虚拟机是否安装有代理程序,当目标虚拟机未安装代理程序,通过主靶场业务网的服务器端口向未安装代理程序的目标虚拟机部署代理程序;在全部目标虚拟机安装有代理程序的情况下,将远程命令执行请求下发到目标虚拟机中的代理程序,并接收代理程序返回的远程命令执行结果。在本发明实施例中,能够结合交互设备的输入情况进行编码,达到提升编码速度和交互流畅度的目的。

Description

分布异构靶场的虚拟机远程命令交互方法、装置及介质
技术领域
本申请涉及网络靶场技术领域,尤其涉及一种分布异构靶场的虚拟机远程命令交互方法、装置及介质。
背景技术
网络靶场(Cyber Range)是一种基于虚拟化技术,对真实网络空间中的网络架构、系统设备、业务流程的运行状态及运行环境进行模拟和复现的技术,服务于网络攻防训练、网络攻防产品评测和网络新技术研发等目的。
分布异构靶场环境下,对分布在不同分靶场的虚拟机进行远程命令操作,需要分别登录对应分靶场的用户管理系统,再远程登录到分靶场的虚拟机,操作非常不便,且部分分靶场由于安全等原因,远程登录功能仅对内部局域网的用户开放,外部用户无法使用,或者外部用户需要先登录vpn(Virtual Private Network,虚拟专用网),再通过vpn隧道连接到内部的分靶场,但是多个分靶场同时登录可能存在冲突,这些都不方便用户使用。因此,需要针对分布异构靶场的远程命令的交互方式进行改进。
发明内容
本申请实施例提供了一种分布异构靶场的虚拟机远程命令交互方法、装置及介质,能够结合交互设备的输入情况进行编码,达到提升编码速度和交互流畅度的目的。
第一方面,本申请实施例提供了一种分布异构靶场的虚拟机远程命令交互方法,所述分布异构靶场包括主靶场和分靶场,所述主靶场和所述分靶场均包括至少一个虚拟机,所述分靶场通过所述主靶场与主靶场业务网连接,所述主靶场业务网用于向用户提供对所述虚拟机的远程命令调度执行服务;
所述方法包括:
接收用户的查询请求并返回可接收远程命令的虚拟机的虚拟机信息,所述虚拟机信息用于供用户从所述虚拟机中选出需要下发远程命令的目标虚拟机;
接收用户通过前端页面下发的远程命令执行请求,所述远程命令执行请求用于向用户指定的目标虚拟机下发远程命令,所述前端页面支持预编排模式和交互模式,所述预编排模式用于根据用户的多个命令创建命令执行工作流,生成第一远程命令执行请求,所述交互模式用于向用户提供交互对话框,所述交互对话框用于每次接收用户的单个远程命令并生成第二远程命令执行请求;
检查全部所述目标虚拟机是否安装有代理程序,当所述目标虚拟机未安装所述代理程序,通过所述主靶场业务网的服务器端口向所述未安装所述代理程序的所述目标虚拟机部署所述代理程序;
在全部所述目标虚拟机安装有所述代理程序的情况下,将所述远程命令执行请求下发到所述目标虚拟机中的所述代理程序,并接收所述代理程序返回的远程命令执行结果,其中,所述第一远程命令执行请求的执行结果对应所述命令执行工作流的执行结果,所述第二远程命令执行请求的执行结果对应所述单个远程命令的执行结果。
在一些实施例中,所述通过所述主靶场业务网的服务器端口向所述未安装所述代理程序的所述目标虚拟机部署所述代理程序,包括:
确定所述分布异构靶场所在的目标网络;
将所述主靶场业务网的服务器端口映射到所述目标网络中;
通过所述服务器端口向未安装所述代理程序的所述目标虚拟机推送并部署所述代理程序。
在一些实施例中,所述通过所述服务器端口向未安装所述代理程序的所述目标虚拟机推送并部署所述代理程序,包括:
当未安装所述代理程序的所述目标虚拟机所在的靶场为所述主靶场,调用所述主靶场的靶场接口推送并部署所述代理程序;
当未安装所述代理程序的所述目标虚拟机所在的靶场为所述分靶场,选择所述分靶场中联通所述主靶场的代理虚拟机,通过所述代理虚拟机推送并部署所述代理程序,所述代理虚拟机中已部署有代理程序。
在一些实施例中,所述推送并部署所述代理程序,包括:
向未安装所述代理程序的所述目标虚拟机推送程序安装包和配置文件;
在确认未安装所述代理程序的所述目标虚拟机成功接收所述程序安装包和所述配置文件后,下发部署命令执行安装部署。
在一些实施例中,所述将所述主靶场业务网的服务器端口映射到所述目标网络中,包括:
选择所述主靶场中的一个虚拟机作为推送虚拟机,并确定所述推送虚拟机所在的子网;
调用所述主靶场的数据传输接口开通到所述推送虚拟机所在的子网的数据通道;
将所述主靶场业务网的服务器端口映射到所述目标网络中,并通过所述数据传输通道发送所述代理程序的程序安装包和配置文件。
在一些实施例中,所述主靶场业务网还包括外部接口,所述外部接口用于在所述预编排模式下,接收外部终端发送的多个命令,并根据多个命令生成第三远程命令执行请求。
在一些实施例中,所述预编排模式具体用于:
在所述前端页面接收用户编排得到的要执行的多个命令;
根据所述多个命令创建命令执行工作流;
确定所述命令执行工作流的执行方式和靶场中节点的输入输出关系,所述执行方式包括多个命令的串行执行、并行执行和串并行执行;
根据所述命令执行工作流的命令数据、执行方式和靶场中节点的输入输出关系构造所述第一远程命令执行请求。
在一些实施例中,所述交互模式具体用于:
在连接到所述目标虚拟机的情况下,在所述前端页面创建所述交互对话框;
当接收到用户在所述交互对话框编排的远程命令,创建对应所述远程命令的任务会话,并将所述远程命令发送到所述目标虚拟机的代理程序;
接收所述远程命令的执行结果,并展示到所述任务会话的界面;
当接收到用户的任务结束请求,关闭所述交互对话框。
第二方面,本申请实施例提供了一种虚拟机远程命令交互装置,包括至少一个处理器和用于与所述至少一个处理器通信连接的存储器;所述存储器存储有能够被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的虚拟机远程命令交互方法。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面所述的虚拟机远程命令交互方法。
本申请实施例提供的分布异构靶场的虚拟机远程命令交互方法、装置及介质,至少具有如下有益效果:针对分布异构靶场不便于批量下发命令的问题,本申请实施例通过前端页面向用户提供能够批量执行命令的预编排模式和单个远程命令交互的交互模式,将对应的远程命令执行请求下发到用户指定的一个或多个目标虚拟机,其中不同网络靶场的数据互通通过代理程序的自动下发实现,当检查到目标虚拟机未安装有代理程序,则主靶场业务网通过服务器向该目标虚拟机自动推送并部署代理程序,从而在分布异构靶场中方便用户向不同虚拟机下发远程命令,即向用户提供统一的虚拟机远程命令下发与执行功能,支持选择多个虚拟机批量下发执行,解决传统人工登录执行方式过程繁琐、效率低的问题,为攻防武器工具自动部署运行等功能提供支持。
附图说明
图1是本发明一个实施例提供的用于虚拟机远程命令交互方法的系统框架图;
图2是本申请实施例提供的虚拟机远程命令交互方法的流程图;
图3是图2中步骤S300的具体流程图;
图4是图3中步骤S330的具体流程图;
图5是图3中步骤S330的另一具体流程图;
图6是图4中步骤S331的具体流程图;
图7是图3中步骤S320的具体流程图;
图8是本申请实施例提供的分布异构靶场的系统架构图;
图9是本申请一个实施例提供的虚拟机远程命令交互装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要注意的是,在本发明实施例的描述中,说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本申请实施例提供的分布异构靶场的虚拟机远程命令交互方法、装置及介质,针对分布异构靶场不便于批量下发命令的问题,本申请实施例通过前端页面向用户提供能够批量执行命令的预编排模式和单个远程命令交互的交互模式,将对应的远程命令执行请求下发到用户指定的一个或多个目标虚拟机,其中不同网络靶场的数据互通通过代理程序的自动下发实现,当检查到目标虚拟机未安装有代理程序,则主靶场业务网通过服务器向该目标虚拟机自动推送并部署代理程序,从而在分布异构靶场中方便用户向不同虚拟机下发远程命令,即向用户提供统一的虚拟机远程命令下发与执行功能,支持选择多个虚拟机批量下发执行,解决传统人工登录执行方式过程繁琐、效率低的问题,为攻防武器工具自动部署运行等功能提供支持。
下面结合附图,对本发明实施例作进一步阐述。
参照图1,图1是本发明一个实施例提供的用于虚拟机远程命令交互方法的系统框架图。
在一些实施例中,该系统依托于网络靶场系统,可以向分布异构靶场用户提供向虚拟机下发执行远程命令功能,并且支持批量执行,能够选择多台虚拟机同时下发执行,提高用户操作效率,同时提供外部接口,向攻防武器工具自动组装运行等功能提供支持。
可以理解的是,本实施例将用于虚拟机远程命令交互方法的系统划分为远程命令执行服务器和虚拟机代理程序两大子系统,远程命令执行服务器部署在主靶场业务网,内部按功能划分为虚拟机管理子模块100、命令调度执行子模块200、前端子系统300、消息服务模块400以及数据库模块500,各模块功能如下:
虚拟机管理子模块100:管理用户可操作的虚拟机信息,部署安装和配置运行虚拟机代理程序。
命令调度执行子模块200:负责远程命令的下发执行,将命令和参数通过通知服务发布给相关虚拟机的代理程序,接收汇总虚拟机代理的应答结果并保存,处理命令执行超时等异常情况。交互模式下创建和维护任务的会话。
前端子系统300:包括前端页面,用于接收用户下发的远程命令执行请求,并在前端页面创建交互对话框等。
消息服务模块400:用于将虚拟机代理上报的输出结果返回给用户,将用户的输入下发给对应的虚拟机代理程序。
数据库模块500:用于存储虚拟机代理的应答结果以及处理命令执行超时等情况。
需要说明的是,虚拟机代理程序安装部署在靶场的虚拟机中,通过数据通道和远程命令执行服务器建立网络连接,接收服务器指令,调用本机系统接口执行下发的命令,将执行结果返回给服务器。
本领域技术人员可以理解的是,图1中示出的系统框架并不构成对本发明实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,下面对本实施例中的虚拟机远程命令交互方法进行具体说明。
参照图2,本申请实施例提供的一种虚拟机远程命令交互方法,包括但不限于以下步骤S100至步骤S400。
步骤S100,接收用户的查询请求并返回可接收远程命令的虚拟机的虚拟机信息,虚拟机信息用于供用户从虚拟机中选出需要下发远程命令的目标虚拟机;
在一些实施例中,接收用户的查询请求,确定分布异构靶场中可操作的虚拟机信息,并通过靶场接口返回可接受远程命令的虚拟机的虚拟机信息,便于后续对虚拟机的统一控制。
步骤S200,接收用户通过前端页面下发的远程命令执行请求;
需要说明的是,远程命令执行请求用于向用户指定的目标虚拟机下发远程命令,前端页面支持预编排模式和交互模式,预编排模式用于根据用户的多个命令创建命令执行工作流,生成第一远程命令执行请求,交互模式用于向用户提供交互对话框,交互对话框用于每次接收用户的单个远程命令并生成第二远程命令执行请求。
在一些实施例中,接收用户通过前端页面下发的远程命令执行请求,以确定用户指定操作的目标虚拟机,并便于后续向用户指定的目标虚拟机下发远程命令。
步骤S300,检查全部目标虚拟机是否安装有代理程序,当目标虚拟机未安装代理程序,通过主靶场业务网的服务器端口向未安装代理程序的目标虚拟机部署代理程序;
在一些实施例中,检查全部目标虚拟机是否安装有代理程序,在目标虚拟机未安装代理程序的情况下,通过主靶场业务网的服务器端口向未安装代理程序的目标虚拟机部署代理程序,从而实现对目标虚拟机的全面部署,便于对目标虚拟机的统一管理,能够结合交互设备的输入情况进行编码,达到提升编码速度和交互流畅度的目的。
可以理解的是,在目标虚拟机安装代理程序的情况下,可以直接将远程命令执行请求下发到目标虚拟机中的代理程序,并接收返回结果。
步骤S400,在全部目标虚拟机安装有代理程序的情况下,将远程命令执行请求下发到目标虚拟机中的代理程序,并接收代理程序返回的远程命令执行结果。
需要说明的是,第一远程命令执行请求的执行结果对应命令执行工作流的执行结果,第二远程命令执行请求的执行结果对应单个远程命令的执行结果。
在一些实施例中,在确定全部的目标虚拟机安装有代理程序的情况下,可以直接将远程命令执行请求下发到目标虚拟机中的代理程序,其中,第一远程命令执行请求的执行结果对应命令执行工作流的执行结果,第二远程命令执行请求的执行结果对应单个远程命令的执行结果,能够通过预编排模式和交互模式两种模式批量下发指令,并接收代理程序返回的远程命令执行结果,实现向用户提供统一的虚拟机远程命令下发与执行功能,解决传统人工登录执行方式过程繁琐的问题。
参照图3,图3是对图2中步骤S300的进一步说明,步骤S300包括但不限于包括步骤S310至步骤S330。
步骤S310,确定分布异构靶场所在的目标网络;
步骤S320,将主靶场业务网的服务器端口映射到目标网络中;
步骤S330,通过服务器端口向未安装代理程序的目标虚拟机推送并部署代理程序。
在一些实施例的步骤S310至步骤S330中,在向未安装代理程序的目标虚拟机部署代理程序的过程中,需要先确定分布异构靶场所在的目标网络,再将主靶场网业务的服务器端口映射到目标网络中,从而判断目标虚拟机所在的靶场类型,并通过服务器端口向未安装代理程序的目标虚拟机推送并部署代理程序,实现对不同靶场类型中目标虚拟机的部署,实现对目标虚拟机的精准部署。
参照图4,图4是对图3中步骤S330的进一步说明,步骤S330包括但不限于包括步骤S331。
步骤S331:当未安装代理程序的目标虚拟机所在的靶场为主靶场,调用主靶场的靶场接口推送并部署代理程序。
在一些实施例中,当确定未安装代理程序的目标虚拟机所在的靶场为主靶场,则可以直接调用主靶场的靶场接口并部署代理程序,以实现对主靶场中目标虚拟机的部署。
参照图5,图5是对图3中步骤S330的进一步说明,步骤S330包括但不限于包括步骤S332。
步骤S332:当未安装代理程序的目标虚拟机所在的靶场为分靶场,选择分靶场中联通主靶场的代理虚拟机,通过代理虚拟机推送并部署代理程序。
需要说明的是,代理虚拟机中已部署有代理程序。
在一些实施例中,当未安装代理程序的目标虚拟机所在的靶场为分靶场,则需要先选择在目标网络中网络可以联通的主靶场虚拟机作为代理虚拟机,并通过代理虚拟机推送并部署代理程序,即,将远程拷贝文件到分靶场虚拟机,并下发命令执行安装部署代理虚拟机中已部署有代理程序,以实现对分靶场虚拟机的部署。
参照图6,图6是对图4中步骤S331的进一步说明,步骤S331包括但不限于包括步骤S3310至步骤S3311。
步骤S3310,向未安装代理程序的目标虚拟机推送程序安装包和配置文件;
步骤S3311,在确认未安装代理程序的目标虚拟机成功接收程序安装包和配置文件后,下发部署命令执行安装部署。
在一些实施例的步骤S3310至步骤S3311中,在目标虚拟机所在的靶场为主靶场的情况下,向未安装代理程序的目标虚拟机推送程序安装包和配置文件,并在确认未安装代理程序的目标虚拟机成功接收程序安装包和配置文件后,下发部署命令执行安装部署,从而实现对部署代理程序的安装。
需要说明的是,在确定未安装代理程序的目标虚拟机接收程序安装包和配置文件失败后,则安装过程出现错误,直接通过前端页面向用户返回失败提示。
参照图7,图7是对图3中步骤S320的进一步说明,步骤S320包括但不限于包括步骤S321至步骤S323。
步骤S321,选择主靶场中的一个虚拟机作为推送虚拟机,并确定推送虚拟机所在的子网;
步骤S322,调用主靶场的数据传输接口开通到推送虚拟机所在的子网的数据通道;
步骤S323,将主靶场业务网的服务器端口映射到目标网络中,并通过数据传输通道发送代理程序的程序安装包和配置文件。
在一些实施例的步骤S321至步骤S323中,在将主靶场业务网的服务器端口映射到目标网络的过程中,需要先选择主靶场中的一个虚拟机作为推送虚拟机,并从目标网络中确定推送虚拟机所在的子网,之后再调用主靶场的数据传输接口开通到推送虚拟机所在的子网的数据通道,从而实现主靶场到推送虚拟机的数据传输,最后,将主靶场业务网的服务器映射到目标网络中,并通过数据传输通道发送代理程序安装包和配置文件,从而安装启动代理程序,实现能够将命令和参数发布给相关的虚拟机的代理程序,支持将远程命令分发到主靶场和分靶场的虚拟机进行调度执行,能够结合交互设备的输入情况进行编码,达到提升编码速度和交互流畅度的目的。
在一些实施例中,主靶场业务网还包括外部接口,外部接口用于在预编排模式下,接收外部终端发送的多个命令,并根据多个命令生成第三远程命令执行请求,从而可以根据外部接口直接构造命令数据,调用结果执行等操作,提高用户操作效率,并且可以向攻防武器工具自动组装运行等功能提供支持,扩宽应用场景。
在一些实施例中,预编排模式具体用于:在前端页面接收用户编排得到的要执行的多个命令;根据多个命令创建命令执行工作流;确定命令执行工作流的执行方式和靶场中节点的输入输出关系,其中,执行方式包括多个命令的串行执行、并行执行和串并行执行;并对命令执行工作流的命令数据、执行方式和靶场中节点的输入输出关系进行编排,从而构造得到统一的工作流数据,即,第一远程命令执行请求。
在一些实施例中,交互模式具体用于:在连接到目标虚拟机的情况下,在前端页面创建交互对话框,从而能够实时接收用户输入的指令,实现用户与分布异构靶场的实时交互;当接收到用户在交互对话框编排的远程命令,创建对应远程命令的任务会话,并将远程命令发送到目标虚拟机的代理程序;接收远程命令的执行结果,并展示到任务会话的界面;当接收到用户的任务结束请求,关闭交互对话框。
需要说明的是,交互模式中每个任务仅支持对单个虚拟机执行单个命令,执行后提供交互式输入输出对话框,用户可以通过该对话框实时输入命令,查看命令执行结果。
下面通过一个示例对本申请的虚拟机远程命令交互方法进行说明。
示例一:
示例一为本申请实施例提供的虚拟机远程命令交互方法的具体流程:
参照图8,图8是本申请实施例提供的分布异构靶场的系统架构图;
在一些实施例中,分布异构靶场包括主靶场600和分靶场700,主靶场600和分靶场700均包括至少一个虚拟机,分靶场700通过主靶场600与主靶场业务网连接,主靶场业务网用于向用户提供对虚拟机的远程命令调度执行服务。
可以理解的是,不同网络靶场的数据互通通过代理程序的自动下发实现,并且主靶场业务网设置有服务器集群,该服务器集群用于向目标虚拟机推送并代理程序,下面以图8系统架构为基础,对虚拟机远程命令交互方法进行具体说明。
步骤一:查询可操作的虚拟机信息,通过靶场接口获取可以下发命的虚拟机信息;
需要说明的是,可操作性的虚拟机信息可以为通过接受用户的查询请求进行查询得到,也可以为分布异构靶场中原始存储的虚拟机信息,本实施例不做具体限制。
步骤二:构造远程命令执行请求,其中,用户可以通过前端页面选择要下发执行远程命令的虚拟机,配置要下发执行的命令和参数;
需要说明的是,系统支持预编排和交互两种模式,预编排模式支持通过前端页面编排要执行的多个命令,创建命令执行工作流,支持串行、并行执行模式及其组合,支持设置命令节点间的输入输出关系,编排完成后生成统一的工作流数据;交互模式中的每个任务仅支持对单个虚拟机执行单个命令,执行后提供交互式输入输出对话框,用户可以通过该对话框实时输入命令,查看命令执行结果。
值得注意的是,系统同时提供预编排模式的外部接口,外部模块可以直接构造命令数据,调用结果执行。
步骤三:命令下发执行,将远程命令执行请求下发到命令调度执行子模块,命令调度执行子模块首先检查需要执行命令的虚拟机是否已经安装代理程序,如已全部安装代理程序,直接转步骤五,否则执行步骤四;
步骤四:安装配置代理程序,从目标网络中选择主靶场虚拟机所在子网,调用主靶场接口开通数据通道,将服务器端口映射到目标网络中,然后向虚拟机推送代理程序安装包和配置文件,安装启动代理程序;
需要说明的是,当安装过程出现错误,则直接向用户返回失败。
值得注意的是,在分布异构靶场环境下,对于分配在主靶场的虚拟机,可以直接调用靶场接口推送文件,下发命令执行代理程序的安装部署;对于分靶场的虚拟机,需要先选择在目标网络中网络可以联通的主靶场虚拟机作为代理虚拟机,通过该代理虚拟机内的代理程序,远程拷贝文件到分靶场虚拟机,下发命令执行安装部署。
步骤五:命令调度运行,将命令请求下发到对应虚拟机的代理程序,接收汇总各个代理程序返回的执行结果,处理执行超时等异常情况;
需要说明的是,预编排模式由虚拟机代理程序解析和调度运行命令执行工作流,执行完成后将结果返回给用户。交互模式为任务创建会话,持续将命令执行的输出流返回给用户,同时将用户的输入发送到对应虚拟机的代理程序,由虚拟机代理程序发送到对应命令执行进程的输入流。
步骤六:命令执行结束,返回执行结果。预编排模式执行结束后直接返回结果,任务结束;交互模式下用户待主动关闭会话,或输入退出命令后结束任务。
可以理解的是,请求数据和执行结果同时保存到数据库,提供查询接口支持查询。
在一些实施例中,虚机代理程序安装部署在靶场的虚拟机中,通过数据通道和远程命令执行服务器建立网络连接,接收服务器指令,调用本机系统接口执行下发的命令,将执行结果返回给服务器。预编排模式下,虚机代理程序解析下发的命令执行工作流并调度执行对应命令,所有命令执行完成后向服务器返回执行结果。交互模式下,命令执行后异步读取输出流,返回给服务器,同时接收服务器下发的后续命令,写入对应命令进程的输入流,收到任务结束通知后关闭命令执行进程,或检测到命令执行进程退出,任务结束。
可以理解的是,本实施例支持将远程命令分发到主靶场和分靶场的虚机调度执行,返回执行结果,并且支持预编排远程命令执行工作流,支持多个命令的串行、并行执行及其组合,提供外部调用接口。
本申请实施例的还提供了虚拟机远程命令交互装置,包括至少一个处理器和用于与至少一个处理器通信连接的存储器;存储器存储有能够被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行前述的虚拟机远程命令交互方法。
参照图9,以虚拟机远程命令交互装置1000中的控制处理器1001和存储器1002可以通过总线连接为例。存储器1002作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器1002可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器1002可选包括相对于控制处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至编码装置1000。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本领域技术人员可以理解,图9中示出的装置结构并不构成对虚拟机远程命令交互装置1000的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本申请实施例的还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,被图7中的一个控制处理器1001执行,可使得上述一个或多个控制处理器执行上述方法实施例中的虚拟机远程命令交互方法。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (10)

1.一种分布异构靶场的虚拟机远程命令交互方法,其特征在于,所述分布异构靶场包括主靶场和分靶场,所述主靶场和所述分靶场均包括至少一个虚拟机,所述分靶场通过所述主靶场与主靶场业务网连接,所述主靶场业务网用于向用户提供对所述虚拟机的远程命令调度执行服务;
所述方法包括:
接收用户的查询请求并返回可接收远程命令的虚拟机的虚拟机信息,所述虚拟机信息用于供用户从所述虚拟机中选出需要下发远程命令的目标虚拟机;
接收用户通过前端页面下发的远程命令执行请求,所述远程命令执行请求用于向用户指定的目标虚拟机下发远程命令,所述前端页面支持预编排模式和交互模式,所述预编排模式用于根据用户的多个命令创建命令执行工作流,生成第一远程命令执行请求,所述交互模式用于向用户提供交互对话框,所述交互对话框用于每次接收用户的单个远程命令并生成第二远程命令执行请求;
检查全部所述目标虚拟机是否安装有代理程序,当所述目标虚拟机未安装所述代理程序,通过所述主靶场业务网的服务器端口向所述未安装所述代理程序的所述目标虚拟机部署所述代理程序;
在全部所述目标虚拟机安装有所述代理程序的情况下,将所述远程命令执行请求下发到所述目标虚拟机中的所述代理程序,并接收所述代理程序返回的远程命令执行结果,其中,所述第一远程命令执行请求的执行结果对应所述命令执行工作流的执行结果,所述第二远程命令执行请求的执行结果对应所述单个远程命令的执行结果。
2.根据权利要求1所述的虚拟机远程命令交互方法,其特征在于,所述通过所述主靶场业务网的服务器端口向所述未安装所述代理程序的所述目标虚拟机部署所述代理程序,包括:
确定所述分布异构靶场所在的目标网络;
将所述主靶场业务网的服务器端口映射到所述目标网络中;
通过所述服务器端口向未安装所述代理程序的所述目标虚拟机推送并部署所述代理程序。
3.根据权利要求2所述的虚拟机远程命令交互方法,其特征在于,所述通过所述服务器端口向未安装所述代理程序的所述目标虚拟机推送并部署所述代理程序,包括:
当未安装所述代理程序的所述目标虚拟机所在的靶场为所述主靶场,调用所述主靶场的靶场接口推送并部署所述代理程序;
当未安装所述代理程序的所述目标虚拟机所在的靶场为所述分靶场,选择所述分靶场中联通所述主靶场的代理虚拟机,通过所述代理虚拟机推送并部署所述代理程序,所述代理虚拟机中已部署有代理程序。
4.根据权利要求3所述的虚拟机远程命令交互方法,其特征在于,所述推送并部署所述代理程序,包括:
向未安装所述代理程序的所述目标虚拟机推送程序安装包和配置文件;
在确认未安装所述代理程序的所述目标虚拟机成功接收所述程序安装包和所述配置文件后,下发部署命令执行安装部署。
5.根据权利要求2所述的虚拟机远程命令交互方法,其特征在于,所述将所述主靶场业务网的服务器端口映射到所述目标网络中,包括:
选择所述主靶场中的一个虚拟机作为推送虚拟机,并确定所述推送虚拟机所在的子网;
调用所述主靶场的数据传输接口开通到所述推送虚拟机所在的子网的数据通道;
将所述主靶场业务网的服务器端口映射到所述目标网络中,并通过所述数据传输通道发送所述代理程序的程序安装包和配置文件。
6.根据权利要求1所述的虚拟机远程命令交互方法,其特征在于,所述主靶场业务网还包括外部接口,所述外部接口用于在所述预编排模式下,接收外部终端发送的多个命令,并根据多个命令生成第三远程命令执行请求。
7.根据权利要求1所述的虚拟机远程命令交互方法,其特征在于,所述预编排模式具体用于:
在所述前端页面接收用户编排得到的要执行的多个命令;
根据所述多个命令创建命令执行工作流;
确定所述命令执行工作流的执行方式和靶场中节点的输入输出关系,所述执行方式包括多个命令的串行执行、并行执行和串并行执行;
根据所述命令执行工作流的命令数据、执行方式和靶场中节点的输入输出关系构造所述第一远程命令执行请求。
8.根据权利要求1所述的虚拟机远程命令交互方法,其特征在于,所述交互模式具体用于:
在连接到所述目标虚拟机的情况下,在所述前端页面创建所述交互对话框;
当接收到用户在所述交互对话框编排的远程命令,创建对应所述远程命令的任务会话,并将所述远程命令发送到所述目标虚拟机的代理程序;
接收所述远程命令的执行结果,并展示到所述任务会话的界面;
当接收到用户的任务结束请求,关闭所述交互对话框。
9.一种虚拟机远程命令交互装置,其特征在于,包括至少一个处理器和用于与所述至少一个处理器通信连接的存储器;所述存储器存储有能够被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至8中任意一项所述的虚拟机远程命令交互方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至8中任意一项所述的虚拟机远程命令交互方法。
CN202310262045.5A 2023-03-09 2023-03-09 分布异构靶场的虚拟机远程命令交互方法、装置及介质 Pending CN116414521A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310262045.5A CN116414521A (zh) 2023-03-09 2023-03-09 分布异构靶场的虚拟机远程命令交互方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310262045.5A CN116414521A (zh) 2023-03-09 2023-03-09 分布异构靶场的虚拟机远程命令交互方法、装置及介质

Publications (1)

Publication Number Publication Date
CN116414521A true CN116414521A (zh) 2023-07-11

Family

ID=87052468

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310262045.5A Pending CN116414521A (zh) 2023-03-09 2023-03-09 分布异构靶场的虚拟机远程命令交互方法、装置及介质

Country Status (1)

Country Link
CN (1) CN116414521A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117035277A (zh) * 2023-07-12 2023-11-10 博智安全科技股份有限公司 靶场级联方法、装置、系统及存储介质
CN117272284A (zh) * 2023-09-13 2023-12-22 河北纬坤电子科技有限公司 应用程序的管控系统、方法、应用服务器及介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117035277A (zh) * 2023-07-12 2023-11-10 博智安全科技股份有限公司 靶场级联方法、装置、系统及存储介质
CN117035277B (zh) * 2023-07-12 2024-07-19 博智安全科技股份有限公司 靶场级联方法、装置、系统及存储介质
CN117272284A (zh) * 2023-09-13 2023-12-22 河北纬坤电子科技有限公司 应用程序的管控系统、方法、应用服务器及介质
CN117272284B (zh) * 2023-09-13 2024-04-12 河北纬坤电子科技有限公司 应用程序的管控系统、方法、应用服务器及介质

Similar Documents

Publication Publication Date Title
US10754631B2 (en) Tenant upgrade analytics
CN106844198B (zh) 一种分布式调度自动化测试平台及方法
CN116414521A (zh) 分布异构靶场的虚拟机远程命令交互方法、装置及介质
US8290998B2 (en) Systems and methods for generating cloud computing landscapes
CN112491606B (zh) 一种基于ansible的自动化部署业务系统高可用集群的方法
US7131123B2 (en) Automated provisioning of computing networks using a network database model
US7475126B2 (en) Method and apparatus for system lineup and testing
US8713177B2 (en) Remote management of networked systems using secure modular platform
US8250570B2 (en) Automated provisioning framework for internet site servers
CN110658794B (zh) 一种制造执行系统
US20110289354A1 (en) Distributed Batch Runner
US11461206B2 (en) Cloud simulation and validation system
CN101719097A (zh) 自动化测试脚本的调试方法、系统和自动化应用服务器
US7434041B2 (en) Infrastructure for verifying configuration and health of a multi-node computer system
CN111400041A (zh) 服务器配置文件的管理方法、装置及计算机可读存储介质
CN112286665A (zh) 自动化任务发放方法、执行方法、设备及存储介质
CN115454333A (zh) 云计算平台与存储系统的对接方法及装置
CN114356521A (zh) 任务调度方法、装置、电子设备及存储介质
CN111865868A (zh) 跨网络区域服务调用方法及系统
CN111800511B (zh) 同步登录态的处理方法、系统、设备及可读存储介质
CN108053288B (zh) 一种业务编排下发的方法及装置
US11256575B2 (en) Methods, electronic devices and computer program products for managing and performing data backup jobs
CN109688011B (zh) 一种基于OpenStack的agent选择方法及装置
CN114217843A (zh) 系统的运维方法、装置及服务器
CN115766439A (zh) Kvm设备批量升级方法、装置和电子设备

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