警惕新型僵尸Goldoon:一款指令集覆盖最广的零检出率僵尸家族

颁布功夫 2024-04-29

一、概 述


近期,宝运莱官方网站ADLab监测到一批VT平台零检出率的新物联网僵尸,我们对僵尸法式的二进造代码和通讯和谈做了深刻同源性分析,并判断该系列僵尸为一款从未出现过的新型僵尸家族。该僵尸的文件定名、代码特点中时时蕴含” Goldoon“的字符串,因而我们将此僵尸网络家族定名为“Goldoon“。此表该僵尸拥有极强的平台兼容性,是目前支持指令集最全的僵尸家族(目前已发现的支持指令集多达18种),除了支持主流的x86、arm、mips、mipsel、powerpc、sparc、riscv、sh4、m68k等指令集表,其还支持一些极度罕见的指令集alpha、hppa等。值妥贴心的是,alpha指令集目前除了我国某国产处置器(重要用于我国超等推算机)在使用表,其他国度几近绝迹,其可能造成的威胁值得我们器沉。


我们最初于2024年4月8日发现Goldoon僵尸,起初,我们对这些零报毒的ELF文件进行了急剧分析确认,发显熹存在恶意行为,但对于这些文件安全软件在近两周功夫内都未能检测预警,这引起了宝运莱官方网站浓密兴致并进一步对其追踪分析,最后我们发现了80多个样本。通过逆向工程这些样本发现,该僵尸通过�?榛杓坪头纸锥巫饕档姆绞浇档捅患觳獾姆缦�,好比将入侵扫描、远程下发、本地加载及僵尸守候等职能设计成独立�?�。此表相迸宗通例的物联网僵尸,Goldoon僵尸的攻击设备类型可覆盖超过18种处置器架构,并且险些支持蕴含windows、unix/linux以及所有POSIX尺度的系统,除此之表,其还将“魔爪”伸向了一些相对幼多的指令集架构,这对于物联网设备尤其是一些持久未遭逢攻击的幼多架构设备来说可能组成严沉的威胁。


目前,大量新出现的被各大厂商沉新定名的物联网僵尸网络大部门还是基于开源僵尸框架如Mirai、Gafgyt等进行定造开发,这次我们发现的Goldoon则是齐全沉新设计和开发的新僵尸法式,目前,攻击者还在持续针对多阶段样本进行职能的更迭和测试。截止本文颁布,尚未发现节造者提议大规模攻击活动,不外我们已经监测到其发出的一些零散的指令用于测试攻击,这注明Goldoon当前可能处于急剧构建阶段,必要高度警惕其后续的扩张和攻击活动。本文将具体介绍Goldoon僵尸网络并针对其攻击活动特点、职能代码以及节造和谈等进行深刻分析。


图片1.png

图1: Goldoon Loader在VT的检测情况


图片2.png
图2: Goldoon dropper在VT的检测情况

二、攻击威胁分析


通过宝运莱官方网站物联网威胁数据平台及有关谍报的交叉印证,目前共发现和关联到Goldoon有关样本80余个。从这批样本的攻击指标来看,Goldoon僵尸网络除了针对传统的PC端设备如Windows、Linux(x86、x64)执行攻击表,还盯上了物联网设备这块肥肉,蕴含arm、mips、mipsel、powerpc、sparc、riscv、sh4、m68k等常见处置器架构的设备都在其攻击领域之内。Goldoon共计支持18种处置器架构,有意思的是其中还涉及到s390x、alpha、hppa等相对幼多的指令集,这些指令集固然遍及率较低,但仍有不少幼多设备、旧设备或是基于有关指令集自研升级的国产设备在使用,好比IBM zSystems服务器(s390x)、某国产处置器(alpha)等,该国产处置器目前重要用于我国超等推算机,涉及到国度算力安全。因而不能仅仅由于设备幼多、潜在攻击少就放松警惕,安枕无忧,同样必要器沉其中可能暗藏的安全风险。Goldoon当前支持攻击的指令集架构如下表所示:


