警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

admin 2025年4月8日20:15:17评论17 views字数 5214阅读17分22秒阅读模式

概述

这是我针对年初出现的新型 Babuk 勒索软件的报告。 由于这是首次在野外检测到此恶意软件,因此Babuk完全没有被混淆也就不足为奇了。 总体而言,它是一种相当标准的勒索软件,利用了我们看到的一些新技术,例如多线程加密以及滥用类似于ContiREvilWindows 重启管理器。 对于加密方案Babuk使用其自己的SHA256 哈希ChaCha8 加密椭圆曲线 Diffie-Hellman (ECDH) 密钥生成和交换算法来保护其密钥并加密文件。 与之前的许多勒索软件一样,它也能够通过枚举可用的网络资源来传播其加密。

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 1:RaidForums Babuk 泄漏

海外合作委员会

Babuk Ransomware 以 32 位 .exe 文件的形式出现。

  • • MD5:e10713a4a5f635767dcd54d609bed977
  • • SHA256:8203c2f00ecd3ae960cb3247a7d7bfb35e55c38939607c85dbdb5c92f0495fa9
  • • 示例:https://bazaar.abuse.ch/sample/8203c2f00ecd3ae960cb3247a7d7bfb35e55c38939607c85dbdb5c92f0495fa9/
警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 2:VirusTotal 结果

赎金记录

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 3:Babuk 的赎金纸条

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 4:Babuk 的网站
Babuk 团队非常不专业,因为他们没有删除他们与受害者之间的聊天记录)

代码分析

命令行参数

Babuk 可以使用或不使用 命令行参数。 如果没有给出参数,则仅限于加密本地机器。

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 5:参数解析

如果给出了参数,它将在执行时处理这些参数并相应地采取行动。

(点击图片可查看完整电子表格 - 这里可能需要您在公众号文章中处理成链接或说明)

终止服务

Babuk 的作者对加密前需要关闭的 服务 列表进行了硬编码。 在终止服务之前,Babuk 将调用 EnumDependentServicesA 来检索依赖于该指定服务的每个服务的名称和状态。 然后它将使用控制代码 SERVICE_CONTROL_STOP 调用 ControlService 来停止它们,然后以同样的方式终止主服务。

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 6:终止服务

以下是即将关闭的服务列表。

Plain Text
vss, sql, svc$, memtas, mepocs, sophos, veeam, backup, GxVss, GxBlr, GxFWD, GxCVD, GxCIMgr, DefWatch, ccEvtMgr,
ccSetMgr, SavRoam, RTVscan, QBFCService, QBIDPService, Intuit.QuickBooks.FCS, QBCFMonitorService, YooBackup,
YooIT, zhudongfangyu, sophos, stc_raw_agent, VSNAPVSS, VeeamTransportSvc, VeeamDeploymentService, VeeamNFSSvc,
veeam, PDVFSService, BackupExecVSSProvider, BackupExecAgentAccelerator, BackupExecAgentBrowser,
BackupExecDiveciMediaService, BackupExecJobEngine, BackupExecManagementService, BackupExecRPCService,
AcrSch2Svc, AcronisAgent, CASAD2DWebSvc, CAARCUpdateSvc,

终止正在运行的进程

作者还硬编码了需要关闭的 进程 列表。 通过调用 CreateToolhelp32SnapshotProcess32FirstW 和 Process32NextW 检查系统上运行的所有进程,Babuk 可以循环查找需要关闭的进程。 一旦找到,它将调用 TerminateProcess 来终止它。

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 7:终止进程

以下是要关闭的进程的列表。

Plain Text
sql.exe, oracle.exe, ocssd.exe, dbsnmp.exe, synctime.exe, agntsvc.exe, isqlplussvc.exe,
xfssvccon.exe, mydesktopservice.exe, ocautoupds.exe, encsvc.exe, firefox.exe, tbirdconfig.exe,
mydesktopqos.exe, ocomm.exe, dbeng50.exe, sqbcoreservice.exe, excel.exe, infopath.exe, msaccess.exe,
mspub.exe, onenote.exe, outlook.exe, powerpnt.exe, steam.exe, thebat.exe, thunderbird.exe,
visio.exe, winword.exe, wordpad.exe, notepad.exe

删除卷影副本

Babuk 尝试在加密之前和之后删除 卷影副本。 首先,它调用 Wow64DisableWow64FsRedirection 来禁用文件系统重定向,然后调用 ShellExecuteW 来执行此命令

cmd.exe /c vssadmin.exe delete shadows /all /quiet

删除卷影副本后,Babuk 检查系统是否在 64 位处理器下运行。 如果是,则调用 Wow64RevertWow64FsRedirection 以再次启用文件系统重定向。

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 8:删除卷影副本

加密

密钥生成

首先,Babuk 使用 RtlGenRandom 生成 4 个随机缓冲区。 其中两个用作 ChaCha8 密钥,另外两个用作 ChaCha8 随机数

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 9:随机生成 ChaCha8 密钥和随机数

接下来,它将使用第一个密钥和随机数加密第二个 ChaCha8 密钥。 之后,再使用加密的第二个密钥和随机数加密第一个密钥。 该加密的第一个密钥被视为本地机器的 椭圆曲线 Diffie-Hellman (ECDH) 私钥

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 10:随机生成 ECDH 私钥

从这里,Babuk 使用来自此ECDH库的代码从私钥生成本地ECDH 公钥。 然后,它使用本地私钥和作者的硬编码公钥生成共享秘密。 该共享密钥通过SHA256 哈希算法生成 2 个ChaCha8 密钥,用于稍后加密文件。 为了能够解密文件,Babuk将本地公钥存储在APPDATA文件夹中的ecdh_pub_k.bin文件中。 由于ECDH的机制,勒索软件作者可以使用自己的私钥和受害者的公钥生成共享密钥 来解密文件。 这使得受害者无法自行解密,除非他们能在恶意软件完成加密之前捕获其中随机生成的私钥。

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 11:从 ECDH 共享密钥生成 ChaCha8 密钥

