概述
近期,我们的BotMon系统连续捕获到一个由Go编写的DDoS类型的僵尸网络家族,它用于DDoS攻击,使用了包括SSH/Telnet弱口令在内的多达22种传播方式。短时间内出现了4个不同的版本,有鉴于此,我们觉得该家族未来很可能继续活跃,值得警惕。下面从传播、样本和跟踪角度分别介绍。
传播分析
除了Telnet/SSH弱口令,我们观察到wszero还使用了如下21
个漏洞进行传播:
VULNERABILITY |
AFFECTED |
CVE_2014_08361 |
Realtek SDK |
CVE_2017_17106 |
Zivif Webcams |
CVE_2017_17215 |
Huawei HG532 |
CVE_2018_12613 |
phpMyAdmin 4.8.x before 4.8.2 |
CVE_2020_10987 |
Tenda AC15 AC1900 |
CVE_2020_25506 |
D-Link DNS-320 FW v2.06B01 Revision Ax |
CVE_2021_35395 |
Realtek Jungle SDK |
CVE_2021_36260 |
Hikvision DVR |
CVE_2021_46422 |
Telesquare SDT CW3B1 |
CVE_2022_01388 |
F5 BIG-IP |
CVE_2022_22965 |
Spring |
CVE_2022_25075 |
TOTOLINK A3000RU |
CVE_2022_26186 |
TOTOLINK N600R |
CVE_2022_26210 |
TOTOLINK A830R |
CVE_2022_30525 |
Zyxel Firewall |
CVE_2022_34538 |
Digital Watchdog DW MEGApix IP cameras |
CVE_2022_37061 |
FLIR AX8 thermal sensor cameras |
DLINK |
D-Link DSL-2750B |
CVE-2018-10561 |
Dasan GPON home router |
SAPIDO RB-1732 command line execution |
SAPIDO RB-1732 |
PHP Backdoor |
PHP 8.1.0 dev Backdoor |
样本分析
简单来说,wszero是一个Go语言编写的DDoS类型的僵尸网络家族,它被命名为wszero的原因是它的下载链接中的文件名多为zero.*
这种形式,并且最新版本C2协议基于websocket
,所以将其缩写为wszero
。基于样本的C2协议、主机行为和C2加密等方面特征,我们把已经捕获的wszero分为4个大的版本,其捕获的时间线如下:
-
2022年11月18日,首次捕获到wszero v1
-
2022年11月21日,捕获到V2样本
-
2022年11月24日,捕获到V3样本
-
2022年11月26日,捕获到V3.x样本
-
2022年11月29日,捕获到V4样本
下面是这4个版本一些具体特性的对比:
因为使用Go编写并且未作混淆,从wszero样本中能容易的恢复出函数符号和功能逻辑等,因此我们不做详细的样本分析,下面着重介绍下wszero的C2存储和通信。
C2存储和解密
V1和V3都使用了加密的方式存储C2,其中V1的C2保存在样本的rodata段中,而V3则存放在局部变量中,如下图所示。
它们的解密方法相同,都为SUB 1算法,即逐字节减一。上图中将V3的局部变量拼接后,再进行解密就得到了C2以及URI。
C2协议
Wszero的C2消息使用了一个自定义的JSON串,不同版本间有几个JSON字段的微小差别。最初版本的底层传输协议使用TCP,后续版本换成了WEBSOCKET,以及TLS保护的WEBSOCKET,下面分别介绍。
上线包格式
当C2连接建立后,C2会主动向BOT发送Banner信息提示输入用户名,BOT首先向C2发送硬编码的用户名,接着再发送JSON格式的BotInfo,形如 {"platform": "%s", "gcc": "%s", "cpu": %d, "payload": "%s"}
,其中payload指的是分组信息。
底层传输协议的变化
V1版本采用了TCP,V2和V4基于WEBSOCKET,V3同样基于WEBSOCKET,但强制使用TLS对WEBSOCKET进行保护。
以V2为例,BOT和C2首先进行建立ws连接,
接着再发送BotInfo,内容格式依然为JSON串。
指令
当Bot注册成功后,就开始等待并执行C2下发的指令。指令消息同样是JSON格式,有Type, Data,Command 3 个key,其中Type用于指定DDoS或Command任务类别,Data/Command则分别用于存储DDoS选项,相关解析代码如下。
下面是我们实际接收到的HTTP_BYPASS攻击指令,当Bot接收到这个指令后就会使用该方法对目标进行攻击。
除了HTTP_BYPASS, wszero还支持TCP/UDP/ICMP等多种协议的攻击方法,完整列表详见下图。
指令跟踪情况
原文始发于微信公众号(Netlab 三六零):快讯:使用22个漏洞传播的DDoS家族WSzero已经发展到第4个版本
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论