长亭百川云 - 文章详情

Operation Veles:针对全球科研教育领域长达十年的窃密活动

奇安信威胁情报中心

63

2024-07-13

概述

长期以来,安全厂商在研究与Linux系统相关的窃密事件方面一直存在不足,市面上披露的大部分APT攻击都集中在非涉密的办公机器(windows平台),窃取的数据大部分为非涉密的未公开内部文档,我们认为这种类型的窃密攻击炒作噱头大于实际危害。然而,在科学研究领域,Linux服务器通常承载着重要数据,其安全性至关重要。因此,加强对linux系统的安全研究和事件监控,是保卫国家科学技术高质量发展的关建任务。

  奇安信威胁情报中心在启动UTG编号后,一直在政企终端中紧密监控只针对服务器区进行渗透的攻击集合,发现了UTG-Q-008、UTG-Q-009等数个对政企造成巨大危害的攻击团伙,其中UTG-Q-008是唯一一个只针对Linux平台进行攻击活动的组织,背后拥有庞大的僵尸网络,经过长达一年的高强度跟踪,我们最终证实了UTG-Q-008调用僵尸网络资源针对国内科研教育领域进行窃密活动的证据,攻击活动中高达70%的基础设施为跳板服务器,并且每次开展新活动时都会更换新跳板,攻击者掌握的域名中最早十年前就开始活跃,对抗强度远超主流APT组织,让我们深刻体会到网络资源就是最好的“0day武器”。攻击流程图如下:

目标

UTG-Q-008针对国内的攻击活动拥有多个攻击列表,我们只拿到了其中一个,包含国内五千多个网段:

去重后包含了国内一千多万个目标IP,经过详细的比对最终确认这些目标IP大部分为CN CER(China Education and Research)网络的资产,攻击针对性非常强,除此之外UTG-Q-008还对中国和美国顶级的生物基因和RNA免疫治疗科研项目有着浓厚的兴趣,对这个领域有需求的组织并不多见,只有我们之前披露的Operation HideBear行动中[1]曾有过涉及。

僵尸网络

从防御者的视角来看攻击者几乎拥有无限的网络资源,每次大规模活动时受害的 Linux 服务器请求 payload 的域名和反弹 shell 的 IP 均为全新的跳板服务器,攻击时间通常在凌晨0-4点之间,shell的持续时间仅有2-3分钟,导致传统的IOC情报无法对其进行有效的防御。

扫描和爆破

目前很多单位都会修改位于边界的linux服务器ssh默认端口,所以UTG-Q-008第一步要调用僵尸网络海量的网络资源对目标网络进行分布式的SYN扫描探测出开放的端口,我们计算了单个IP的SYN扫描频率:平均每秒25-35次,同理在后续的分布式爆破活动中单个IP每秒爆破次数不超过十次,在这种对抗策略下UTG-Q-008给我们带来一点小小的爆破震撼,在一个月内成功爆破了9台服务器的root密码,其中包含了6台科研服务器,3台边界设备,边界设备的型号主要为防火墙、路由器、主机的带外管理。

由于我们团队长期与定向性攻击进行对抗,第一次观察到僵尸网络直接参与窃密的案例,受害的数量和质量都超出了我们的认知范围,在以往的APT案例中想要在linux服务器区达到如此“辉煌的战绩”,没有几个0day是无法实现的。

僵尸网络资源分布

       我们对ssh登录的源IP的数量和地区进行了简单的统计,中国被控节点最多,美国次之。

       数百个节点中没有比较统一的特征,只有几十台节点装有zabbix PowerMTA monitoring的web服务器,在奇安信僵尸网络系统中进行回滚发现有三个节点命中了Perlbot僵尸网络,三个节点命中了Outlaw,一个节点命中了mirai僵尸网络,攻击者在横向移动时释放的nanobot与Perlbot非常相似,由于Perlbot本身是一个非常简单的脚本木马,任何人都可以使用,所以我们只能确认攻击国内这部分的僵尸网络集群的网络资源能够被UTG-Q-008调用,而mirai节点对应的集群我们无法对其进行归属,两个不同僵尸网络的节点出现重叠属于正常现象。

僵尸网络参与窃密的事件并不新奇,关键在于僵尸网络参与到哪种程度。例如2024年Moobot僵尸网络给APT28提供网络代理[2],用于投递鱼叉邮件;2019年lazarus利用TrickBot僵尸网络下发特马用于经济活动[3],但是经过我们对UTG-Q-008长达一年的跟踪,我们认为其背后的僵尸网络本身在参与窃密活动,从目标测绘、暴力破解、漏洞利用、木马组件到C&C基础设施,僵尸网络都有深度参与。那么,它在Windows平台上的表现如何呢?

