飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2079|回复: 2

[病毒分析] Lightning 框架

[复制链接]
  • TA的每日心情
    开心
    2019-3-15 11:00
  • 签到天数: 262 天

    [LV.8]以坛为家I

    发表于 2022-7-23 21:49:08 | 显示全部楼层 |阅读模式
    本帖最后由 梦幻的彼岸 于 2022-7-23 21:51 编辑

    Lightning Framework: New Undetected “Swiss Army Knife” Linux Malware ⚡
    Lightning 框架: 一个未被发现的 "Swiss Army Knife(瑞士军刀级别) "Linux恶意软件
    原文地址:https://www.intezer.com/blog/res ... k-new-linux-threat/
    翻译:梦幻的彼岸
    1.jpg
    Lightning框架是一种新的未被发现的类似瑞士军刀的Linux恶意软件,具有模块化插件和安装rootkits的能力。
    年复一年,由于攻击者者对该空间的持续兴趣,Linux环境越来越成为恶意软件的目标。针对Linux环境的恶意软件在2021年激增,大量的创新导致了新的恶意代码,特别是在勒索病毒、木马和僵尸网络中。随着云计算使用的增加,难怪恶意软件的创新在这一领域仍在以惊人的速度加速发展。
    这是对一个对以前没有记录和没有检测到的Linux威胁的技术分析,这个威胁被称为 "Lightning框架"。很少看到为针对Linux系统而开发的如此复杂的框架。Lightning是我们发现的一个模块化框架,它有大量的能力,并且能够安装多种类型的rootkit,还能运行插件。该框架具有被动和主动与攻击者沟通的能力,包括在受感染的机器上打开SSH,以及多样的易被构造命令和控制配置。我们发布这个博客的目的是为了提供信息。我们没有在框架中引用的所有文件,但希望这个发布可以帮助其他人,如果他们拥有"拼图"的其它部分。我们没有观察到这种恶意软件被用于攻击。
    Lightning 框架的技术分析
    该框架由一个下载程序和核心模块组成,并有一些插件。恶意软件使用的一些插件是开源的工具。下面是该框架的规划布局图:
    2.jpg
    模块概述
    名称
    磁盘上的名称
    描述
    Lightning.Downloader
    kbiOSet
    下载核心模块及其插件的持久性模块。
    Lightning.Core
    kkdmflush
    Lightning 框架的main模块
    Linux.Plugin.Lightning.SsHijacker
    soss
    有一个关于这个模块的参考资料,但目前还没有发现样本。
    Linux.Plugin.Lightning.Sshd
    sshod
    使用硬编码的私钥和主机密钥的OpenSSH
    Linux.Plugin.Lightning.Nethogs
    nethoogs
    有一个关于这个模块的参考资料,但目前还没有发现样本. 估计是软件:Nethogs
    Linux.Plugin.Lightning.iftop
    iftoop
    有一个关于这个模块的参考资料,但目前还没有发现样本. 估计是软件: iftop
    Linux.Plugin.Lightning.iptraf
    iptraof
    有一个关于这个模块的参考资料,但目前还没有发现样本. 估计是软件: IPTraf
    Linux.Plugin.RootkieHide
    libsystemd.so.2
    有一个关于这个模块的参考资料,但目前还没有发现样本. LD_PRELOAD Rootkit
    Linux.Plugin.Kernel
    elastisearch.ko
    有一个关于这个模块的参考资料,但目前还没有发现样本。LKM Rootkit
    Lightning.Downloader
    Downloader模块的主要功能是获取其他组件并执行核心模块。
    3.jpg
    Downloader模块开始检查它是否位于工作目录/usr/lib64/seahorses/下,名称为kbioset。该框架大量使用错别字和伪装,以保持不被察觉。对海马的引用掩饰了密码和钥匙管理软件海马。如果不是,它将自己重新定位到该工作目录并执行该副本。Downloader将对主机名和网络适配器进行指纹识别,以生成一个GUID,该GUID将被发送到命令和控制(C2)服务器。
    4.jpg
    然后,Downloader将联系C2以获取以下模块和插件:
    • Linux.Plugin.Lightning.SsHijacker
    • Linux.Plugin.Lightning.Sshd
    • Linux.Plugin.Lightning.Nethogs
    • Linux.Plugin.Lightning.iftop
    • Linux.Plugin.Lightning.iptraf
    • Lightning.Core
    5.jpg
    联系C2的方法将在下面的可塑性C2部分描述(点击这里跳到该部分)。然后,Downloader将执行核心模块(kkdmflush)。
    6.jpg
    Lightning.Core
    核心模块是这个框架中的主要模块,它能够接收来自C2的命令并执行插件模块。该模块有很多功能,并使用一些技术来隐藏非常规内容,以保持在被探测的下运行。
    核心模块将模块的调用线程的名称修改为kdmflush,以使其看起来是一个内核线程。
    7.jpg
    接下来,核心模块通过创建一个在系统启动时执行的脚本来设置持久性。这是通过首先创建一个位于/etc/rc.d/init.d/elastisearch的文件来实现。该文件的名称似乎是typosquat elasticsearch。以下内容被写入该文件中:
    #!/bin/bash# chkconfig:2345 90 20/usr/lib64/seahorses/kbioset &
    这个脚本将在启动时执行Downloader模块。然后使用chkconfig工具添加该服务。
    8.jpg
    文件的时间戳被修改以隐藏伪装,这种技术被称为 "时间戳"。文件的最后修改时间被编辑成与whoami、find或su的时间一致。它将分别寻找每个文件,直到找到一个。这种技术被用于该框架所创建的大多数文件。
    9.jpg
    该恶意软件将试图隐藏其进程ID(PID)和任何相关的网络端口。这是通过将框架运行的PID写入两个文件来实现的:HPI和HPO。这些文件被解析,然后检查文件proc/y.y的存在。如果该文件存在,说明已经安装了一个rootkit。PID被写入proc/y.y,供rootkit使用,rootkit可以从ps和netstat等命令中擦除对框架中运行文件的任何引用。
    10.jpg
    核心模块将以与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)内容
    SetDomainSetting
    Updates 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存储在一个多态编码的配置文件中,该文件对每一次创建都是唯一的。这意味着配置文件将无法通过哈希值等技术进行检测。密钥是建立在编码文件的开头。
    11.jpg
    12.jpg
    解码的配置是用JSON构建的。在分析的样本中,默认配置使用本地IP地址10.2.22[.]67,端口为33229。

    13.jpg
    如果攻击者执行RunShellPure命令,还有一种被动的通信模式。这将在被感染的机器上用Linux.Plugin.Lightning.Sshd插件启动一个SSH服务。该插件是一个OpenSSH守护程序,有硬编码的私人和主机密钥,允许攻击者用自己的SSH密钥SSH到机器上,创造一个二级后门。
    14.jpg
    总结
    Lightning 是一个有趣的恶意软件,因为针对Linux开发的这样一个大型框架并不常见。虽然我们没有所有的文件,但我们可以根据我们拥有的模块的字符串和代码来推断一些缺失的功能。很快,我们将发布另一篇博客,介绍使用osquery检测Lightning框架的机会。

    我们要对我们在IBM和SentinelOne的朋友和合作伙伴在调查这一威胁时提供的帮助表示极大的感谢。
    Lightning 框架的IOCHashes
    文件
    SHA256
    Lightning.Downloader
    Lightning.Core
    Linux.Plugin.Lightning.Sshd
    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.

    [color=rgb(139, 138, 138) !important]复制代码



    MITRE ATT&CK
    Tactic
    Technique
    ID
    描述
    Persistence
    Boot or Logon Initialization Scripts
    一个init.d脚本被用来维持Downloader模块的持久性
    Persistence
    SSH Authorized Keys
    SSH密钥可以被添加到authorized_keys文件中
    Defense Evasion
    Obfuscated Files or Information
    C2配置文件在磁盘上被加密
    Defense Evasion
    Deobfuscate/Decode Files or Information
    C2配置文件用动态XOR算法进行解码
    Defense Evasion
    Hide Artifacts
    许多非常规内容被隐藏起来,包括端口、PID和文件时间戳。
    Defense Evasion
    Masquerading
    许多文件被伪装成其他文件或任务
    Defense Evasion
    Rootkit
    使用了LKM和LD_PRELOAD rootkits
    Defense Evasion
    Timestomp
    修改Lightning创建的文件以与其它程序的文件相匹配
    Defense Evasion
    File Deletion
    该框架有能力删除自己
    Discovery
    File and Directory Discovery
    该框架可以列出被感染系统中的文件和目录
    Discovery
    Network Service Discovery
    可以使用多个插件来进行网络服务探测活动
    Discovery
    Network Sniffing
    可使用多个插件来进行网络嗅探
    Discovery
    System Information Discovery
    Lightning 可以进行系统指纹识别
    Command and Control
    Data Encoding
    来自C2的数据被加密
    Command and Control
    Non-Application Layer Protocol
    与C2的通信是通过TCP进行的
    Command and Control
    Proxy
    该框架能够启动Socks5代理
    Command and Control
    Exfiltration Over C2 Channel
    数据可以被盗取

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    昨天 14:18
  • 签到天数: 349 天

    [LV.8]以坛为家I

    发表于 2022-7-24 08:01:58 | 显示全部楼层
    看起来很不错
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    前天 09:03
  • 签到天数: 510 天

    [LV.9]以坛为家II

    发表于 2022-7-24 15:49:33 | 显示全部楼层
    过来学习,多谢版版分享
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表