幽影之网:揭密OpenNIC域名背后的新生僵尸网络DawnBot

发布时间 2023-06-29

启明星辰与广州大学网安学院发现了一个使用OpenNIC域名作为C2的物联网僵尸网络,并将其命名为DawnBot。本文将从僵尸网络规模及失陷主机分布、传播方式、样本技术分析等方面,对该僵尸网络的感染、传播、攻击全生命周期细节等进行全面介绍,以作为各行业及相关企业制定网络安全策略的参考。


2023年5月中下旬,启明星辰在参与国家重点研发计划项目“大规模异构物联网威胁可控捕获与分析技术(2022YFB3104100)”的研究过程中,发现了一个使用OpenNIC域名作为C2的物联网僵尸网络。这是继Focha之后,又一个使用OpenNIC域名的僵尸网络,而且其C2的单词语义和Fodcha非常相似。目前,它的DDoS攻击并不活跃,但仍然值得高度关注。


在我们跟踪监测期间,该僵尸网络一直在快速迭代其代码,甚至一天内更新数次,最终在6月下旬趋于稳定。有趣的是,它运行后会在Console上打印输出“monke”,并且其中一个C2域名是boat.pirate(海盗船),该僵尸网络控制者应该是著名漫画《One Piece》(中文名:海贼王/航海王)的粉丝。其中monkey是该漫画主角姓氏,该角色家族以字母“D”为代号,代表黎明(Dawn)的意思。因此我们将该僵尸网络命名为DawnBot,简称DBot。


网络规模及失陷主机分布


据不完全统计,DawnBot控制的境内肉鸡数(IP数计算)超过3000个,广泛分布在全国24个省级行政区。以下是被控主机排名前10位的省级行政区:



传播方式


目前为止,DawnBot主要使用telnet弱口令传播,共硬编码96个加密的telnet弱口令,暂时还没发现利用漏洞的行为。在最初样本里,并没有telnet传播功能。后续曾加入此功能,但期间也曾一度取消。


DawnBot随机生成IP地址,当其23端口开放时,尝试使用硬编码telnet弱口令登录。如果登录成功,会把相关信息回传给如下C2服务器:smellychink[.]geek,telnethakkas[.]pirate,hellochineseman[.]dyn,95[.]214[.]26[.]112。


样本技术分析


DawnBot僵尸网络支持多种CPU架构,包括arm、mips、mpsl和x86。为了跟踪以及行文描述更方便,我们依据其主要功能特性的迭代变化,划分为V1和V2两个版本。以下是主要变化对比:



5月19号,我们首次检测到V1样本;6月8号出现V2样本,V2最大变化是使用RC4加密敏感资源,并加入telnet传播功能。


在本文中,我们主要以V2样本为主进行分析,并穿插介绍V1到V2样本的主要迭代变化。这些变化的细节可能包括代码逻辑的微调、加密算法的调整等。整体而言,DawnBot僵尸网络保持了相对稳定的基础架构和C2通信模式。


1、初始化


为对抗沙盒等模拟环境的自动化分析,与其它流行僵尸网络相同,DawnBot运行时首先会对启动参数进行检查,以确保自身的安全性。如果不携带参数,则直接退出。不同于其它家族的是,DawnBot运行后会将启动参数发送至C2服务器进行额外的二次校验。


当参数正确时,则进入执行流程:进程名伪装、解密资源、检测watchdog、开启telnet扫描。随后和C2建立通信并等待执行C2下发的指令。


在V2版本中会将进程名伪装成“-/bin/sh”或者“-sh”,V1则为“TopG”。V2使用RC4加密敏感资源,在早期的V2样本里,仍然存在部分明文字符串。但在快速更新迭代之后,最新V2版本里,除alphaset字符串之外,所有资源都被加密。


而在V1版本中,所有字符串都是明文的,包括C2、OpenNIC域名体系的NameServer以及其它一切字符串。


资源解密完成之后,DawnBot将在Console上打印解密出的字符串“monke”。V1版本则是打印明文的“what color is your botnet?”。


V2通过打开“/dev/watchdog”“/bin/watchdog”“/sbin/watchdog”设备,来检测Linux看门狗。存在watchdog,即退出进程。


2、OpenNIC域名


从V1到早期的V2版本,DawnBot一直使用OpenNIC域名作为C2服务器,但从6月23号开始,V2样本改用ICANN域名。OpenNIC是独立于ICANN的另一套域名体系,它支持的TLDs如下:



DawnBot共有10个OpenNIC域名C2,其中3个用来回传报告telnet传播数据。另外7个用来作为控制C2,具有二层控制结构:boat.pirate、hahaidiot.dyn、eggfriedrice.geek、stoleyourbots.geek、donteatmycat.geek、donteatmydog.geek、ihateyellowpeople.dyn。


OpenNIC的域名无法通过常见的DNS(如8.8.8.8、114.114.114.114)解析,必须使用指定的NameServer。V1硬编码了10个NameServer:



