首页
论坛
课程
招聘
[翻译]Lightning 框架: 一个未被发现的 "Swiss Army Knife(瑞士军刀级别) "Linux恶意软件
2022-7-23 21:40 7963

[翻译]Lightning 框架: 一个未被发现的 "Swiss Army Knife(瑞士军刀级别) "Linux恶意软件

2022-7-23 21:40
7963

Lightning Framework: New Undetected “Swiss Army Knife” Linux Malware ⚡

原文地址:https://www.intezer.com/blog/research/lightning-framework-new-linux-threat/

翻译:梦幻的彼岸

Lightning框架是一种新的未被发现的类似瑞士军刀的Linux恶意软件,具有模块化插件和安装rootkits的能力。

年复一年,由于攻击者者对该空间的持续兴趣,Linux环境越来越成为恶意软件的目标。针对Linux环境的恶意软件在2021年激增,大量的创新导致了新的恶意代码,特别是在勒索病毒、木马和僵尸网络中。随着云计算使用的增加,难怪恶意软件的创新在这一领域仍在以惊人的速度加速发展。

这是对一个对以前没有记录和没有检测到的Linux威胁的技术分析,这个威胁被称为 "Lightning框架"。很少看到为针对Linux系统而开发的如此复杂的框架。Lightning是我们发现的一个模块化框架,它有大量的能力,并且能够安装多种类型的rootkit,还能运行插件。该框架具有被动和主动与攻击者沟通的能力,包括在受感染的机器上打开SSH,以及多样的易被构造命令和控制配置。我们发布这个博客的目的是为了提供信息。我们没有在框架中引用的所有文件,但希望这个发布可以帮助其他人,如果他们拥有"拼图"的其它部分。我们没有观察到这种恶意软件被用于攻击。

Lightning 框架的技术分析

该框架由一个下载程序和核心模块组成,并有一些插件。恶意软件使用的一些插件是开源的工具。下面是该框架的规划布局图:

模块概述

名称磁盘上的名称描述
Lightning.Downloaderkbioset下载核心模块及其插件的持久性模块。
Lightning.Corekkdmflush Lightning 框架的main模块
Linux.Plugin.Lightning.SsHijackersoss有一个关于这个模块的参考资料,但目前还没有发现样本。
Linux.Plugin.Lightning.Sshdsshod使用硬编码的私钥和主机密钥的OpenSSH
Linux.Plugin.Lightning.Nethogsnethoogs有一个关于这个模块的参考资料,但目前还没有发现样本. 估计是软件:Nethogs
Linux.Plugin.Lightning.iftopiftoop有一个关于这个模块的参考资料,但目前还没有发现样本. 估计是软件: iftop
Linux.Plugin.Lightning.iptrafiptraof有一个关于这个模块的参考资料,但目前还没有发现样本. 估计是软件: IPTraf
Linux.Plugin.RootkieHidelibsystemd.so.2有一个关于这个模块的参考资料,但目前还没有发现样本. LD_PRELOAD Rootkit
Linux.Plugin.Kernelelastisearch.ko有一个关于这个模块的参考资料,但目前还没有发现样本。LKM Rootkit

Lightning.Downloader

Downloader模块的主要功能是获取其他组件并执行核心模块。

Downloader模块开始检查它是否位于工作目录/usr/lib64/seahorses/下,名称为kbioset。该框架大量使用错别字和伪装,以保持不被察觉。对海马的引用掩饰了密码和钥匙管理软件海马。如果不是,它将自己重新定位到该工作目录并执行该副本。Downloader将对主机名和网络适配器进行指纹识别,以生成一个GUID,该GUID将被发送到命令和控制(C2)服务器。

然后,Downloader将联系C2以获取以下模块和插件:

  • Linux.Plugin.Lightning.SsHijacker
  • Linux.Plugin.Lightning.Sshd
  • Linux.Plugin.Lightning.Nethogs
  • Linux.Plugin.Lightning.iftop
  • Linux.Plugin.Lightning.iptraf
  • Lightning.Core

