基于Gost工具的ICMP隐蔽隧道通信分析
2023-2-2 10:1:54 Author: 红队蓝军(查看原文) 阅读量:29 收藏

1.概述

近期,观成科技安全研究团队在现网中检测到了利用Gost工具实现加密隧道的攻击行为。Gost是一款支持多种协议的隧道工具,使用go语言编写。该工具实现了多种协议的隧道通信方法,例如TCP/UDP协议,WebsocketHTTP/2QUICTLS等。

202211月,Gost更新了V3新版本,在新版本中新增了ICMP隧道功能。ICMP隧道是利用ICMP协议的Echo类型报文(ping命令所采用)进行数据传输,GostICMP之上利用QUIC协议来实现安全可靠的数据传输,因此该ICMP隧道可以看作是QUIC-over-ICMP数据通道。QUIC协议是一种加密协议,所以该隧道也是一种加密隧道。

2.隧道原理分析

隧道的搭建需要客户端和服务端两端,客户端负责接收socks5代理协议,解析后将数据封装成ICMP协议发送到服务端,服务端接收后解析成原始流量并转发。

1 隧道示意图

ICMP隧道传输的数据,由两部分构成:MessageHeaderQUIC数据。MessageHeader的长度固定10个字节,前四个字节存放magicNumber,默认为固定字符串“GOST”,最后两字节存放后续载荷的长度。

2MessageHeader构成

QUIC协议是一种基于UDP的低时延的互联网传输层加密协议,和TLS类似,使用加密握手来完成密钥交换。ICMP隧道中的QUIC数据是基于quic-go包实现的。

3 QUIC实现

ICMP隧道的流量数据中,紧随MessageHeader之后,就是QUIC数据。隧道中传输的QUIC数据舍弃了QUIC协议的公共包头,直接传输QUIC协议的帧包。根据帧包的格式解析,第一个字节为帧类型,用来解释帧包的属性。下图流量中,帧类型为0xC311000011B),最高位“1”表示这是一个STREAM帧,用来进行数据传输。

4STREAM帧包

下图数据包中的帧类型为0x4D01001101B),最高两位“01”表示这是一个ACK帧,用来保证数据传输的可靠性。

5 ACK帧包

QUIC协议是一种加密协议,通过流量无法直接观察数据内容。但是从流量数据包的长度上看,ACK帧的长度远小于STREAM帧,而常规的ICMP协议的Echo类型报文数据长度往往都是相同的。

6 数据包长度特征

3.产品检测

观成瞰云(ENS-加密威胁智能检测系统能够对GOST工具产生的ICMP隐蔽隧道流量进行检测。

4.总结

利用Gost工具搭建ICMP隧道,攻击者可以将攻击流量隐藏在隧道之中,从而规避流量监测设备,大幅度降低被发现的可能性。目前,越来越多的攻击者利用ICMPDNS等协议来实现隐蔽隧道加密通信,我们将会保持对此类工具的密切跟踪和研究。

wx

webshell

PPL

360

webshell

64使

webshell

360+


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NDY2MTQ1OQ==&mid=2247506661&idx=1&sn=d95627732aa1086cbcc5a3fe9b7976a8&chksm=ce676059f910e94f02128ce095dc78371eabe87a7b3d8087c169d7fc20837c850eb5c2e1b98b#rd
如有侵权请联系:admin#unsafe.sh