查看原文
其他

【物联网威胁情报动态】GAFGYT僵尸网络愈演愈烈

威胁情报 绿盟科技研究通讯 2021-03-12

磊科路由器在2014年爆出后门后,一直没有引起足够的重视。Gafgyt利用磊科后门进行传播的活动从未缓解,甚至愈演愈烈。黑客常利用节假日进行攻击渗透,企业应提前排查自身存在漏洞的设备,做好节假日期间的安全防护工作。

                                    

引言

磊科(Netcore/Netis)路由器在2014年爆出后门后,一直没有引起足够的重视,网络中大量该品牌的路由器设备处于未曾修复的状态,从2014年开始,绿盟威胁情报中心(NTI)就持续检测到大量利用磊科路由器后门的事件。

从今年的数据看,该后门利用仍然十分频繁(平均每天攻击次数超过440万次)。经过分析,该后门的利用事件主要与Gafgyt这个家族的样本有关,该样本通过磊科漏洞进入路由器,控制设备成为僵尸主机,然后操作该设备在网络环境中实施DDoS攻击等犯罪行为。今年1月,国内某安全厂商也报道了该家族恶意软件的相关活动,与绿盟威胁情报中心(NTI)数据分析所得结论是一致的。

图1 Gafgyt发展演进历程

从近期绿盟威胁情报中心(NTI)监测的数据来看,直至2018年2月初,Gafgyt利用磊科后门进行传播的活动从未缓解,甚至愈演愈烈。黑客常利用节假日期间企业运维的空档进行攻击渗透,我们建议企业排查自身存在漏洞的设备,做好节日期间的安全防护工作。

                   

Gafgyt威胁分布

1Gafgyt僵尸网络活动猖獗,威胁从未缓解

针对Gafgyt僵尸网络,绿盟威胁情报中心(NTI)追踪了将近一年的网络攻击数据。在2017年2月到2018年1月发现该僵尸网络攻击次数14.81亿多次,平均每月攻击1.32亿次,平均每天攻击次数为440万次。下图是近12个月该僵尸网络的攻击情况。从图中可以看出,截止到2018年2月初,该僵尸网络仍然在互联网络中肆无忌惮的传播。

图2 Gafgyt僵尸网络近12个月攻击情况统计

2设备类Gafgyt变种平均每天新增1.5个

Gafgyt僵尸网络利用路由器后门进行传播,通过对2017年2月到2018年1月期间该恶意程序的变种进行统计分析,发现该恶意程序主要通过“http”和“tftp下载”两种方式进行传播。从该时间段统计可以发现:(1)12个月共产生490多个变种,平均每天变种的数量为1.5个;(2)利用http下载变种占66%,利用tftp下载变种占34%。僵尸程序变种随时间的变化如下图所示。

图3 Gafgyt僵尸网络近12个月变种情况统计 

             

3威胁遍布全球

通过绿盟威胁情报中心(NTI)监控节点的数据,统计出了2017一2018年初国内外受影响的设备。从数据可以看出,在11个月中至少有150万台设备受到了该僵尸网络的攻击。受该僵尸网络攻击的设备在全球的207个国家和地区都有分布,其中国外受控设备有234219台,受控设备分布如下图4所示。

图4 Gafgyt僵尸网络“肉鸡”国外分布情况统计

磊科路由器是国产路由器,面向的客户也主要是国内客户。在国内的34个省、自治区、直辖市中,都受到了不同程度的影响。在12个月中国内受影响的设备达到120多万台,是国外受影响设备的5倍。

下图显示了国内各省市设备受影响的程度,从图中可以看出,北京、江苏、广东、浙江四个地区影响最严重。当然,这也跟这些地区网络信息发达,受攻击面广有关。四个地区占到国内受影响设备总量的33%。

图5 Gafgyt僵尸网络“肉鸡”国内各省分布情况统计

样本在传播过程中,攻击者采用tftp和http两种形式下载恶意样本。绿盟威胁情报中心(NTI)针对两种传播方式都截获了大量攻击样本。从监控结果来看,2017年2月到2018年1月,提供僵尸地址下载的IP为713个,其中包括了部分地址既提供http形式下载,也提供tftp形式下载。通过tftp提供样本下载的IP数量为174个,通过http方式提供样本下载的IP数量为539个。

这些IP分布在世界 31个国家和地区,具体情况如下图所示。从图示可以看出,主要的下载中心分布在美国、荷兰、丹麦、罗马尼亚、俄罗斯等地。其中位于美国的下载地址占比将近50%。