联系C2的方法将在下面的可塑性C2部分描述(点击这里跳到该部分)。然后,Downloader将执行核心模块(kkdmflush)。

Lightning.Core

核心模块是这个框架中的主要模块,它能够接收来自C2的命令并执行插件模块。该模块有很多功能,并使用一些技术来隐藏非常规内容,以保持在被探测的下运行。

核心模块将模块的调用线程的名称修改为kdmflush,以使其看起来是一个内核线程。

接下来,核心模块通过创建一个在系统启动时执行的脚本来设置持久性。这是通过首先创建一个位于/etc/rc.d/init.d/elastisearch的文件来实现。该文件的名称似乎是typosquat elasticsearch。以下内容被写入该文件中:

#!/bin/bash# chkconfig:2345 90 20/usr/lib64/seahorses/kbioset &

这个脚本将在启动时执行Downloader模块。然后使用chkconfig工具添加该服务。

文件的时间戳被修改以隐藏伪装,这种技术被称为 "时间戳"。文件的最后修改时间被编辑成与whoami、find或su的时间一致。它将分别寻找每个文件,直到找到一个。这种技术被用于该框架所创建的大多数文件。

该恶意软件将试图隐藏其进程ID(PID)和任何相关的网络端口。这是通过将框架运行的PID写入两个文件来实现的:HPI和HPO。这些文件被解析,然后检查文件proc/y.y的存在。如果该文件存在,说明已经安装了一个rootkit。PID被写入proc/y.y,供rootkit使用,rootkit可以从ps和netstat等命令中擦除对框架中运行文件的任何引用。

核心模块将以与Downloader相同的方式生成一个GUID并与C2联系。响应被解析,命令被执行。核心模块有以下命令:

命令描述
SystemInfo获取机器指纹信息
PureShellCommand运行Shell命令
RunShellPure启动Linux.Plugin.Lightning.Sshd(SSH Daemon)插件
CloseShellPure终止Linux.Plugin.Lightning.Sshd插件
Disconnect退出核心模块
GetRemotePathInfo采集给定路径的摘要
KeepAlive没有任何行动,连接仍然有效
UploadFileHeader检查文件的访问情况
FileEdit获取文件和相关时间信息
TryPassSSH在root/.ssh/authorized_keys文件中添加一个公钥
DeleteVecFile删除指定的文件或路径
PreDownloadFile计算文件的校验和
DownloadFile向C2发送文件
DeleteGuid删除框架
UpdateVersion调用Downloader模块来更新框架
UpdateRemoteVersion更新框架,包括下载程序
Socks5设置Socks5代理
RestorePlug与UpdateVersion相同
GetDomainSetting获取易被构造的C2配置文件(cpc)内容
SetDomainSettingUpdates the contents of the malleable C2 configuration file (cpc)
InstallKernelHide获取操作系统版本
RemoveKernelHide删除内核模块
UpdateKernelVersion删除内核模块并运行uname -r
OverrideFile覆盖指定的文件
UploadFileContent将服务器发送的数据写入文件中
LocalPluginRequest写入LD_PRELOAD rootkit或者LKM rootkit

网络通信

核心模块和下载模块的网络通信是通过TCP套接字进行的。数据的结构是JSON。C2存储在一个多态编码的配置文件中,该文件对每一次创建都是唯一的。这意味着配置文件将无法通过哈希值等技术进行检测。密钥是建立在编码文件的开头。

解码的配置是用JSON构建的。在分析的样本中,默认配置使用本地IP地址10.2.22[.]67,端口为33229。


如果攻击者执行RunShellPure命令,还有一种被动的通信模式。这将在被感染的机器上用Linux.Plugin.Lightning.Sshd插件启动一个SSH服务。该插件是一个OpenSSH守护程序,有硬编码的私人和主机密钥,允许攻击者用自己的SSH密钥SSH到机器上,创造一个二级后门。 