表1:Goldoon支持的指令集架构

表1.png


由于Goldoon目前还处在构建扩张阶段,我们凭据已知的攻击手法和投递样本等特点,梳理它的攻击流程如下所示:


图片3.png
图3:Goldoon攻击流程图


攻击者针对Linux和Windows平台别离设计了�?榉掷氲姆绞浇档婉詈隙却佣骷醣患觳夥缦�,蕴含缝隙扫描、剧本执杏注Loader、Dropper等�?�。从目前捕获到的样本代码来看,尚未发现缝隙扫描�?�,猜测该�?橛Ρ簧杓朴糜谠贑2服务器中执行以预防泄露缝隙POC和谍报资源。入侵成功后,攻击者进一步利用剧本或Loader法式下载执行最终的僵尸法式(Dropper)。


为了确认攻击者是否在进行免杀测试,我们统计了这批样本中存在编译功夫的PE样本并与上传VT平台的功夫进行比力,从下表能够看出样本的编译功夫与上传功夫距离通常在数分钟内,极度靠近。因而根基能够判断这部门样本是由攻击者自行上传并用于测试免杀成效,以下是部门PE样本的功夫信息:


表2:PE样本功夫信息

表2.png



之后,我们针对这批样本进行了多维度的溯源和分析,蕴含与常见僵尸家族的代码类似度、同源性等比对分析后,确认这是一款新出现的物联网僵尸网络。这批样本最早的活跃功夫在4月8日,能够初步判断幕后的节造者应该在4月初实现了僵尸代码的开颁布局,目前已经处于职能测试和扩张的前期阶段。我们从中提取到攻击者使用的两个C2服务器:185.106.94.51(奥地利)和94.228.168.60(德国)。在持续监测其活跃动向的过程中,曾监控到2次攻击者发送的指令,其选取udp_legit的攻击方式别离针对位于荷兰和伊朗的IP提议DDoS攻击,判断可能是用于幼规模的测试活动。截止目前尚未发现有大规模的攻击活动产生,我们也会持续关注和追踪Goldoon的最新版本变动和攻击动态。


三、攻击样本分析


3.1 Linux平台样本


目前,监测到Goldoon基于Linux平台的样本约50个,其中绝大部门样本做了符号剥离处置。同时,一样架构平台的样本间也大多存在职能相异的情况,不外由于这些职能变动距离功夫较短且多属于独占设备、反调试、悠久化等匹敌性职能的变动,整体代码框架和通讯和谈等并未扭转,因而不做版本的细分。此表,我们还从中发现了个别保留符号的调试版样本(猜测属于作者误传),同样可能佐证Goldoon处于测试职能及免杀的版本急剧更迭阶段。


3.1.1 Shell剧本


在有关攻击中已发现了超过5种分歧代码体式的剧本文件,代码实现的根基职能类似,均是通过wget、curl、ftp等方式下载执行分歧架构的恶意�?镈ropper,之后删除自身和下载的�?橐远细奂�。更进一步的,攻击者通过扭转一些代码因子,如分歧的号令执行参数、函数封装、循环嵌套、结构乱序、换行符、引号包裹等方式来尝试匹敌静态特点检测,目前有关剧本在VT上依然是0报毒的状态。部门剧本示例如下图:


图片4.png

图4:Shell剧本


3.1.2 Loader


Loader重要是用于加载后续的恶意�?镈ropper,相较Shell剧本加载Dropper的方式,会增长部吩欹敌检测的机造及职能,这里以Debug版Loader为例介绍。


图片5.png

图5:Loader主题代码


在Loader和Dropper中,Goldoon的多个样本均蕴含initkiller函数或是保留该函数未挪用,类似的初始化和匹敌职能较多,由于这些版本更迭的功夫极度靠近且分歧职能版本的数量好多,因而不做更细的版本分辨,一些沉要职能例如:独占设备,法式通过禁用CVE-2017-17215缝隙端口(37215)、禁用telnet端口(23)以及禁用SSH端口(22)等方式来尝试独占设备。