图6 Gafgyt僵尸网络“肉鸡”程序下载地理位置分布情况统计


4各行业均受影响

另外,根据受影响设备的行业分布情况,统计出了不同行业受该僵尸网络攻击的情况,该影响在各个行业都有影响,其中企业政府教育行业均有涉及。

图7 Gafgyt僵尸网络国内行业分布情况统计

    

Gafgyt僵尸家族介绍

1关于磊科后门

该后门被Gafgyt家族的样本大规模利用,进行恶意代码的传播,构建僵尸网络。Netcore 系列路由器在 /bin 目录下存在一个名为 igdmptd 的程序,此程序会监听 UDP 端口 53413 ,并且包括了一些经过阉割的busybox命令。通过逆向分析发现其提供了任意命令执行、内置功能、文件上传下载功能。而且对于某些固件版本,可以获取路由器的web登录密码,利用如下形式即可执行系统命令

Python –c “print ‘AA\x00\x00AAAA ls\x00’”|nc–u –vv 10.8.51.22 53413

 

图8 执行系统命令示例

对于磊科路由器后门利用的方式要比一般漏洞利用简单,直接在参数部分加入可执行指令,就可以达到命令执行的效果。作为广泛应用的物联网设备,此类产品构造大量网络攻击,尤其是作为肉鸡时的僵尸网络攻击,其攻击效果会非常明显。

2Gafgyt样本的特征与能力

Gafgyt家族,通常也被称作bashlite,可支持各种不同的Linux平台在路由器设备上运行,由C代码编译而成,其中也包括PC上的x86和x64平台。样本具备以下的攻击能力及特性:

>>>>

自动扫描和感染

样本目前可以通过telnet弱口令扫描或者Netcore漏洞扫描来感染其它设备,以拥有自动、快速发展的能力。Gafgyt样本扫描感染漏洞设备的速率非常快,最快可达4300+IP/min,这个能力使得Gafgyt能够进行大规模的扩散。

>>>>

多种完备的DDoS功能

被感染的设备将成为僵尸网络中的一员,随时听候攻击者的命令发起DDoS攻击。

>>>>

多变的指令控制系统

在前文中提到,Gafgyt变种速度非常快,其中主要的目的就是为了逃避网络流量层面的防御规则,而易于修改的指令格式及协议能够使攻击者快速编译出自己专属的变种,如此可以绕过在网络传输过程中根据已知规则进行通信拦截和告警的安全设备。

>>>>

排他性

样本会搜寻已知的其它IoT僵尸网络家族并击杀其进程,以独占被感染设备的全部资源,宣告自身对被感染者的唯一控制权。

>>>>

部署简单

样本的源代码仅包含两个.c文件,攻击者无需具备计算机知识,只需按照readme文档使用命令进行编译即可生成自己的僵尸网络并开始对外界进行感染。

3Gafgyt的传播步骤

Gafgyt家族僵尸软件传播扩散步骤可以参考下图,经过我们的技术分析,Gafgyt僵尸传播扩散行为分成三个阶段,9个步骤。

图9 Gafgyt僵尸传播扩散行为步骤

>>>>

扫描阶段

这个阶段,Gafgyt会进行几个步骤的操作:

(1)主动扫描寻找存在漏洞的设备;

(2)利用漏洞获取设备权限;

(3)执行命令远程下载恶意代码;

(4)尝试运行代码。

其中在第(1)步扫描中,样本利用Netcore路由器自带的UDP 53413端口后门来尝试攻陷设备,也能够利用telnet弱口令对设备进行爆破。从代码角度观察,Netcore路由器的后门利用相当简单,仅仅通过随机生成IP-向该IP的53413端口发送以字符串"AA"开头的UDP报文即可成功利用该后门。

图10 示例代码

在第(2)步利用中,若采用telnet弱口令对设备进行爆破,样本会依次尝试以下用户名及口令的组合。

图11 示例用户名/口令

在下载运行恶意代码步骤里,样本成功利用漏洞或者获取shell以后,会执行以下命令,称作感染命令序列:

图12 示例代码

这些命令是在采用不同的方式,试图下载同一种脚本文件。该脚本会下载编译好的全平台Gafgyt样本到本地,然后依次执行这些样本。该过程可以保证无论设备是哪种平台架构,都至少有一个样本成功在本地运行。为了防止用户察觉或者分析人员提取样本文件进行分析,命令序列的最后附带一条rm -rf *对/tmp目录进行清空操作。

>>>>

部署阶段

