利用SSH加密实现的HTTP隧道分析与检测

安全 应用安全
WebSocke连接建立后,Chisel工具会在WebSocket信道内进行SSH加密协商,协商中SSH的版本信息为“SSH-chisel-v3-server”。和WebSocke升级协议类似,其中包含了chisel工具的特征字符串,可以通过该特征实现检测,但该特征也较易被攻击者抹去。

Chisel是一个快速稳定的TCP/UDP隧道工具,该工具基于HTTP实现,并通过SSH加密保证通信安全。Chisel可以进行端口转发、反向端口转发以及SOCKS流量代理,使用GO语言编写,具备较好的跨平台特性。

在实际应用中,Chisel工具可以用于向网络中提供安全终端节点,但是也可用于绕过防火墙。如果攻击者利用Chisel工具搭建HTTP隧道,就可以将攻击流量加密隐藏在隧道之中,从而规避流量监测设备,大幅度降低被发现的可能性。观成科技的安全研究人员发现,目前有越来越多的攻击者开始利用隐蔽隧道,来提高攻击的隐蔽性。

在网络攻防的实战对抗中,当攻击者获得资产控制权后,需要建立失陷资产与外部控制端的通信通道,为了有效躲避IPS、WAF、全流量检测等安全设备,常使用加密通道、隐蔽隧道等。Chisel可以将木马回连的通信流量隐藏在HTTP协议中,并通过SSH进行加密,保证了通信流量的隐蔽性和安全性。该工具还支持websocket协议,有效地提升了通信信息的交换效率。

隧道的搭建需要客户端和服务端两端,客户端负责接收待转发的数据,解析后将数据利用ssh进行加密、封装成HTTP/WebSocekt(s)协议发送到服务端,服务端接收后解析成原始流量并转发。

图 1 隧道示意图图 1 隧道示意图

隧道搭建时,客户端会率先向服务端建立WebSocket连接,在WebSocket协议升级中,包含隧道工具的版本信息“chisel-v3”。利用该特征可以对隧道流量进行有效检出,但有经验的攻击者往往会抹除该特征,规避检测。

图 2 WebSocket协议升级图 2 WebSocket协议升级

WebSocket协议是Http协议的补充,相较于Http协议,WebSocekt实现了长连接、全双工通信通道,具有更高效的通信效率。Chisel隧道中的WebSocket协议是基于"github.com/gorilla/websocket"包实现的。

图 3 WebSocket实现图 3 WebSocket实现

WebSocke连接建立后,Chisel工具会在WebSocket信道内进行SSH加密协商,协商中SSH的版本信息为“SSH-chisel-v3-server”。和WebSocke升级协议类似,其中包含了chisel工具的特征字符串,可以通过该特征实现检测,但该特征也较易被攻击者抹去。

Chisel工具中实现SSH协商是基于GO语言的默认库"golang.org/x/crypto/ssh",这也导致SSH协商产生的指纹为GO语言的默认指纹。

图 4 SSH加密协商图 4 SSH加密协商

SSH加密协商后,Chisel客户端会持续监听,接收待转发流量,ssh加密后发送到服务端。目前该工具支持的转发协议包括:SOCKS、UDP、TCP。

图 5 等待转发流量图 5 等待转发流量

根据以上分析结果,企业组织通过利用主动探测、特征匹配、异常HTTP协议筛查、SSH指纹筛查等多种检测方法,实现对chisel隧道的有效检测。

图 6 Chisel检出结果

责任编辑:武晓燕 来源: 安全牛
相关推荐

2023-10-26 14:23:26

2024-01-17 12:01:06

2011-03-02 16:43:25

2009-12-18 16:12:11

Ruby加密

2024-01-06 10:26:04

2013-04-22 10:07:08

2023-08-01 07:48:12

2009-09-09 18:35:07

C# 加密MD5和SHA1

2009-12-28 14:00:46

2024-01-09 12:05:24

SSH协议端口

2009-09-04 16:45:44

C# DES算法加密解

2010-01-27 13:28:07

SSH网络安全连接FUSE

2017-10-10 12:40:13

SSHTCPOpenSSH

2021-01-29 11:43:53

SSHLinux命令

2015-10-19 10:11:50

2011-11-25 13:14:16

2011-03-17 15:16:38

2014-07-15 09:46:04

2022-04-08 10:09:41

Linux技术

2009-08-25 17:12:33

思科认证CCNP
点赞
收藏

51CTO技术栈公众号