小心新型僵尸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