部署阶段有这样几个关键的操作:

(1)通过建立守护进程进行自我保护;

(2)查杀设备内已存在的僵尸程序,独占设备;

(3)激活扫描模块,为之后进一步感染其它设备做好准备;

(4)与C&C服务器通信,完成僵尸上线,进入等待阶段,准备接受攻击命令。

样本在本地成功运行之后,先建立守护进程以随时复活自身进程,这是为了防止自身被用户手动结束,使自身的存在更加稳固。

图13 示例代码

然后,样本根据其内部定义的已知bot名称列表,查找并击杀这些进程,如此一来即可使被感染设备从其他僵尸网络中解放,只受自己的控制,达到独占该设备全部资源的目的。

图14 示例代码

接着,样本获取设备所属IP地址,以及尝试查找/usr/bin/python是否存在,如果成功查找到该文件,样本将会认为这是一台路由器设备,进而使用IP地址及ROUTER的参数通知C&C服务器;否则,样本将使用IP地址及SERVER参数通知目标服务器。如此的过程有利于攻击者在控制端对感染者来源进行区分,并具备在一定程度上使攻击者判断被感染设备是否为肉鸡的能力。

图15 示例代码

然后,样本部署Netcore漏洞扫描及Telnet弱口令扫描模块,用于主动感染其它设备。

图16 示例代码

这两个扫描模块将对包括以下网段在内的网段列表中IP进行扫描,实现自动传播的流程。

图17 示例代码

在完成上述过程以后,样本便开始构造注册报文通知C&C服务器。在本例中,样本使用如下格式向C&C服务器发送注册报文,并告知自身所处设备已被控制。

图18 示例代码

至此,样本的本地部署活动告一段落,样本将进入等待指令并执行的循环过程中。

>>>>

攻击阶段

在这个阶段,攻击者从控制服务器接受指令,执行攻击操作。

攻击者能够通过socket列表中的下标以及样本发送的注册报文区分不同的Bot,通过向列表中全部/部分socket发送消息,这样,攻击者可以调节控制集群的规模。样本从服务器获取信息,采用简单的字符串匹配方式来解析并执行指令。

图19 示例代码

样本中使用的全部指令字符串及功能见下表,其主要功能集中于多种DDoS行为。

指令字符串

功能描述

PING

心跳包,收到即返回"PONG!"作应答

GETLOCALIP

获取本机IP地址

BOTKILL

手动开启BotKiller模块,击杀其他僵尸网络进程

LOOPME

重新执行感染命令序列并结束自身进程,这一过程通常用于更新自身

TELNET

手动开启/关闭TELNET弱口令扫描模块

NETIS

手动开启/关闭NETCORE漏洞扫描模块

HOLD

TCP长连接攻击

JUNK

SYN_FLOOD攻击

UDP

UDP_FLOOD攻击

HTTP

HTTP_FLOOD攻击,内置多种UserAgent特征

CNC

TCP_FLOOD攻击

STOP

停止所有攻击

SH

执行shell命令

HOODASSSHIT

结束自身进程

需要注意的是,样本的源代码结构非常简单,仅仅包含两个.c文件,且代表指令的字符串以宏定义的形式展现,这意味着攻击者可以非常方便的修改指令格式以构造自己专用的僵尸网络,同时由于协议格式的多变,基于特定规则拦截该家族通信的防御效果降低了。例如,根据数据显示,仅在2018-01-31 20:17:43至2018-01-31 20:17:45短短的3秒钟时间内,捕获到来自3个不同C&C服务器要求开启扫描模块的指令,使用的指令字符串各不相同。故而在本例中,仅对该样本采用的指令表进行说明。


内容编辑:威胁情报中心    责任编辑:肖晴

期回顾

本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技创新中心。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技创新中心并附上本文链接。

关于我们


绿盟科技创新中心是绿盟科技的前沿技术研究部门。包括云安全实验室、安全大数据分析实验室和物联网安全实验室。团队成员由来自清华、北大、哈工大、中科院、北邮等多所重点院校的博士和硕士组成。

绿盟科技创新中心作为“中关村科技园区海淀园博士后工作站分站”的重要培养单位之一,与清华大学进行博士后联合培养,科研成果已涵盖各类国家课题项目、国家专利、国家标准、高水平学术论文、出版专业书籍等。

我们持续探索信息安全领域的前沿学术方向,从实践出发,结合公司资源和先进技术,实现概念级的原型系统,进而交付产品线孵化产品并创造巨大的经济价值。

长按上方二维码,即可关注我们


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存