总结

Lightning 是一个有趣的恶意软件,因为针对Linux开发的这样一个大型框架并不常见。虽然我们没有所有的文件,但我们可以根据我们拥有的模块的字符串和代码来推断一些缺失的功能。很快,我们将发布另一篇博客,介绍使用osquery检测Lightning框架的机会。


我们要对我们在IBM和SentinelOne的朋友和合作伙伴在调查这一威胁时提供的帮助表示极大的感谢。

Lightning 框架的IOC

Hashes

文件SHA256
Lightning.Downloader48f9471c20316b295704e6f8feb2196dd619799edec5835734fc24051f45c5b7
Lightning.Corefd285c2fb4d42dde23590118dba016bf5b846625da3abdbe48773530a07bcd1e
Linux.Plugin.Lightning.Sshdad16989a3ebf0b416681f8db31af098e02eabd25452f8d781383547ead395237

Sigma 检测规则

title: Lightning Framework File Pathstatus: experimentaldescription: Detects creation of files related to Lightning Framework.author: Intezerreferences:
   - https://www.intezer.comlogsource:
   product: linux
   category: file_createdetection:
   selection1:
      TargetFilename|startswith:
         - '/usr/lib64/seahorses/'
   selection2:   
      TargetFilename|contains:
         - 'kbioset'
         - 'cpc'
         - 'kkdmflush'
         - 'soss'
         - 'sshod'
         - 'nethoogs'
         - 'iftoop'
         - 'iptraof'
   condition: selection1 and selection2falsepositives:
   - Unknown.
   
title: Lightning Default C2 Communicationstatus: experimentaldescription: Detects communication to default local ip for Lightning Frameworkauthor: Intezerreferences:
  - https://intezer.comlogsource:
  category: firewalldetection:
  select_outgoing:
    dst_ip: 10.2.22.67
    dst_port: 33229
  condition: select_outgoingfalsepositives:
  - Unknown.

MITRE ATT&CK

TacticTechniqueID描述
PersistenceBoot or Logon Initialization ScriptsT1037一个init.d脚本被用来维持Downloader模块的持久性
PersistenceSSH Authorized KeysT1098.004SSH密钥可以被添加到authorized_keys文件中
Defense EvasionObfuscated Files or InformationT1027C2配置文件在磁盘上被加密
Defense EvasionDeobfuscate/Decode Files or InformationT1140C2配置文件用动态XOR算法进行解码
Defense EvasionHide ArtifactsT1564许多非常规内容被隐藏起来,包括端口、PID和文件时间戳。
Defense EvasionMasqueradingT1036许多文件被伪装成其他文件或任务
Defense EvasionRootkitT1014使用了LKM和LD_PRELOAD rootkits
Defense EvasionTimestompT1070.006修改Lightning创建的文件以与其它程序的文件相匹配
Defense EvasionFile DeletionT1070.004该框架有能力删除自己
DiscoveryFile and Directory DiscoveryT1083该框架可以列出被感染系统中的文件和目录
DiscoveryNetwork Service DiscoveryT1046可以使用多个插件来进行网络服务探测活动
DiscoveryNetwork SniffingT1040可使用多个插件来进行网络嗅探
DiscoverySystem Information DiscoveryT1082Lightning 可以进行系统指纹识别
Command and ControlData EncodingT1132来自C2的数据被加密
Command and ControlNon-Application Layer ProtocolT1095与C2的通信是通过TCP进行的
Command and ControlProxyT1090该框架能够启动Socks5代理
Command and ControlExfiltration Over C2 ChannelT1041数据可以被盗取



[2022冬季班]《安卓高级研修班(网课)》月薪两万班招生中~

最后于 2022-7-23 21:44 被梦幻的彼岸编辑 ,原因:
收藏
点赞3
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回