【观成科技】“银狐”的UDP暗道:加密通信机制的对抗与升级

一、概述

此前,观成安全研究团队已发布多篇银狐木马分析报告,所涉样本的通信方式大多基于 TCP 自定义加密协议。而近期,我们注意到采用 UDP 自定义加密协议通信的银狐木马整体活跃度显著上升。深入分析发现,其通信机制与以往样本差异明显,不仅体现在先握手、后传输的两阶段通信模式上,密钥派生逻辑与数据包格式也均有较大调整。我们从通信交互流程、数据格式、加密算法等维度,对基于UDP的银狐木马通信机制进行全面剖析。

二、通信 机制分析

该类银狐变种使用UDP自定义加密协议进行通信,整体采用先握手、后传输的两阶段通信模式。由于原生UDP协议是一种"尽力而为"的传输协议,本身不提供数据包的送达确认或丢失重传机制,为实现可靠通信,该样本在应用层参考TCP的可靠性设计,自行构建了一套确认(ACK)与重传机制。 因此,在下文描述的交互流程中会出现类似TCP的确认包和超时重传逻辑。

交互流程上,双方通过四步握手交换Session ID,随后进入加密数据传输阶段;数据格式上,握手阶段为12字节固定结构,数据传输阶段为24字节头部加可变载荷;加密算法上,采用XOR动态密钥加密,即"一会话一密钥"。以下将对这三部分展开详细分析。

  • 通信交互流程

该类银狐木马的通信交互流程如图1所示。

1 握手和数据传输阶段通信交互流程

第一阶段为握手阶段:

  1. 第一步,客户端向服务端发送握手请求。客户端生成自身的LocalID,由于此时是初次请求,对端标识未知,因此RemoteID字段置为0x00000000。若未收到服务端的响应,则进行重传,重传上限为10次。
  2. 第二步,服务端向客户端发送握手响应。服务端收到请求后生成自身的LocalID,首次响应中仅宣告该ID,RemoteID字段置为0x00000000,而重传时则将客户端的LocalID填入RemoteID进行回显。
  1. 第三步,客户端向服务端发送会话确认。该包中LocalID仍为客户端自身LocalID,RemoteID填入服务端LocalID进行回显,完成客户端侧的双向确认。该确认包连续发送3次,间隔10毫秒。
  2. 第四步,服务端向客户端发送握手确认。服务端收到会话确认后,LocalID为服务端自身LocalID,RemoteID填入客户端LocalID进行回显。至此,双方均完成对对方身份的确认,握手阶段正式结束,各自记录对端LocalID。

第二阶段为数据传输阶段:

  1. 第一条流,握手完成后,客户端首先向服务端发送载荷请求,服务端收到后回复 ACK 确认,随后下发相应的载荷数据。
  2. 第二条流,在握手完成后,客户端会主动发送包含主机信息的上线数据包。
  3. 后续交互中,服务端可根据需要继续下发控制指令,客户端按指令执行相应操作。
  • 数据格式分析
  • 握手阶段数据格式

握手阶段的数据包固定为12字节,由五个字段构成。起始2字节为Magic协议魔数,固定值为0x4FBB。随后为1字节的Flag1标志位(恒为0x01)和1字节的Flag2标志位,其中Flag2取值0x00表示请求或响应,0x01表示确认,用于区分握手子类型。最后8字节为会话标识,其中LocalID由发送方生成(客户端通过GetTickCount异或常量产生,服务端自行生成),RemoteID用于回显对端LocalID,初次请求时置为0,后续填入对端ID完成身份确认。

2 握手阶段数据格式

3 握手阶段流量数据

握手阶段的Session ID(即客户端生成的LocalID)生成逻辑如图4所示:将系统启动时间与常量0x5A3C7B1D进行异或运算,若运算结果为0则使用默认值0x12345678,否则直接作为Session ID。

4 Session ID 生成逻辑

​​​​​​​数据传输阶段格式

数据传输阶段的数据包由24字节固定头部和可变载荷构成。头部前4字节为SessionID(即自身LocalID),用于标识会话。随后1字节为Type字段,用于区分包类型(详见下表)。接下来的字段依次为:1字节Flags、2字节Window(接收窗口),以及各4字节的Token、Seq和Ack,其中Token字段由发送端基于当前时间戳生成,用于标识DATA包,并在ACK包中原样回显,从而使发送端能够比对时间差,计算往返时延(RTT)及重传超时(RTO)。最后4字节为PayloadLen,取0时表示控制包,大于0时表示DATA包载荷长度。载荷位于头部之后,仅DATA包携带,承载实际通信数据。