UTG-Q-006与UTG-Q-008的联系

       UTG-Q-006是半公开的内部组织,主要目标是暴露在公网上的windows设备,背后同样依托于一个庞大僵尸网络,我们没有拿到该组织的目标列表,但是该团伙仅用了半个月的时间成功爆破了重点单位RDP端口八位非弱口令密码,在横向移动时,UTG-Q-006展现出了极致的LOLbins手法,仅依靠合法工具(如AnyDesk、Chisel、Advance Port Scanner)在内网中漫游,最终入侵了MES服务器。该行为对工业生产流程造成了潜在的影响。

       我们将UTG-Q-006与UTG-Q-008的爆破节点进行了比较,发现了数个节点的重叠,更为重要的是UTG-Q-006控制的几百个爆破节点在僵尸网络系统中也命中了十几个的Outlaw僵尸网络的活动。

由于僵尸网络的复杂性,我们只能证明UTG-Q-008、UTG-Q-006和 outlaw之间互有重叠,无法判断它们之间属于雇佣关系还是隶属关系。不同攻击集合中的节点重叠情况如下:

       在我们一年的监控期间,这批针对国内的僵尸网络节点从未发起过DDOS活动,这对于传统的僵尸网络来说是非常罕见的现象。

武器组件

       攻击者的武器一般都以tar的格式打包存储在跳板服务器上,基础设施与上述僵尸网络的节点没有重叠,被控的服务器所挂载的正常服务较为杂乱,能够识别出来的只有wordpress框架并且大部分跳板服务器带有域名,其中有一个国内的合法域名距今已经有14年之久,所以攻击者一般都使用跳板域名进行活动。跳板服务器所在国家占比如下:

Nanobot组件

攻击者拿到服务器权限后一般会通过wget或者Curl从跳板服务器上下载Nanobot组件,组件启动流程如下:

攻击者在注释中称启动的Run64为Nanobot,经过分析该ELF可执行文件由Python打包,核心逻辑与开源的Perlbot非常相似。

从连续的流量中我们可以确认当Nanobot的C2建立连接之后,攻击者选择启动新的反弹shell或者SSH反向隧道的方式来下载后续的插件,这种临时shell所连接的跳板C2与上述僵尸网络节点和存储武器的跳板服务器均没有重叠,并且shell只持续2-3分钟,很难对其进行捕获和分析,反弹shell的跳板IP对应类型占比如下,包含 Ubiquiti路由器、未知的智能家居设备、exchange服务器等。

内网探测组件

      UTG-Q-008拥有多种类型的内网扫描器,一般用于扫描内网中的B段机器的指定端口是否开放。

       攻击者收集完内网的网段后会下发横向移动组件。

横向移动组件

       横向移动组件流程如下:

       步骤较多大体上分为两段,第一段的实际上是在B段扫描器生成的结果基础上对目标内网的linux服务器进行ssh端口测绘,将测绘出的结果banner.log与工具包中内置的exclude.lst进行比较,删掉特定SSH Banner的linux服务器,攻击者的爆破程序可能对有些SSH版本做了优化:

第二段的主要功能是调用pfile读取linux服务器的etc/passwd文件获取用户名,在用户名后面添加弱口令的方式来生成额外的密码本。例如《root+“1234”》,将新生成的密码本添加到工具包中内置的pass文件中。

原始的Pass文件是UTG-Q-008针对中国地区的目标特别设计的密码本,内置4000多个账密,大部分为汉语拼音:

       经过详细的分析,我们认为这些账密绝非随机生成,而是攻击者在国内多年的攻击活动中积累所得,保守估计国内有上千台服务器曾经在UTG-Q-008的历史活动中被入侵,最终启动parse开始爆破内网服务器,首先会发起Http请求读取内置的跳板URL的数据来验证lan脚本中传入的参数是否合法,网络验证成功后才会进行爆破。

       攻击者可能觉得工具包中六个golang编写的ELF太过于繁琐,在其他机器的横向过程中释放了一个轻量化python脚本,舍弃了SSH Banner测绘的流程,仅保留了第二段的逻辑。

       得益于UTG-Q-008在国内“深耕”多年的努力,其设计的这套组件在linux服务器区的内网横向移动中取得了不俗的成果。