多线程

从程序员的角度来看,Babuk 的 多线程 方法相当平庸。 首先,它通过将受害者机器上的核心数量加倍来确定要产生的线程数量,并分配一个数组来存储所有线程句柄。

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 12:线程初始化

这种方法的第一个问题与操作系统中的 线程并发性 有关。 每个进程都可能创建大量线程。 然而,在理想情况下,最好每个处理器运行一个线程,以避免线程在加密期间相互竞争处理器的时间和资源。 然而,如果作者实施了类似队列的结构来处理加密请求,以充分利用受害者 100% 的处理能力,那么这本身就不是什么大问题。 不幸的是,他们决定只为每个现有驱动器生成一个加密线程。

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 13:启动加密线程

如果驱动器数量少于处理器数量(这种可能性很大),Babuk 就不会生成尽可能多的线程来加密。 由于每个线程负责整个驱动器,这迫使它使用传统的 递归方法 遍历其自己的文件夹,由于工作量巨大导致加密时间更长。 每个线程的工作量根据其加密的驱动器的大小而变化,因此平均加密时间将大约接近一个线程加密最大驱动器所需的时间。 这是低效的,并且确实违背了使用 多线程加密 驱动器的目的。

文件夹遍历

如上所述,Babuk 使用 递归方法 遍历和加密文件。 使用 FindFirstFileW 和 FindNextFileW 调用,它会遍历每个目录来查找文件和子目录。 当遇到目录时,它会再次递归调用 main_encrypt 函数。 但是,Babuk 只深入 16 个目录层,因此它可能不会加密驱动器中的每个文件夹以节省时间。 当遇到文件时,它会检查文件名是否为 How To Restore Your Files.txt 或者文件扩展名是否为 .__NIST_K571__,以避免加密 勒索信 或加密文件。

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 14:遍历文件夹

杀死文件所有者

与 ContiREvil 勒索软件类似,Babuk利用Windows 重启管理器终止正在使用文件的任何进程。 这确保没有任何因素阻止它打开和加密文件。 这是通过调用RmStartSessionRmRegisterResourcesRmGetList来实现的,以获取正在使用指定文件的进程列表。 如果该进程不是explorer.exe或关键进程,则Babuk将调用TerminateProcess 来终止它。

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 15:终止正在使用文件的进程

文件加密

Babuk 的 文件加密 分为两种不同的类型——小文件加密 和 大文件加密

对于小于 41943040 字节或大约 41 MB 的小文件,该文件将被完全映射并使用 ChaCha8 加密两次。

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 16:小文件加密

对于大文件,加密略有不同。 为了节省时间,整个文件被分成三个大小相同的区域。 对于每个区域,只有前 10485760 个字节或 10 MB 会被加密。

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 17:大文件加密

对于加密,Babuk 使用从 ECDH 共享密钥 的 SHA256 哈希 生成的两个 ChaCha8 密钥 作为加密密钥,并使用共享密钥的前 12 个字节作为随机数。

远程文件加密

为了从受害机器加密 远程驱动器Babuk 调用 WNetGetConnectionW 来检索与这些驱动器关联的网络资源的名称并将其传递给加密线程。

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 18:加密远程驱动器

如果给出正确的参数,它还会加密机器 LAN 上的网络共享。 Babuk 调用 WNetOpenEnumW 和 WNetOpenEnumW 遍历网络上的远程文件夹,并使用类似上面提到的 递归方法 加密文件。

警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

图 19:LAN 加密

主要发现

Babuk 是今年年初出现的一种新型 勒索软件。 尽管其编码方式比较业余,但其采用 椭圆曲线 Diffie-Hellman 算法 的强加密方案迄今为止已证明能够有效攻击许多公司。 由于恶意软件作者为每个 Babuk 样本使用一个私钥,因此很明显他们的主要目标是大型公司,而不是普通计算机用户。 到目前为止,根据 勒索信 中嵌入的网站以及 Raidforums 上的泄漏,他们已经成功入侵了全球 5 家不同的公司。

给新受害者的信息

我最近注意到该页面的欧洲流量明显增多,我猜测这是因为新的受害者查看该页面是为了更好地了解 勒索软件。 这篇博文确实过时了,因为 Babuk 已经发生了很大的变化,而且恶意软件与我在这里谈论的有很大不同。 如果最近的 Babuk 受害者有兴趣获取有关此 勒索软件 新版本的更多信息,或者需要任何帮助来分析任何样本,请随时通过我的电子邮件 cdong49@gatech 或 Twitter 与我联系!

YARA 规则

Plain Text
rule BabukRansomware {
        meta:
                  description = "YARA rule for Babuk Ransomware"
                reference = "http://chuongdong.com/reverse%20engineering/2021/01/03/BabukRansomware/"
                author = "@cPeterr"
                date = "2021-01-03"
                rule_version = "v1"
                malware_type = "ransomware"
                tlp = "white"
        strings:
                $lanstr1 = "-lanfirst"
                $lanstr2 = "-lansecond"
                $lanstr3 = "-nolan"
                $str1 = "BABUK LOCKER"
                $str2 = ".__NIST_K571__" wide
                $str3 = "How To Restore Your Files.txt" wide
                $str4 = "ecdh_pub_k.bin" wide
        condition:
                all of ($str*) and all of ($lanstr*)
}

原文始发于微信公众号(网安守护):警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月8日20:15:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   警惕新型 Babuk 勒索软件:技术揭秘与政府及企业网络安全预警http://cn-sec.com/archives/3930582.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息