1 Type字段 说明

|-----------|------------|--------------------|--------------------------|
| | 名称 | 载荷 | 说明 |
| 0x51 | DATA | 有(PayloadLen > 0) | 承载实际通信数据 |
| 0x52 | ACK | 无(PayloadLen = 0) | 确认数据包接收成功 |
| 0x53 | SACK | 无(PayloadLen = 0) | 反馈已收分片状态及缺片区间,触发缺失分片重传 |
| 0x54 | NAK | 无(PayloadLen = 0) | 指示数据包接收失败(未收到或校验错误),请求重传 |

5 数据传输阶段数据格式

6 数据传输阶段流量数据

数据传输阶段包类型的选择如下图所示。

7 数据传输阶段包类型的选择

  • 加密算法 分析

通信数据采用XOR动态密钥加密,每个会话独立使用一个密钥。加密载荷格式如下:前4字节为加密的长度字段,解密后获得后续实际数据长度;其后10字节为密钥派生种子,其中前4字节为随机生成的随机值,后6字节为固定常量,派生算法为 "keyi % key0 + key1",将密钥种子逐字节代入得到最终密钥。从第15字节开始为密文数据。以上线包为例,解密后的明文为系统信息。

8 加密算法

以下为上线包数据解密示例,解密后可以看到银狐木马上线包常获取的几类信息,如主机名、用户名等。

9 上线包解密数据

三、检测

观成瞰云(ENS)-加密威胁智能检测系统能够对该类银狐木马进行有效检出。

10 观成瞰云(ENS)-加密威胁智能检测系统检测结果

四、总结

2026年以来,银狐木马的攻击活动持续高度活跃,观成安全研究团队捕获的变种样本量显著增长。在此背景下,本次分析的该类UDP变种进一步印证了该家族通信机制的持续演进:在长期沿用的TCP协议之外,新增了基于UDP的自定义加密通信方案,增加了通信协议的多样性;加密机制方面,固定密钥加密模式正逐步演化为基于随机数的动态密钥派生机制。上述变化表明,银狐木马的通信机制正朝着多协议化、载荷高随机化方向演进,给流量检测与分析带来挑战。观成安全研究团队将持续跟踪银狐木马家族的技术演进,不断加强观成瞰云(ENS)加密威胁智能检测系统的检测能力,为应对日益复杂的加密威胁提供可靠的技术保障。

五、附录

2 IOC信息

|------------|------------------------------------------------------------------|
| 类型 | |
| SHA256 | 8d33791edb7a9744dba3df3b0b23435b495436a11aa72c7956599abbe56d1197 |
| IOC | 121.127.232.112 |

相关推荐
so~what15 小时前
UL coherent MIMO (UL PMI codebook indicated by NW)
信息与通信
酿情师2 天前
【春秋云镜】CVE-2023-30212
安全威胁分析·cve
思录Echo3 天前
护网行动怎么做能避免漏判关键资产?
安全威胁分析
思录Echo3 天前
漏洞无效化技术如何实现?与传统IPS、WAF的主要区别是什么?
安全威胁分析
KIZIFLOW北泽五金4 天前
液压系统压力损失怎么降?成因分析与减损实操方案
运维·自动化·新媒体运营·产品运营·流量运营·用户运营·内容运营
一遍再一遍4 天前
【无标题】
信息与通信
YaraMemo4 天前
元启发式算法框架
人工智能·算法·5g·信息与通信·启发式算法·信号处理
hz567895 天前
视频会议终端音视频系统搭建方案:高清视频会议终端厂家选型指南
硬件架构·实时音视频·信息与通信·智能硬件
爱浦路 IPLOOK5 天前
矿山无人化作业5G专网方案:企业专网核心网络选型分析
网络·分布式·科技·5g·信息与通信
技术硬汉6 天前
RS-485 上下拉电阻 vs 终端电阻:作用、接线方法、注意事项一次讲透
物联网·信息与通信·iot