V1运行后,随机选择一个NameServer,向其请求解析C2,实际解析如下:



多数V2通过API接口动态获取NameSever,6月8号的V2使用“/geoip/?res=1&r”。



6月12号的V2使用“/geoip/?res=10&r",从6月15号开始一直使用“/geoip/?res=20&r”。


V2通过硬编码的IP:116.203.98.109动态获取NameServer,并不是解析api.opennicproject.org得来的IP。且host是假冒的1.1.1.1,如下动态获取NameServer:



在动态获取到NameServer之后,随机选择一个,请求解析C2域名。



也有部分V2样本,内部同样硬编码了RC4加密的NameServer,在动态获取失败时,使用硬编码的NameServer解析C2。


从6月23号开始,DawnBot改用ICANN体系的C2:skidlord.re,但对应的IP没有变化。


DawnBot是继Fodcha之后,第二个尝试使用OpenNIC域名作为C2的物联网僵尸网络家族。它C2的单词语义和Fodcha非常相似,几乎难以区分。合理猜测,也许两者有某种关联。目前,DawnBot仍然在持续更新中,虽然DDoS攻击并不活跃,但仍值得高度关注。


3、通信协议


DawnBot和C2的通信协议相对简单,只需要4轮即可与C2建立通信,且全程都是明文。第1字节是命令码或者说数据类型。我们运行arm7样本,以下是实际流量:



Step1:Bot→C2向C2发送参数,第1字节\x01是硬编码的命令码,其后是参数字符串“telnet. arm7”。C2目前似乎只支持类似参数telnet.arm4、telnet.arm6、telnet.arm7、telnet.mips、telnet.mpsl。我们尝试过其它参数,很快会收到RST包,或者退出进程命令。


Step2:C2→BotC2在收到\x01表示的参数后,返回确认数据\x09。DawnBot只有收到\x09才会进行后续的操作。否则,会结束当前tcp连接,再重新连接C2。


Step3:Bot→C2向C2发送当前所使用C2服务器字符串,第1字节是命令码\x10,随后是C2服务器donteatmycat.geek,表示当前C2IP是由donteatmycat.geek解析而来。


Step4:Bot→C2向C2发送当前权限,第1字节是命令码\x11,随后是字符串root。如果当前不是运行在root权限下,则发送\x11nonroot。



至此,DawnBot上线成功,开始等待执行C2下发的指令。目前为止,只收到过6次DDoS攻击指令,收到的主要是C2返回的心跳数据\x02,但DawnBot不会有任何回应,即心跳包是单方面由C2发送的。


4、攻击指令


可能是DawnBot还处在构建迭代更新过程中,它的DDoS攻击不是太活跃。截止到6月28号,我们只捕获到6次DDoS攻击指令。首次捕获到的DDoS攻击指令如下:



DawnBot的攻击指令是明文的,各个参数以空格分隔。DDoS命令格式为:攻击类型(1字节)、攻击目标IP、端口,攻击持续时间、攻击payload长度。上述攻击指令即是对目标85.217.xxx.xxx:80,发起icmp flood攻击,持续120秒钟,icmp payload长度为512字节。


必须指出的是,85.217.xxx.xxx是某个非常活跃Mirai的C2以及下载服务器。这颇有些黑吃黑的意味。


DawnBot共支持12类命令,包括DDoS攻击命令,如下:



DawnBot支持3种协议(tcp、udp、icmp)共5个DDoS攻击类型,包括syn_flood、ack_flood、udp_flood、udpbypass_flood、icmp_flood。


5、与其他家族的关联


DawnBot v1会在Console上打印字符串“what color is your botnet? ”,我们曾分析过的新家族Andoryu是打印字符串“Project Andoryu (12/30/2022). What color is your botnet”。


除此之外,它们还有一个共同点,都会对连接C2失败次数进行计数。DawnBot连接C2失败超过一定次数会退出进程,Andoryu则是将该服务器废弃不用。这在其它主流僵尸网络里,并不多见。这实在不像是巧合,或许两者背后的开发者存在某种关联。


从DawnBot C2的单词语义来看,作者充满了种族歧视。这一点和Fodcha非常类似,两者C2几乎难以区分。以下是两者C2的对比:



鉴于Andoryu和Focha也有一定相似之处,我们合理猜测,很可能三者背后的攻击者存在某种关联甚至是重合。但目前,我们还没有更确切的证据。我们会继续跟踪观察,查找它们之间的关联。


IOC



关于“大规模异构物联网威胁可控捕获与分析技术”项目


启明星辰是国家重点研发计划项目“大规模异构物联网威胁可控捕获与分析技术(2022YFB3104100)”课题一“异构物联网僵尸网络威胁感知关键技术及系统(2022YFB3104101)”的核心承担单位之一。项目及课题均由广州大学网络空间安全学院牵头,旨在构建大规模物联网攻击威胁主动防护能力。