概述
上个月CVE-2020-9054漏洞PoC公布后,就被滥用来感染有漏洞的Zyxel NAS设备,被感染的设备成为Mirai变种Mukashi僵尸网络的一部分。
Mukashi 回实用不同的默认凭证在暴露破解登陆口令,成功登陆后会通知C2服务器。固件版本低于5.21的Zyxel NAS设备都受到预认证命令注入漏洞的影响。该漏洞CVSS v3.1评分为9.8,因为攻击者很快就武器化该漏洞来攻击IoT设备。
漏洞分析
可执行文件weblogin.cgi在认证过程中没有正确地处理用户名参数,攻击者用单引号‘来结束字符串和分号;来连接任意命令来实现命令注入。因为weblogin.cgi接收HTTP GET和POST请求,攻击者可以在HTTP请求中嵌入恶意payload来获取代码执行。
在野利用
如图1和图 2所示,攻击者会尝试下载一个shell脚本都tmp目录,执行下载的脚本,然后再有漏洞的设备上移除相关痕迹。
图 1. 在野漏洞利用请求
执行后,zi 脚本会下载不同的Mirai僵尸架构,运行下载的二进制文件,最后移除二进制文件。所有的二进制文件在发现时都没有出现在VirusTotal上,截至文章发布VirusTotal上有4/8个。
图 2. 下载和启动僵尸的shell脚本
Mukashi——新Mirai变种
Mukashi是一个僵尸主机,可以扫描随机主机的TCP 23端口,实用不同默认凭证的组合来暴力破解登陆凭证,成功登陆后报告给C2服务器。与其他Mirai僵尸变种类似,Mukashi可以接收C2命令并发起DDOS攻击。
Mukashi执行后会打印消息“Protecting your device from further infections”到console。然后修改进程名为dvrhelper,表明Mukashi可能从祖先那里继承了一些特征。
在执行目标动作后,Mukashi会绑定到TCP 23448端口来确保受感染的系统中只有一个实例运行。
然后恶意软件会在初始化过程中解码一些字符串。解码的字符串包括凭证和C2命令。与其祖先使用XOR加密不同的是Mukashi使用定制的解密路径来加密这些命令和凭证。
表 1. 解码的凭证和命令
恶意软件执行凭证暴力破解后,Mukashi会使用t0talc0ntr0l4! 、taZz@23495859这样的默认密码。图3是Mukashi扫描随机主机时捕获的初始流量,图4是恶意软件尝试暴力破解认证。
图 3. 扫描TCP 23端口
图 4. 暴力破解
成功登陆后,Mukashi会报告凭证组合到C2服务器45[.]84[.]196[.]75的TCP 34834端口。
消息格式为
图 5. 报告成功登陆尝试
恶意软件初始化后,会发送信标到C2服务器45[.]84[.]196[.]75的TCP 4864端口,并通知C2服务器已经准备好接收命令了。信标示例如图6所示,信标格式为
图 6. 来自x86 bot的C2信标
Mirai和其变种的DDOS攻击机制已经深入分析过了,Mukashi的DDoS能力与这些变种没有差别。DDOS防护绕过的存在确认了之前的推测:Mukashi包含dvrhelper变种的能力,Mukashi可以处理反DDOS防护。下表是Mukashi支持的C2命令。
表 2. C2命令
函数attack_parsing() 负责处理Mukashi从C2服务器接收的C2命令字符串。除了命令和目标地址类型外,C2命令字符串中包含构造packet header所需的相关信息,如SYN flag, ACK flag, URG flag, PSH flag, Rst flag, time field, destination port value, length value。如果目的端口值不可达,Mukashi就会选择随机端口。如果packet的长度没有指定,Mukashi就会使用默认值1458。
虽然没有大量的为不同架构编译的Mukashi二进制文件,其中有很多相同的功能,除了x86版本没有负责kill进程的cleaner()函数。下图表明x86版本和arm7 版本是不同的。
图 7. main routine (arm7)
图 8. main routine (x86)
本文翻译自:https://unit42.paloaltonetworks.com/new-mirai-variant-mukashi/如若转载,请注明原文地址