图片6.png
图6:独占设备


在Start_dropper函数中,法式会从指定C2下载恶意代码,并在批改文件权限后执行恶意法式。


图片7.png
图7:下载执行后续恶意代码(Dropper)


3.1.3 Dropper


首先,后续下载执行的恶意代码(Dropper)会通过SetInjectMethod函数获取法式执行参数来设置BOT_INFECT_METHOD值,此值应指设备被习染的方式(如入侵使用的缝隙或爆破类别),该值之后在上线包中会作为系统信息回传。


图片8.png
图8:获取设备被习染方式


Start函数中则是法式主题的代码部门,蕴含初始化配置、上线机造、心跳机造、节造指令解析等。


图片9.png

图9:主题代码部门


(1)初始化配置


蕴含初始化异常处置、初始化随机种子、初始化DNS解析、初始化攻击治理等,其中还初始化了wolfSSL_Init的加密库,wolfSSL是一个轻量级、可移植、基于C说话面向嵌入式的TLS 库,不外从目前把握的情况来看,攻击者还没有现实挪用该库来加密通讯流量,但是后期可能会通过wolfSSL加密以加强流量隐匿性。


图片10.png
图10:初始化配置


在初始化配置的基础上,Goldoon的一些版本还在测试增长分歧的职能,例如反调试、悠久化等匹敌职能。


图片11.png

图11:反调试代码



图片12.png

图12:悠久化代码


(2)上线机造


在open_connection函数中,法式会获取系统信息,蕴含用户名、主机名、操作系统信息、受习染方式、CPU主题数、是否支持IPV6、内存、系统版本等,并组包发送至C2。有关代码及上线数据包如下所示:


图片13.png
图13:上线机造代码


通过度析,我们将上线数据包体式进行解析,解析后的具体结构如下表所示。


表3:上线数据包体式

表3.png


(3)心跳机造

法式创建单独的线程用于发送心跳包,每距离60秒发送”Time”及功夫戳,有关代码和上线数据包如下:


图片14.png
图14:心跳包机造代码


心跳包数据解析如下表所示。


表4:心跳包数据体式

表4.png


抓取的上线包和心跳包流量数据如下图所示。


图片15.png
图15:上线包和心跳包流量数据


(4)节造指令解析


这里必要把稳的是,在read_packet函数中,法式首先会接管两次(4字节/每次)数据,该数据别离为type和args_length,且在成功接管后进行判断,若值不为-1时再持续接管其他数据。


图片16.png
图16:接管数据代码


在handle_packet函数中,法式解析节造指令如下:


图片17.png
图17:节造指令代码


攻击指令数据包所对应的结构体如下所示。


图片18.png

图18:节造指令数据包结构体


攻击指令由Packet结构体中的type决定,共蕴含五类:


表5:攻击指令

表5.png


攻击指令的数据包(仿照数据包)如下图所示。


图片19.png
图19:攻击指令数据包


攻击指令数据解析如下表所示。


表6:攻击指令数据解析

表6.png


结构体数组args[]中value值会凭据数组成员依序从下标0至3进行相应的数据提取,具体数据内容如下图所示。


图片20.png

图20:结构体数组内容


Linux版样本目前共发现28种攻击方式,其中http_exploit、http_xflow、http_pps函数内职能代码为空,攻击者将来可能会持续扩大有关职能。


图片21.png

图21:Linux版样本攻击方式代码


3.2 Windows平台样本


3.2.1 powershell剧本


Windows版的powershell剧本相对较单一,从指定地址下载并执行下一阶段的恶意�?�。同时该剧本在VT检测率也极低,了局显示仅1家报毒。


图片22.png
图22:powershell剧本


3.2.2 Loader


Windows版与Linux版本的Loader职能相比,仅拥有下载并执行下一阶段恶意法式的职能。


图片23.png
图23:Loader部门代码


3.2.3 Dropper


