2.1 HailBot.a
HailBot.a,是其最早变种,由于其运行时向控制台输出“hail china mainland”,相关僵尸网络因此被命名为HailBot。本节内容与第一篇分析报告有部分内容重复,主要为了对比不同版本变种间的差异特点。
HailBot.a的样本信息如下表所示。
病毒名称 | Trojan/Linux.Mirai[Backdoor] |
MD5 | 2DFE4015D6269311DB6073085FD73D1B |
处理器架构
| ARM32 |
文件大小 | 74.78 KB (76,572 bytes) |
文件格式 | ELF 32-bit LSB executable |
加壳类型 | 无 |
编译语言 | C/C++ |
2.1.1 传播方式
HailBot.a利用漏洞进行传播,其长期使用的CVE-2017-17215漏洞存在于特定版本路由器的UPnP(通用即插即用)服务中。攻击者可以通过发送特制的HTTP请求在目标设备执行任意代码。
![]()
图2‑1 HailBot.a构造漏洞利用载荷
2.1.2 解密算法
HailBot.a运行后首先对域名进行解密,其解密操作采用了ChaCha20算法。key为“16 1E 19 1B 11 1F 00 1D 04 1C 0E 08 0B 1A 12 07 05 09 0D 0F 06 0A 15
01 0C 14 1F 17 02 03 13 18”,nonce为“1E 00 4A 00 00 00 00 00 00 00 00 00”。
![]()
图2‑2 HailBot.a使用chacha20解密字符串
2.1.3 上线包
HailBot.a运行后发送上线数据包,内容为:“31 73 13 93 04 83 32 01”。
![]()
图2‑3 HailBot.a发送上线数据包
2.1.4 DDoS指令
当接收到攻击者发送来的指令后,HailBot.a将根据不同指令执行对应的DDoS攻击。HailBot.a支持的DDoS指令如下表所示。指令号 | 功能 | 影响 |
0 | TCP泛洪攻击 | 创建连接发送大量500至900字节的TCP请求消耗受害者网络带宽。 |
1 | SSDP泛洪攻击 | 利用简单服务发现协议(SSDP)发送大量“发现消息”请求使受害者进行响应,消耗受害者内存和CPU资源。 |
2 | GRE IP泛洪攻击 | 发送大量封装有IP网络数据包的GRE协议数据消耗受害者网络带宽。 |
3 | SYN泛洪攻击 | 发送大量SYN数据包,使服务器创建具有大量处于半连接状态的请求,消耗系统内存和CPU资源。 |
4 | UDP泛洪攻击(512字节) | 发送大量512字节的UDP请求消耗受害者网络带宽。 |
5
| UDP泛洪攻击(1024字节) | 发送大量1024字节的UDP请求消耗受害者网络带宽。 |
6 | TCP STOMP泛洪攻击 | 发送创建连接发送大量768字节数据消耗受害者网络带宽。 |
7 | TCP ACK泛洪攻击 | 发送具有随机源端口、目的端口及数据等信息的ACK数据包消耗受害者网络带宽。 |
2.2 HailBot.b
HailBot.b同样是基于Mirai源代码二次开发的僵尸网络,输出的字符串为:“you are now apart of hail cock botnet”。
HailBot.b的典型样本信息如下表。
病毒名称 | Trojan/Linux.Mirai[Backdoor] |
MD5 | BB9275394716C60D1941432C7085CA13 |
处理器架构 | AMD64 |
文件大小 | 93.34 KB (95,576 bytes) |
文件格式 | ELF 64-bit LSB executable |
加壳类型 | 无 |
编译语言 | C/C++ |
2.2.1 传播方式
HailBot.b同样利用了CVE-2017-17215漏洞进行传播。
图2‑4 HailBot.b中的CVE-2017-17215漏洞利用载荷
部分样本有利用CVE-2023-1389漏洞进行传播。
此外,HailBot.b样本中还发现用于暴破攻击的用户名和密码,如下表所示。
表2‑4 HailBot.b暴破攻击使用的用户名和密码和对应产品服务
(表格内容基于DeepSeek整理输出,并做人工修订,特此说明)用户名 | 密码 | 可能关联的服务/品牌/设备类型 |
leox | leolabs_7 | Leox(显仕)设备或定制设备(如某些工控系统或私有网络设备) |
root | wabjtam | 可能为某些旧款路由器或摄像头(如中国小品牌设备) |
telnetadmin | telnetadmin | 某些网络设备(如交换机、路由器)的Telnet默认账户
|
admin | gpon | 某些光纤终端设备(如中兴/华为GPON光猫) |
admin | admin123 | 常见通用默认密码(常见于路由器、摄像头,如TP-Link、D-Link) |
e8ehome | e8ehome | 电信或联通部分光猫/路由器(上海贝尔光猫、中兴ZXV10 H618C路由器、ZXA10 F460光猫) |
default | default | 部分设备通用默认配置(如某些旧款路由器或IoT设备) |
root | root | 部分设备和服务通用默认密码 |
default | OxhlwSG8 | 可能为特定品牌设备(如某些企业级交换机或防火墙) |
root | hme12345 | 海康威视(Hikvision)相关设备(如部分摄像头或NVR) |
admin | aquario | 可能为Aquario品牌设备(如温控系统或工控设备) |
root | Zte521 | 中兴(ZTE)光纤调制解调器或路由器 |
root | 1234 | 通用默认密码 |
root | antslq | 可能为安防设备(如某些国产摄像头品牌) |
default | tlJwpbo6 | 复杂密码可能用于企业级设备(如防火墙或服务器) |
root | default | 网络设备(如某些交换机的默认配置) |
admin | 1988
| 可能为某些摄像头或DVR(如年份相关默认密码) |
adtec | adtec | Adtec品牌设备(如监控系统或广播设备) |
root | hkipc2016 | 海康威视(Hikvision)IPC摄像头 |
admin | hme12345 | 海康威视(Hikvision)或关联设备 |
hikvision | hikvision | 海康威视(Hikvision)设备的默认账户 |
root | login!@#123 | 企业级设备(如服务器或高端路由器) |
telecomadmin | admintelecom | 电信运营商设备(如华为/中兴光猫) |
telnetadmin | HI0605v1 | 可能为Hikvision(HI)设备的Telnet登录 |
admin | qwaszx | 通用简单密码(常见于低端路由器或IoT设备) |
support | support | 技术支持账户(如服务器或网络设备) |
root | 5up | 极简密码可能用于测试设备或嵌入式系统 |
root | a | 未知 |
root | icatch99 | 使用iCatch芯片的摄像头(如某些国产摄像头品牌) |
Admin | a | 未知 |
Admin
| Admin | 通用管理员密码 |
root | adminpassword | 通用管理员密码(如某些新型路由器) |
root | vizxv | 不确定,可能为某品牌定制设备 |
root | unisheen | 可能为UniSheen品牌设备(如摄像头或工控设备) |
root | a1sev5y7c39k | 复杂密码可能用于企业级设备(如防火墙或VPN设备) |
root | cxlinux | 基于Linux的嵌入式设备(如某些工控系统) |
root | sr1234 | 可能为监控设备(如某些DVR或NVR) |
root | neworang | 新橙科技(NewOrange)摄像头或物联网设备 |
root | neworange88888888 | 新橙科技(NewOrange)摄像头或物联网设备 |
root | neworangetech | 新橙科技(NewOrange)摄像头或物联网设备 |
root | oelinux123 | Linux系统或嵌入式设备的默认凭证 |
root | hslwificam | HSL品牌WiFi摄像头 |
root | jvbzd | 不确定,可能为某小众品牌设备 |
admin | stdONU101 | 光纤网络单元(ONU)设备(如标准配置的光猫或运营商设备) |
admin
| stdONUi0i | 光纤网络单元(ONU)设备(如标准配置的光猫或运营商设备) |
2.2.2 解密算法
HailBot.b的域名解密算法与HailBot.a相同,均为ChaCha20。且解密使用的key、nonce也与HailBot.a相同。其中:解密使用的key为“16 1E 19 1B 11 1F 00 1D 04 1C 0E
08 0B 1A 12 07 05 09 0D 0F 06 0A 15 01 0C 14 1F 17 02 03 13 18”,nonce为“1E 00 4A 00 00 00 00 00 00 00 00
00”。
图2‑5 ChaCha20算法的key和nonce
2.2.3 上线包
HailBot.b样本中,大部分样本的上线包保持一致,均为:“56 63 34 86 90 69 21 01”。少部分样本(如MD5:F0E951D1ACFDF78E741B808AB6AB9628)的上线包与HailBot.a相同,为“31 73 13
93 04 83 32 01”。
图2‑6 发送上线数据包
2.2.4 DDoS指令
HailBot.b相较HailBot.a支持的DDoS指令有所增多。HailBot.b支持的DDoS指令如下表所示。
指令号 | 功能 | 影响 |
0 | TCP泛洪攻击 | 通过创建连接发送大量512字节的TCP请求消耗受害者网络带宽。 |
1 | UDP泛洪攻击(512字节) | 通过大量512字节的UDP请求消耗受害者网络带宽,不具备异常处理。 |
2 | GRE IP泛洪攻击 | 通过大量封装有IP网络数据包的GRE协议数据消耗受害者网络带宽。 |
3 | SYN泛洪攻击 | 通过发送大量SYN数据包,使服务器创建具有大量处于半连接状态的请求,消耗系统内存和CPU资源。 |
4 | UDP泛洪攻击(512字节) | 通过大量512字节的UDP请求消耗受害者网络带宽。 |
5 | UDP泛洪攻击(1024字节) | 通过大量1024字节的UDP请求消耗受害者网络带宽。 |
6 | TCP STOMP泛洪攻击 | 通过创建连接发送大量768字节具有ACK和PSH标记的TCP数据消耗受害者网络带宽。 |
7 | TCP
ACK泛洪攻击 | 通过发送具有随机源端口、目的端口及数据等信息的ACK数据包消耗受害者网络带宽。 |
8 | 无 | 该指令未被实现 |
9
| Unknow_1 | 未知格式的TCP报文 |
10 | TCP ACK泛洪攻击 | 通过发送具有特定源端口、目的端口及数据等信息的ACK数据包消耗受害者网络带宽。 |
11 | UDP泛洪攻击 | 随机发送100到1312字节的UDP包数据包消耗受害者网络带宽,该数据包以“HDR:”以尝试规避防火墙检测。 |
12 | Unknow_2 | 未知格式的UDP报文 |
13 | TCP
STOMP泛洪攻击 | 通过发送大量1至71字节具有ACK和PSH标记的TCP数据消耗受害者网络带宽。 |
14 | Unknow_3 | 通过发送大量长度为0的UDP数据包 |
2.3 HailBot.c
HailBot.c同样是基于Mirai源代码二次开发的僵尸网络,新版本输出的字符串为:“I just wanna look after my cats, man.”。
病毒名称 | Trojan/Linux.Mirai[Backdoor] |
MD5 | 64ED4E5B07610D80539A7C6B9EF171AA |
处理器架构 | ARM32 |
文件大小 | 66.55 KB (68,148 bytes) |
文件格式 | ELF 32-bit LSB executable |
加壳类型 | 无 |
编译语言 | C/C++ |
2.3.1 传播方式
该样本同样利用CVE-2023-1389漏洞和CVE-2017-17215漏洞进行传播。其中CVE-2023-1389漏洞是前导文件进行传播,而CVE-2017-17215漏洞则是写入样本自身中。
HailBot.c同样使用暴破的方式进行传播。用于暴破攻击的用户名和密码相较HailBot.b有所增加,如下表所示。表2‑7 HailBot.c暴破攻击使用的用户名和密码(表格内容基于DeepSeek整理输出,并做人工修订,特此说明)用户名 | 密码 | 可能关联的服务/品牌/设备类型 |
root | Pon521 | ZTE 路由器(部分型号默认密码) |
root
| Zte521 | ZTE 路由器(常见于中兴光猫/路由器) |
root | root621 | 未知(可能为特定厂商定制设备) |
root | vizxv | 未知(可能为摄像头或IoT设备) |
root | oelinux123 | 未知(可能与嵌入式Linux设备相关) |
root | root | 通用默认(Linux设备、路由器、摄像头等) |
root | wabjtam | 未知 |
root | Zxic521 | ZTE 路由器(猜测为早期中兴设备默认密码格式) |
root | tsgoingon | 未知 |
root | 123456 | 多种设备通用默认配置(常见于低安全性设备) |
root | xc3511 | 未知 |
root | solokey | 未知 |
root | default | 通用默认密码(部分IoT设备默认密码) |
root | a1sev5y7c39k | 未知(可能为随机生成或特定设备密钥) |
root | hkipc2016 | 海康威视(Hikvision)摄像头(HKIPC为常见前缀)
|
root | unisheen | 未知 |
root | Fireitup | 未知(可能为定制固件密码) |
root | hslwificam | 未知(可能为WiFi摄像头品牌) |
root | 5up | 未知 |
root | jvbzd | 未知 |
root | 1001chin | 未知 |
root | system | 通用默认密码(部分工控设备或服务器) |
root | zlxx. | 未知 |
root | admin | 通用默认密码(路由器、交换机等) |
root | 7ujMko0vizxv | 未知(可能与特定固件或定制设备相关) |
root | 1234horses | 未知 |
root | antslq | 未知 |
root | xc12345 | 未知(可能与摄像头芯片相关) |
root | xmhdipc | 未知(可能为摄像头型号缩写)
|
root | icatch99 | iCatch 摄像头(部分型号默认密码) |
root | founder88 | 未知(可能为定制设备密码) |
root | xirtam | 未知(可能为逆向拼写"matrix"变体) |
root | taZz@01 | 未知 |
root | /*6.=_ja | 未知 |
root | 12345 | 常见通用默认密码(路由器、摄像头等) |
root | t0talc0ntr0l4! | 未知 |
root | 7ujMko0admin | 未知 |
root | telecomadmin | 电信设备(如光猫管理员账户) |
root | ipcam_rt5350 | RT5350芯片摄像头(联发科方案IP摄像头) |
root | juantech | 未知(可能为JuanTech品牌设备) |
root | 1234 | 常见通用默认密码(低安全设备) |
root | dreambox | Dreambox卫星接收器(部分型号默认密码) |
root | IPCam@sw
| 网络摄像头(通用默认或特定品牌) |
root | zhongxing | 中兴(Zhongxing)设备 |
root | hi3518 | 海思Hi3518芯片摄像头(常见于安防设备) |
root | hg2x0 | 未知(可能与华为HG系列光猫相关) |
root | dropper | 未知(可能为恶意软件后门密码) |
root | ipc71a | 网络摄像头(型号相关) |
root | root123 | 通用默认密码(扩展型默认密码) |
root | telnet | 通用默认密码(Telnet服务默认凭据) |
root | ipcam | 网络摄像头(通用默认) |
root | grouter | 未知(可能为路由器品牌缩写) |
root | GM8182 | 未知(可能为设备型号) |
root | 20080826 | 未知(可能为日期相关密码) |
root | 3ep5w2u | 未知 |
admin | root | 通用默认密码(部分设备反向凭据) |
admin | admin
| 通用默认密码(路由器、摄像头等) |
admin | admin123 | 通用默认密码(扩展型默认密码) |
admin | 1234 | 通用默认密码(低安全设备) |
admin | admin1234 | 通用默认密码(扩展型默认密码) |
admin | 12345 | 通用默认密码(常见于消费级设备) |
admin | admin@123 | 通用默认密码(带符号变体) |
admin | BrAhMoS@15 | 未知(可能为定制密码) |
admin | GeNeXiS@19 | 未知(可能为定制密码) |
admin | firetide | Firetide无线网络设备(默认密码) |
admin | 2601hx | 未知 |
admin | service | 通用默认密码(服务账户) |
admin | password | 通用默认密码(广泛用于各类设备) |
supportadmin | supportadmin | 通用默认密码(技术支持账户) |
telnetadmin | telnetadmin | 通用默认密码(Telnet管理账户) |
telecomadmin
| admintelecom | 电信设备(如光猫超级管理员账户) |
guest | guest | 通用默认密码(访客账户) |
ftp | ftp | 通用默认密码(FTP服务匿名访问) |
user | user | 通用默认密码(普通用户账户) |
guest | 12345 | 通用默认密码(访客账户扩展密码) |
nobody | nobody | 通用默认密码(系统账户) |
daemon | daemon | 通用默认密码(系统账户) |
default | 1cDuLJ7c | 未知 |
default | tlJwpbo6 | 未知 |
default | S2fGqNFs | 未知 |
default | OxhlwSG8 | 未知 |
default | 12345 | 通用默认密码(设备恢复默认设置密码) |
default | default | 通用默认(默认账户密码) |
default | lJwpbo6 | 未知 |
default
| tluafed | 未知(可能为“default”逆向拼写) |
guest | 123456 | 通用默认密码(访客账户扩展密码) |
bin | bin | 通用默认密码(Linux系统账户) |
vstarcam2015 | 20150602 | 威视达康(Vstarcam)摄像头(型号相关默认密码) |
support | support | 通用默认(技术支持账户) |
hikvision | hikvision | 海康威视(Hikvision)设备(默认密码) |
default | antslq | 未知 |
e8ehomeasb | e8ehomeasb | 电信部分光猫(上海贝尔E8-C) |
e8ehome | e8ehome | 电信或联通部分光猫/路由器(上海贝尔光猫、中兴ZXV10 H618C路由器、ZXA10 F460光猫等默认密码) |
e8telnet | e8telnet | 部分电信路由器或光猫(如华为HG8245、中兴F660等)的Telnet登录用户名和密码 |
support | 1234 | 通用默认密码(技术支持账户简化密码) |
cisco | cisco | 思科(Cisco)设备(旧型号默认密码) |
2.3.2 解密算法
HailBot.c的域名解密算法与HailBot.a相同,均为ChaCha20。ChaCha20解密使用的nonce亦相同,为“1E 00 4A 00 00 00 00 00 00 00
00 00”。
其中:HailBot.c在利用ChaCha20解密时使用的key与HailBot.a有所不同,为“5E 8D
2A 56 4F 33 C1 C9 72 5D F9 1D 01 6C 2F 0B 77 3D 81 94 58 40 63 0A 79 62 1F 80
5C 3E 16 04”。
图2‑7 ChaCha20算法的key和nonce
此外,对于解密得到的域名,HailBot.c与HailBot..b存在部分域名重叠的情况。
2.3.3 上线包
HailBot.c样本的上线包为:“56 63
34 86 90 69 21 01”,如下图所示。
图2‑8 HailBot.c样本的上线包
2.3.4 DDoS指令
HailBot.c相较HailBot.a支持的DDoS指令有所增多,HailBot.c支持的DDoS指令如下表所示。
指令号 | 功能 | 影响 |
0 | TCP泛洪攻击 | 通过创建连接发送大量512字节的TCP请求消耗受害者网络带宽。 |
1 | UDP泛洪攻击(512字节) | 通过大量512字节的UDP请求消耗受害者网络带宽,不具备异常处理。 |
2 | GRE IP泛洪攻击 | 通过大量封装有IP网络数据包的GRE协议数据消耗受害者网络带宽。 |
3 | SYN泛洪攻击 | 通过发送大量SYN数据包,使服务器创建具有大量处于半连接状态的请求,消耗系统内存和CPU资源。 |
4 | UDP泛洪攻击(512字节) | 通过大量512字节的UDP请求消耗受害者网络带宽。 |
5 | UDP泛洪攻击(1024字节) | 通过大量1024字节的UDP请求消耗受害者网络带宽。 |
6 | TCP STOMP泛洪攻击 | 通过创建连接发送大量768字节具有ACK和PSH标记的TCP数据消耗受害者网络带宽。 |
7 | TCP
ACK泛洪攻击 | 通过发送具有随机源端口、目的端口及数据等信息的ACK数据包消耗受害者网络带宽。 |
11 | UDP泛洪攻击 | 随机发送100到1312字节的UDP包数据包消耗受害者网络带宽,但不再以“HDR:”开头。 |
14 | Unknow | 通过发送大量长度为0的UDP数据包 |