一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

反弹shell行为的检测方法、系统、存储介质和终端与流程

2023-02-02 01:43:46 来源:中国专利 TAG:


1.本技术涉及数据存储领域,特别涉及一种反弹shell行为的检测方法、系统、存储介质和终端。


背景技术:

2.在内网渗透中,为了绕过防火墙端口策略,黑客会使用反弹shell达到控制内网主机的目的。反弹shell就是控制端监听在某tcp/udp端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。反弹shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。通常用于被控端因防火墙受限、权限不足、端口被占用等情形。ssh(secure shell,安全外壳协议)反弹shell则是基于ssh协议的搭建反弹shell方式,相比于其他协议的反弹shell,ssh会自动加密和解密所有ssh客户端与服务端之间的流量,从而有效避免被防火墙检测。而且基本所有linux服务器会搭载ssh协议应用,为ssh反弹shell广泛使用提供基本条件。
3.当前主要采用基于终端进程信息的方式进行检测,需要对搭载ssh协议的主机或服务器进行监控,当其产生搭建ssh反弹shell命令行时,即判断此主机具有ssh反弹shell行为,但该方式主要只能对linux系统的主机进行检测,对于windows端自定义的ssh软件,无法捕获到其中执行的命令,容易存在内网windows主机执行ssh反弹shell被漏报的情况。
4.因此,如何提高对ssh反弹shell的检测效率是本领域技术人员亟需解决的技术问题。


技术实现要素:

5.本技术的目的是提供一种反弹shell行为的检测方法、系统、存储介质和终端,能够提高对ssh反弹shell的检测效率。
6.为解决上述技术问题,本技术提供一种反弹shell行为的检测方法,具体技术方案如下:
7.获取安全外壳协议ssh连接中反向传输层中的数据包;
8.确定所述数据包包含的数据包类型;
9.若各所述数据包的数据大小均满足其所属数据包类型对应的阈值区间,确定存在反弹shell行为。
10.可选的,获取安全外壳协议ssh连接中反向传输层中的数据包之前,还包括:
11.确认搭建成功的安全外壳协议ssh连接;
12.检测所述安全外壳协议ssh连接包含的反向安全外壳协议ssh连接,并将所述反向安全外壳协议ssh连接作为所述反向传输层。
13.可选的,获取安全外壳协议ssh连接中反向传输层中的数据包包括:
14.获取安全外壳协议ssh连接中反向传输层中的标识子串、算法协商数据包、密钥交换数据包和密钥确认数据包中的任一种或任意几种的组合。
15.可选的,若各所述数据包的数据大小均满足其所属数据包类型对应的阈值区间,确定存在反弹shell行为之前,还包括:
16.确定所述标识子串、所述算法协商数据包、所述密钥交换数据包和所述密钥确认数据包各自对应的阈值区间。
17.可选的,获取安全外壳协议ssh连接中反向传输层中的数据包包括:
18.在安全外壳协议ssh连接双方执行协议版本交换阶段,获取所述反向传输层中的所述标识子串;
19.在安全外壳协议ssh连接双方执行算法协商阶段,获取所述反向传输层中的所述算法协商数据包;
20.在安全外壳协议ssh连接双方执行密钥交换阶段,获取所述反向传输层中的所述密钥交换数据包和所述密钥确认数据包。
21.可选的,若各所述数据包的数据大小均满足其所属数据包类型对应的阈值区间,确定存在反弹shell行为包括:
22.若所述标识子串的数据包大小满足第一阈值区间,对所述算法协商数据包进行数据包大小检测;
23.若所述算法协商数据包的数据包大小满足第二阈值区间,对所述密钥交换数据包进行数据包大小检测;
24.若所述密钥交换数据包的数据包大小满足第三阈值区间,对所述密钥确认数据包进行数据包大小检测;
25.若所述密钥交换数据包的数据包大小满足第四阈值区间,确认所述存在反弹shell行为。
26.可选的,获取安全外壳协议ssh连接中反向传输层中的数据包包括:
27.获取安全外壳协议ssh连接中的所有数据包;
28.检测各所述数据包的数据包传输方向;
29.根据所述数据包传输方向确定反向传输层中的数据包。
30.本技术还提供一种反弹shell行为的检测系统,包括:
31.数据包获取模块,用于获取安全外壳协议ssh连接中反向传输层中的数据包;
32.数据包类型检测模块,用于确定所述数据包包含的数据包类型;
33.数据包大小检测模块,用于若各所述数据包的数据大小均满足其所属数据包类型对应的阈值区间,确定存在反弹shell行为。
34.可选的,还包括:
35.反向传输层确定模块,用于确认搭建成功的安全外壳协议ssh连接;检测所述安全外壳协议ssh连接包含的反向安全外壳协议ssh连接,并将所述反向安全外壳协议ssh连接作为所述反向传输层。
36.本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
37.本技术还提供一种终端,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
38.本技术提供一种反弹shell行为的检测方法,包括:获取安全外壳协议ssh连接中
反向传输层中的数据包;确定所述数据包包含的数据包类型;若各所述数据包的数据大小均满足其所属数据包类型对应的阈值区间,确定存在反弹shell行为。
39.本技术通过抓取一系列ssh数据包特征,匹配ssh反弹shell搭建过程中的特定行为,达到检测加密ssh流量中的反弹shell的目的。无需依赖于终端进程信息,无需对终端命令行中的ssh反弹shell命令进行检测,完全通过流量侧的方式检测ssh反弹shell行为。其次,本技术不依赖于ssh协议特定字段,无需对ssh加密后流量进行解密,只依据通过ssh会话反向传输层的数据包特征,即可对ssh反弹shell行为进行检测。由此可见,本技术提供了一种新型ssh反弹shell行为的检测方式,具有较强的普适性,便于广泛应用在各类设备。
40.本技术还提供一种反弹shell行为的检测系统、存储介质和终端,具有上述有益效果,此处不再赘述。
附图说明
41.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
42.图1为本技术实施例所提供的一种反弹shell行为的检测方法的流程图;
43.图2为本技术提供的ssh反弹shell的运行原理图;
44.图3为本技术提供的安全外壳协议ssh连接过程中的数据包交互顺序示意图;
45.图4为本技术实施例提供的反向发送数据包流程示意图;
46.图5为本技术实施例所提供的一种反弹shell行为的检测系统结构示意图;
47.图6为本技术实施例所提供的一种终端的结构示意图。
具体实施方式
48.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
49.参见图1,图1为本技术实施例所提供的一种反弹shell行为的检测方法的流程图,该方法包括:
50.s101:获取安全外壳协议ssh连接中反向传输层中的数据包;
51.s102:确定所述数据包包含的数据包类型;
52.s103:若各所述数据包的数据大小均满足其所属数据包类型对应的阈值区间,确定存在反弹shell行为。
53.为了更好的描述本技术所提供的反弹shell行为的检测方法,下文对安全外壳协议ssh连接反弹shell作相应说明。
54.参见图2,图2为本技术提供的ssh反弹shell的运行原理图,图1中,安全外壳协议ssh连接a为失陷主机端,由攻击者脚本建立的ssh加密连接,安全外壳协议ssh连接b则为攻击者机器在安全外壳协议ssh连接a下反向建立的安全外壳协议ssh连接,其最终目的为将
外网控制主机作为客户端shell,控制作为服务端shell的内网失陷主机。
55.参见图3,图3为本技术提供的安全外壳协议ssh连接过程中的数据包交互顺序示意图,其主要包含如下三个过程:
56.1)协议版本交换:当安全外壳协议ssh连接被建立后,安全外壳协议ssh连接双方都必须发送一个标识子串。具体流程为由客户端先发送ssh protocol数据包至服务端,服务端再返回一个ssh protocol数据包至客户端。
57.在此对于标识子串的具体格式不作限定,一种可行的格式可以如下:ssh-protoversion-softwareversion sp comments cr lf,其可由ssh版本号、自定义信息、空格、注释等内容构成。
58.2)算法协商:密钥协商过程从客户端和服务器相互发出key exchange init请求开始,主要是告诉对方自己支持的相关加密算法列表、mac算法列表等。具体流程为由客户端先发送kex init数据包至服务端,服务端再返回一个kex init数据包至客户端,kex init数据包即为算法协商数据包。
59.3)diffie-hellman密钥交换:此阶段由客户端发送dh_gex_init开始,至任何一方发送new_keys消息后结束。例如可由客户端先发送dh_gex_init数据包至服务端,服务端再返回一个dh_gex_reply数据包至客户端,最后由客户端发送new_keys至服务端结束。其中,dh_gex_init数据包为密钥交换数据包,而new_keys作为密钥确认数据包。
60.在步骤s101中,需要获取安全外壳协议ssh连接中反向传输层中的数据包。该过程默认事先或者在执行过程中确认了安全外壳协议ssh连接中的反向传输层。所谓反向传输层,可以先确认搭建成功的安全外壳协议ssh连接,再检测所述安全外壳协议ssh连接这一流量测包含的反向安全外壳协议ssh连接,即可将反向安全外壳协议ssh连接作为反向传输层。该反向传输层如图2中的安全外壳协议ssh连接b,其依旧处于安全外壳协议ssh连接a的流量侧,但实际其由外网控制主机通过漏洞利用脚本令内网失陷主机向外网控制主机建立的安全外壳协议ssh连接,则其流量传输路径可视为反向传输层。
61.其次,本实施例对于获取数据包的方式不作限定。在获取反向传输层中的数据包时,可以一次性获取,也可以多次获取不同传输过程的数据包。由上文可知,安全外壳协议ssh连接包含若干阶段,各阶段均存在双方的数据交互,涉及到相应的数据包交互,而本步骤仅关注反向传输层中的数据包,对于安全外壳协议ssh连接中数据包不作获取。
62.此外,本步骤对于获取何种数据包不作限定,可以获取安全外壳协议ssh连接中反向传输层中的标识子串、算法协商数据包、密钥交换数据包和密钥确认数据包中的任一种或任意几种的组合。具体过程可以如下:
63.s101a:在安全外壳协议ssh连接双方执行协议版本交换阶段,获取所述反向传输层中的所述标识子串;
64.s101b:在安全外壳协议ssh连接双方执行算法协商阶段,获取所述反向传输层中的所述算法协商数据包;
65.s101c:在安全外壳协议ssh连接双方执行密钥交换阶段,获取所述反向传输层中的所述密钥交换数据包和所述密钥确认数据包。
66.而在本技术的另一实施例中,在执行本步骤时,可以获取安全外壳协议ssh连接过程中的所有数据包,例如可以获取图2中安全外壳协议ssh连接a和安全外壳协议ssh连接b
的所有数据包,并对数据包进行方向检测,根据检测到的数据包传输方向从所有数据包中确定属于反向传输层的数据包。
67.在步骤s102中,需要确定获取到的数据包的数据包类型,对于步骤s101中获取的每个数据包,均需要确认其数据包类型。若是步骤s101执行多次,即多次获取反向传输层的数据包,则同样可以多次执行本步骤,以确定数据包的数据包类型。所谓数据包类型,指该数据包处于安全外壳协议ssh连接中的哪一阶段,在安全外壳协议ssh连接的不同阶段中,其数据包具有明显的特征差异。
68.在步骤s103中,对于数据包的数据大小与其所属数据包类型对应的阈值区间进行判断,若是数据包的数据大小均满足其所属数据包类型对应的阈值区间,可确认存在反弹shell行为。本步骤中,需要针对每一类型的数据包与对应的阈值区间进行比较,且不同的数据包类型对应的阈值区间存在差异。
69.容易理解的是,本实施例默认在本步骤前需要确认或者获取到各数据包类型对应的阈值区间,例如,若数据包包含标识子串、算法协商数据包、密钥交换数据包和密钥确认数据包,则可以在执行本步骤前,确定标识子串、算法协商数据包、密钥交换数据包和密钥确认数据包各自对应的阈值区间。以标识子串、算法协商数据包、密钥交换数据包和密钥确认数据包分别对应第一阈值区间、第二阈值区间、第三阈值区间和第四阈值区间为例,本步骤的执行过程可以具体如下:
70.若所述标识子串的数据包大小满足第一阈值区间,对所述算法协商数据包进行数据包大小检测;
71.若所述算法协商数据包的数据包大小满足第二阈值区间,对所述密钥交换数据包进行数据包大小检测;
72.若所述密钥交换数据包的数据包大小满足第三阈值区间,对所述密钥确认数据包进行数据包大小检测;
73.若所述密钥交换数据包的数据包大小满足第四阈值区间,确认所述存在反弹shell行为。
74.在此对于第一阈值区间、第二阈值区间、第三阈值区间和第四阈值区间均不作限定,且各阈值区间之间没有关系。一种可行的实施方式中,第一阈值区间t1、第二阈值区间t2、第三阈值区间t3和第四阈值区间t4可以分别为t1∈[50,150],t2∈[500,5000],t3∈[50,200],t4∈[50,150],单位为字节,本领域技术人员可以依据情况对第一阈值区间、第二阈值区间、第三阈值区间和第四阈值区间进行自定义设置和调整。
[0075]
上述过程中,对前一种数据包类型的数据包检测成功后,方才执行下一数据包的数据包大小检测,这是由于上述各数据包伴随着安全外壳协议ssh连接过程依次产生,可以实现安全外壳协议ssh连接运行过程中的实时检测,提高检测效率。若是在设备计算资源充足的条件下,也可以选择一次获取上述所有数据包类型的数据包,并执行不同数据包类型对应数据包的并行检测。
[0076]
本技术实施例通过抓取一系列ssh数据包特征,匹配ssh反弹shell搭建过程中的特定行为,达到检测加密ssh流量中的反弹shell的目的。无需依赖于终端进程信息,无需对终端命令行中的ssh反弹shell命令进行检测,完全通过流量侧的方式检测ssh反弹shell行为。其次,本技术不依赖于ssh协议特定字段,无需对ssh加密后流量进行解密,只依据通过
ssh会话反向传输层的数据包特征,即可对ssh反弹shell行为进行检测。由此可见,本技术提供了一种新型ssh反弹shell行为的检测方式,具有较强的普适性,便于广泛应用在各类设备。
[0077]
参见图4,图4为本技术实施例提供的反向发送数据包流程示意图,ssh反弹shell即是在一条已经搭建成功的安全外壳协议ssh连接a中,由作为服务端的外网控制主机向作为客户端的内网失陷主机发起一条安全外壳协议ssh连接b。而这条安全外壳协议ssh连接b在流量侧是同样显示在安全外壳协议ssh连接a之中。在安全外壳协议ssh连接a,外网控制主机作为服务端,而内网失陷主机作为客户端,为了搭建安全外壳协议ssh连接b,它们会反转连接顺序来搭建ssh传输。为此,本技术通过在安全外壳协议ssh连接a中,检测由外网控制主机向内网失陷主机发出的一系列传输层搭建数据包,以实现反弹shell行为的检测。
[0078]
图4中,安全外壳协议ssh连接a中的服务端向安全外壳协议ssh连接a中的客户端发送ssh protocol数据包,安全外壳协议ssh连接a中的客户端接收到ssh protocol数据包后向安全外壳协议ssh连接a中的服务端返回自身的ssh protocol数据包;
[0079]
此后,安全外壳协议ssh连接a中的服务端向安全外壳协议ssh连接a中的客户端发送kex init数据包,安全外壳协议ssh连接a中的客户端接收到kex init数据包后向安全外壳协议ssh连接a中的服务端返回包含自身支持的自己支持的相关加密算法列表、m安全外壳协议ssh连接a中的服务端c算法列表的kex init数据包;
[0080]
安全外壳协议ssh连接a中的服务端再向安全外壳协议ssh连接a中的客户端发送dh_gex_init数据包,用于实现密钥交换,安全外壳协议ssh连接a中的客户端再向安全外壳协议ssh连接a中的服务端发送dh_gex_reply数据包,最后安全外壳协议ssh连接a中的服务端返回new_keys,至此安全外壳协议ssh连接过程结束。
[0081]
本技术只需要检测上述过程中涉及到的数据包即可实现反弹shell行为的检测。
[0082]
参见图5,图5为本技术实施例所提供的的一种反弹shell行为的检测系统结构示意图,下面描述的反弹shell行为的检测系统与上文描述的反弹shell行为的检测方法可相互参考对照,该系统具体包括
[0083]
数据包获取模块,用于获取安全外壳协议ssh连接中反向传输层中的数据包;
[0084]
数据包类型检测模块,用于确定所述数据包包含的数据包类型;
[0085]
数据包大小检测模块,用于若各所述数据包的数据大小均满足其所属数据包类型对应的阈值区间,确定存在反弹shell行为。
[0086]
基于上述实施例,作为优选的实施例,还包括:
[0087]
反向传输层确定模块,用于确认搭建成功的安全外壳协议ssh连接;检测所述安全外壳协议ssh连接包含的反向安全外壳协议ssh连接,并将所述反向安全外壳协议ssh连接作为所述反向传输层。
[0088]
基于上述实施例,作为优选的实施例,获取安全外壳协议ssh连接中反向传输层中的数据包包括:
[0089]
获取安全外壳协议ssh连接中反向传输层中的标识子串、算法协商数据包、密钥交换数据包和密钥确认数据包中的任一种或任意几种的组合。
[0090]
基于上述实施例,作为优选的实施例,若各所述数据包的数据大小均满足其所属数据包类型对应的阈值区间,确定存在反弹shell行为之前,还包括:
[0091]
确定所述标识子串、所述算法协商数据包、所述密钥交换数据包和所述密钥确认数据包各自对应的阈值区间。
[0092]
基于上述实施例,作为优选的实施例,获取安全外壳协议ssh连接中反向传输层中的数据包包括:
[0093]
在安全外壳协议ssh连接双方执行协议版本交换阶段,获取所述反向传输层中的所述标识子串;
[0094]
在安全外壳协议ssh连接双方执行算法协商阶段,获取所述反向传输层中的所述算法协商数据包;
[0095]
在安全外壳协议ssh连接双方执行密钥交换阶段,获取所述反向传输层中的所述密钥交换数据包和所述密钥确认数据包。
[0096]
基于上述实施例,作为优选的实施例,数据包大小检测模块包括:
[0097]
第一检测模块,用于若所述标识子串的数据包大小满足第一阈值区间,对所述算法协商数据包进行数据包大小检测;
[0098]
第二检测模块,用于若所述算法协商数据包的数据包大小满足第二阈值区间,对所述密钥交换数据包进行数据包大小检测;
[0099]
第三检测模块,用于若所述密钥交换数据包的数据包大小满足第三阈值区间,对所述密钥确认数据包进行数据包大小检测;
[0100]
行为确认模块,用于若所述密钥交换数据包的数据包大小满足第四阈值区间,确认所述存在反弹shell行为。
[0101]
本技术还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的方法的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0102]
本技术还提供了一种终端,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的方法的步骤。当然所述终端还可以包括各种网络接口,电源等组件。请参见图6,图6为本技术实施例所提供的一种终端的结构示意图,本实施例的终端可以包括:处理器2101和存储器2102。
[0103]
可选的,该终端还可以包括通信接口2103、输入单元2104和显示器2105和通信总线2106。
[0104]
处理器2101、存储器2102、通信接口2103、输入单元2104、显示器2105、均通过通信总线2106完成相互间的通信。
[0105]
在本技术实施例中,该处理器2101,可以为中央处理器(central processing unit,cpu),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。
[0106]
该处理器可以调用存储器2102中存储的程序。具体的,处理器可以执行上文的实施例中终端所执行的操作。
[0107]
存储器2102中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本技术实施例中,该存储器中至少存储有用于实现以下功
能的程序:
[0108]
在一种可能的实现方式中,该存储器2102可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能所需的应用程序等;存储数据区可存储根据计算机的使用过程中所创建的数据。
[0109]
此外,存储器2102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
[0110]
该通信接口2103可以为通信模块的接口,如gsm模块的接口。
[0111]
本技术还可以包括显示器2105和输入单元2104等等。
[0112]
图6所示的终端的结构并不构成对本技术实施例中终端的限定,在实际应用中终端可以包括比图6所示的更多或更少的部件,或者组合某些部件。
[0113]
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0114]
本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
[0115]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献