FRP组件

      当攻击者想要登录内网机器时,一般会在边界服务器上启动FRP反向代理,执行流程如下:

       FRP还有一个用处:当内网横向移动组件没有起到太大的效果时,可以利用FRP隧道调用外部僵尸网络的算力针对内网重要机器进行爆破。

窃密插件

       深入到内网到一定程度后,攻击者会选择在重要的服务器上安装窃密插件,ELF启动后会执行内置的Bash脚本,Bash文件包含大量的正则表达式用于收集linux服务器上存储的敏感信息,从功能上分有6部分,每部分下有十条左右的匹配规则,我们挑选出部分规则做介绍。

  1. 对linux上各种历史文件和隐藏文件进行解析,匹配出潜在的ssh、ftp等包含敏感信息的命令。

  2. 寻找VNC凭证并下载解密插件进行解密

  3. 提取sshpass凭证、github凭证和其他类型的凭证文件

  4. 搜索多个符合条件的文件,并使用对应的正则表达式提取文件中的敏感信息,例如搜索特定目录下的.gitconf文件,提取邮箱信息。

  5. 分析系统日志和代码,例如在/usr/include/目录下的文件中搜索明文账密。

在分析过程中发现UTG-Q-008针对postech目录下小于15k的文件内容做了独立的过滤条件,经过搜索postech似乎是韩国一所研究型的大学,暂不清楚为什么在针对国内的科研体系攻击者中使用该规则,可能是攻击者忘记删除,也可能是想要获取postech与国内合作项目的信息。

       总之,这套复杂的窃密脚本给攻击者带来了巨大的正向收益,获取git凭证后,直接从内网的代码服务器拉去源代码并和服务器上的科研数据一起打包传到跳板服务器上。

xmrig

      没有任何一个攻击者能够拒绝在一台装有五张RTX4090或者八张RTX3090显卡的linux服务器上安装挖矿组件,尽管我们的研究团队并不是满脑子只有地缘政治的民族主义者,但是这种行为不得不让我们思考攻击者是否想要阻碍我国科学技术的发展,从结果上看xmrig组件的存在能够很好的掩盖UTG-Q-008的真实目的,毕竟上述介绍的各种组件在实际攻击过程中最多只在受害机器上停留五分钟,而xmrig组件则会一直运行到我们上门取证为止。

受害范围

基于奇安信遥测数据,最近三年的受害IP(能够定位出具体单位)数量高达1500+,教育网(CER)占比最高,符合UTG-Q-008攻击列表中的内容。

       我们还监控到一些境外的受害IP,但是由于我们没有足够的定位手段,只能通过IP反查方式来识别境外重要单位:

境外受害行业包含教育承包商、大学、联合国组织、研究所和信息技术公司等。

归因

UTG-Q-008有着标准的工作时间,在UTC +8的时区下,攻击者一般从14点工作到19点,但是经常在半夜出现加班的情况,主要集中在22点到第二天凌晨4点区间内,推测攻击者位于东欧,我们更倾向于僵尸网络是外包或者合作性质,而真正对科研数据和源代码有需求的“甲方”则藏匿在深渊之下。

在对基础设施进行扩线时我们在第三方平台上发现曾有nishang框架的payload回连过相同的跳板IP。

我们回顾了最近三年的内部报告,发现该框架在国内窃密活动中的使用非常少见,只有APT-Q-78在2022-2023年期间在针对我国科研领域的0day攻击中使用了nishang框架,这种目标行业和武器的双重巧合非常有趣,但是并不足以当作高可信度的归因。

总结

目前,基于奇安信威胁情报中心的威胁情报数据的全线产品,包括奇安信威胁情报平台(TIP)、天擎、天眼高级威胁检测系统、奇安信NGSOC、奇安信态势感知等,都已经支持对此类攻击的精确检测。

IOC

有关UTG-Q-008的商业报告和受害者请联系奇安信威胁情报中心(ti.qianxin.com)

参考链接

[1].https://ti.qianxin.com/blog/articles/The-Nightmare-of-EDR-Storm-0978-Utilizing-New-Kernel-Injection-Technique-Step-Bear-CN/

[2].https://www.bleepingcomputer.com/news/security/fbi-disrupts-russian-moobot-botnet-infecting-ubiquiti-routers/

[3].https://www.sentinelone.com/press/sentinellabs-identifies-hidden-link-between-trickbot-anchor-purported-north-korea-lazarus-tool-deployment/

点击阅读原文至ALPHA 7.0

即刻助力威胁研判

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2