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

1.隧道介绍

Chisel是利用一个快速稳定的TCP/UDP隧道工具,该工具基于HTTP实现 ,加检测并通过SSH加密保证通信安全。密实Chisel可以进行端口转发 、隧道反向端口转发以及SOCKS流量代理 ,分析使用GO语言编写 ,利用具备较好的加检测跨平台特性。该工具的密实主要用于绕过防火墙 ,也可以用于向网络中提供安全终端节点 。隧道

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

2.隧道原理分析

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

图 1 隧道示意图

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

图 2 WebSocket协议升级

WebSocket协议是Http协议的补充,源码库相较于Http协议,WebSocekt实现了长连接、全双工通信通道 ,具有更高效的通信效率。chisel隧道中的WebSocket协议是基于”github.com/gorilla/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加密协商

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

图 5 等待转发流量

3.隧道检测

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

图 6 chisel检出结果

4.总结

利用chisel工具搭建HTTP隧道 ,攻击者可以将攻击流量加密隐藏在隧道之中 ,从而规避流量监测设备,大幅度降低被发现的可能性 。目前 ,越来越多的攻击者开始利用隐蔽隧道,来提高攻击的服务器租用隐蔽性。建议安全人员保持对此类工具的密切跟踪研究 ,持续更新和学习新的检测技术和工具,力争在这类隐蔽隧道流量检测方面做出突破。

数据库
上一篇:如何使用免费网络安全工具Canary Tokens查明黑客何时访问了您的文件?
下一篇:Web和移动安全之​​Web PKI和HTTPS