Hoaxcalls僵尸网络:利用CVE-2020-8515/5722漏洞

概述

CVE-2020-8515漏洞POC今年3月发布后,就被用于新的DDoS僵尸网络中。进一步分析表明该恶意软件也在利用CVE-2020-5722漏洞进行传播。检测到的攻击流量自2020年3月31日以来增加了一倍,表明许多Grandstream UCM6200 和Draytek Vigor设备已经被感染或正在被攻击。Grandstream设备是基于IP的商用电话系统,Draytek是路由器设备。

CVE-2020-8515 和CVE-2020-5722漏洞的CVSS v3.1评分都是9.8。一旦被利用,攻击者就可以在有漏洞的设备上执行任意命令。恶意软件是基于Gafgyt/Bashlite恶意软件家族代码基的,研究人员根据其C2通信使用的IRC信道名将其命名为“Hoaxcalls”。 Hoaxcalls可以根据接收到的C2命令发起不同的DDoS攻击。此外,Hoaxcalls还可以利用CVE-2020-8515 和CVE-2020-5722这两个漏洞进行传播。

Hoaxcalls——DDoS僵尸主机

Hoaxcalls是一个通过IRC 与C2服务器进行通信的DDoS僵尸主机。根据C2运营者的选择,主机有不同的DDoS攻击能力。在接收到适当的C2命令后,就可以使用CVE-2020-8515 和CVE-2020-5722漏洞利用来扫描和感染有漏洞的设备。

Hoaxcalls执行后会初始化一个消息表,根据对应的index xor解密特定的消息,奇热提取和打印console的消息,然后再次加密解密的消息。比如,加密的字符串index是0x21,解密的消息就是hubnr 和vbrxmr。

使用的加密方案是大多数Mirai变种使用的标准的字节级的XOR,使用5个8字节的表key:

· 0x1337C0D3

· 0x0420A941

· 0x4578BEAD

· 0x0000A10E

· 0x6531A466

表1是解密的字符串和对应index的完整列表。Index 0x1处解密的字符串用于rand_alpha_str()中,Index 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa处的字符串在恶意软件开始监控进程时使用。

Hoaxcalls僵尸网络:利用CVE-2020-8515/5722漏洞_第1张图片

表 1. 解码的凭证和命令

僵尸主机会通过IRC 在TCP 1337端口连接到C2服务器178[.]32[.]148[.]5。C2的IRC 信道是#hellroom。nick, ident和user是XTC|开头加上9个随机字符的长度为13的字符串。下图是僵尸主机通过IRC 与C2服务器进行通信。

图 1. 通过IRC与C2通信

根据从C2服务器接收到的命令, hoaxcalls会执行不同的动作。下表是僵尸主机支持的命令和hoaxcalls 可以发起的不同种类的DDoS攻击。

Hoaxcalls僵尸网络:利用CVE-2020-8515/5722漏洞_第2张图片

表 2. 僵尸命令和作用

Hoaxcalls僵尸网络:利用CVE-2020-8515/5722漏洞_第3张图片

表 3. Flooder命令

图2和图3是僵尸主机扫描和感染有漏洞的受害者的漏洞利用代码:

Hoaxcalls僵尸网络:利用CVE-2020-8515/5722漏洞_第4张图片

图 2. hoaxcalls group 1中的CVE-2020-8515漏洞利用

Hoaxcalls僵尸网络:利用CVE-2020-8515/5722漏洞_第5张图片

图 3. hoaxcalls group 1中的CVE-2020-5722漏洞利用

上面的flooder命令是基于group 1的Hoaxcalls 样本。研究人员还发现其他变种,如下所示。

研究人员分析发现group1中的Hoaxcalls样本使用Draytek和UCM 扫描作为其C2 flooder命令集的一部分。Group 2和group 3的样本将繁殖功能从flooder命令中移出,并且在执行时感染有漏洞的Draytek和UCM 设备。感染阶段发送的恶意请求也有所不同,下图就是不同group 中样本的差异:

Hoaxcalls僵尸网络:利用CVE-2020-8515/5722漏洞_第6张图片

图 4. hoaxcalls group 2中的CVE-2020-8515漏洞利用

Hoaxcalls僵尸网络:利用CVE-2020-8515/5722漏洞_第7张图片

图 5. hoaxcalls group 2中的CVE-2020-5722漏洞利用

 

图 6. hoaxcalls group 3中的CVE-2020-8515漏洞利用

Hoaxcalls僵尸网络:利用CVE-2020-8515/5722漏洞_第8张图片

图 7. hoaxcalls group 3中的CVE-2020-5722漏洞利用 

图 8. 样本的main()比较

漏洞分析

CVE-2020-8155

该漏洞是由于执行过程中可执行文件 /www/cgi-bin/mainfunction.cgi 没有成功过滤keyPath参数,导致可利用的命令注入。攻击者可以在payload中加入一些%27%0A 这样的特殊字符来绕过检车和实现预认证命令注入。该漏洞从2019年12月开始出现在野利用。

CVE-2020-5722

系统由于没有适当地验证user_name 参数,当Forgot Password 特征查询后端SQLite数据库和通过popen() 调用sendMail.py 时会引发SQL 注入。攻击者可以通过在特定SQL字符串和shell元字符‘ or 1=1–; 提供admin这样的默认用户名,将该漏洞变成一个命令注入漏洞。根据官方漏洞公告,该漏洞可以通过HTML 注入被利用。

在野利用

研究人员发现了CVE-2020-8155和CVE-2020-5722 漏洞的多个在野利用。在CVE-2020-8155 的漏洞利用中,攻击者尝试下载一个shell 脚本到tmp 目录中,然后执行下载的脚本,如图9所示。在CVE-2020-5722 漏洞利用中,payload只下载一个arm7 二进制文件并执行,如图10所示。

Hoaxcalls僵尸网络:利用CVE-2020-8515/5722漏洞_第9张图片

图 9. CVE-2020-8155 在野漏洞利用

Hoaxcalls僵尸网络:利用CVE-2020-8515/5722漏洞

图 10. CVE-2020-5722在野漏洞利用

如图11所示,下载的是一个shell脚本sh。执行后,sh脚本会下载不同架构的DDoS主机,并运行下载的二进制文件。截止目前,Virsutotal中仍然没有可用的恶意软件样本。而且攻击流量越来越多,表明许多设备可能已经被感染了。

Hoaxcalls僵尸网络:利用CVE-2020-8515/5722漏洞_第10张图片图 11. 下载和启动僵尸主机的shell脚本

总结

研究人员发现一个新的DDOS僵尸网络——Hoaxcalls。Hoaxcalls僵尸网络利用了2个新发现的安全漏洞用于攻击活动中。其他安全研究表明这两个漏洞也被用于其他攻击活动。攻击者利用这2个漏洞引发远程代码执行。

你可能感兴趣的:(Hoaxcalls僵尸网络:利用CVE-2020-8515/5722漏洞)