当Dropper实现初始化异常处置、初始化随机种子、初始化DNS解析以及初始化攻击治理等配置后,其会开启单独的线程来遍历当前运行的过程,并从中查找”taskmgr.exe”和”debugg”过程,若存在则关关该过程,以达到暗藏自身和反调试主张。


图片24.png
图24:反调试代码


通过节造台号令查找在监听3389端口(通常用于远程桌面衔接)的过程,若存在则实现该过程,随后再绑定和监听该端口。


图片25.png
图25:端口监听代码


设置当前过程优先级为实时以及当前列程优先级为第一流别。具体代码如下图所示。


图片26.png
图26:设置过程和线程优先级


将自身文件复造到启动项文件夹蹊径下和Windows系统文件夹中,并增长到注册表自启动项,以实显熹悠久性。


图片27.png
图27:实现悠久化


通过度析我们发现,Windows版与Linux版的上线机造、心跳机造以及节造指令解析等通讯和谈一样,因而我们便不再进行赘述。


但在攻击模式方面,Windows版Goldoon目前总共仅蕴含15种攻击模式,且其中有4种攻击模式暂未实现,具体如下图所示。


图片28.png
图28:Windows版攻击模式代码

四、总 结


本文披露了近期新出现的物联网僵尸网络Goldoon,沉点针对其攻击活动特点、各独立�?榈闹澳艽胍约敖谠旌吞傅冉辛松羁谭治龊徒樯�,并别离对Linux平台和Windows平台的样本进行了技术分析,蕴含其中涉及的职能迭代、兼容性、免杀性等个性。


Goldoon在设计之初就已适配了超过18种指令集架构,这在大无数物联网僵尸中是较为少见的,也可能成为将来僵尸网络扩张的一个新方向。通常来说,存在安全隐患的设备往往可能被分歧的僵尸网络沉复屡次入侵,而当前越来越多的僵尸都起头尝试禁用缝隙端口以独占设备,这就造成大量易入侵的 “肉鸡”资源在海量的僵尸攻击下越来越稀缺。与此同时,对于一些幼多指令集架构来说,由于大无数僵尸网络并没有做适配支持,那么即便其中存在安全隐患的设备被入侵也很可能未成功植入恶意代码。因而,针对这些“漏网之鱼”定造攻击可能成为将来僵尸网络节造者急剧扩大网络规模的一种相对高效的方式,必要格表警惕。将来我们也会持续关注和追踪Goldoon的最新版本迭代变动和攻击动态。


五、IOC


C&C :


94.228.168.60

185.106.94.51


Shell剧本:


3f0e0c2f929d2e8ed24efac137fba2100a9afa317b5e74cb9a98b306e36d38bd
53acad3c3017049c5b02bbbb39118198d22c494d21fd2a528eccc8ea7feb6c33
f25f235823386935504b91e74f34a581c8c66982e51d0d94b9af2fb9e528aac7
35ad992121d507477793fc3cd555fbabf38b399a282bd6a29e4361f0b42ebbe8

6ddd5789e2ed4d071a17f6aaeba61f3a7c4844168a3cb02fb4cebdbaee183b49


Loader:


b48afb4e5fed1a42e2d60709329f2ac1009aae5fb18a6ec23917e64872ed540f
8eb9c1eaecd0dcdd242e1bc8c62a1052915b627abe2de8ce147635fb7da3bfcc

48130a7c09a5c92e15b3fc0d2e1eb655e0bd8f759e01ba849f7734e32dbc2652


Dropper:


e7cd7305eeb4b26b36648febbed3ed5bfebf0345464f73deefa54d366bbbb6a1
cd416d8ef5c1274a5e77dfd4830d495a29f02442fb5ccaa9842824d70a43c640
a60b505d0d42c334901fb4972b004a4bcb78de5035ed4f8c3f27b16df35429c3
df8d88ff3e138be09c921058265e07df98ad50121dd70d9a292f223b19f456ac
26737091fe62098ec80bf03ae1377bafd85c6796fffd538519689fd663649af7