【病毒分析】Lockbit 3.0勒索病毒加密程序分析报告

时间: 2024-10-17 16:21:08 浏览量:238

0x1背景:

  在2022年,LockBit是全球规模最大的勒索软件变种,且在2023年继续肆虐。自2020年1月以来,使用LockBit的附属机构已针对各个规模的关键基础设施领域的组织进行了攻击,包括金融服务、食品和农业、教育、能源、政府和紧急服务、医疗保健、制造和交通等。LockBit勒索软件运营采用了勒索软件即服务(RaaS)模式,招募合作伙伴利用LockBit勒索软件工具和基础设施进行勒索软件攻击。由于这一行动中存在大量未连接的附属机构,观察到的LockBit勒索软件攻击在策略、技术和程序(TTP)方面呈现出明显的差异。这种观察到的勒索软件TTP差异给致力于维护网络安全和防范勒索软件威胁的组织带来了重大挑战。

图 1:LockBit 3.0 Builder 在 Twitter 上泄露

​   然而,在 2022 年 9 月,Twitter 用户 3xp0rtblog 宣布该勒索软件的构建器已被 ali_qushji 泄露,可以从 GitHub 上下载。

  "招募合作伙伴":是指LockBit勒索软件运营者主动寻找和吸纳其他人或组织作为合作伙伴或下属,共同参与勒索软件攻击活动。

图 2:LockBit 3.0 构建器

0x2 Lockbit 3.0勒索病毒简介

  LockBit 勒索病毒为LockBit 2.0 升级版本,包含先前2.0所有功能,初始载荷交付给第三方C2(如Cobalt Strike)进行处理。

  LockBit 只在管理员权限执行,如果不存在权限则进行 Bypass UAC技术进行管理员权限提升。

  LockBit 3.0 将自身备份写入%programdata%目录,然后从此处启动进程。

  LockBit 3.0 加密阶段的速度极快,即使传播到相邻主机也同样如此。LockBit 3.0勒索软件的有效负载能够在不到一分钟的时间内完全加密我们的测试主机。

  在执行过程中,LockBit 3.0勒索软件会对桌面背景进行更改。

0x3 Lockbit 3.0勒索病毒的分析

  Lockbit 3.0 使用了多种反分析技术来阻碍静态以及动态分析:

  1. 入口使用保护壳保护

  2. 代码保护

  3. 函数混淆

  4. 动态解析

  5. 函数解密计算跳转

  6. 反调试技术

  7. 反沙盒技术

  对于安全研究人员来说,LockBit 3.0 是一个挑战,因为每个恶意软件实例都需要一个独特的密码才能运行,没有这个密码,分析将变得极其困难或不可能,该密码保存在生成器的目录下:

  程序入口进行了加壳混淆:

  该入口通过start的call函数进行解密:

  当恶意软件运行完loc_40639C函数后后,保护壳被脱掉:

  函数解密计算跳转:

  反调试:

  勒索软件会检查调试器:

  HEAP_TAIL_CHECKING_ENABLED (0x20) 、 HEAP_VALIDATE_PARAMETERS_ENABLED (0x40000000)、

  LockBit 3.0 检查其PEB(过程环境块)中的值,以检查是否设置了:HEAP_VALIDATE_PARAMETERS_ENABLED。

  执行NtSetInformationThread 函数,函数参数的值为 0xFFFFFFFE 和 0x11 ,这会让勒索软件的线程无法被调试器的断点捕获到。

0x4 停止服务:Windows Defender

  第一个线程会删除 Windows 安全服务。这是通过利用 Trusted Installer 服务来实现的。Trusted Installer 是一个被广泛使用的受信任的安装程序,通常以其显示名称“Windows 模块安装程序”而知名,它主要用于下载和安装 Windows 更新和可选组件。如果 Trusted Installer 未在运行,则会启动该服务,并复制其访问令牌句柄,以允许当前线程访问大多数其他正在运行的服务。利用这个令牌,LockBit 3.0 枚举正在运行的服务,并停止并删除与 config.json 中预定义的服务之一匹配的任何服务。完成后,线程将退出,并且不会再次启动。

  通知 Windows 安全中心已停止

  尝试重新启动 Windows 安全中心时出错

  在测试期间,短暂地显示一个小任务栏通知,通知用户 Windows 安全中心服务已停止。但是,由于该服务不仅已停止,而且还被删除,因此无法使用 Windows 通知重新启动该服务。

服务描述
wscsvcWindows 安全中心服务
SppsvcMicrosoft 软件保护服务-许可
WdbootWindows defender ELAM(早期启动反恶意软件)驱动程序
WdfiterWindows defender微型筛选器驱动程序
WdnisdrvWindows defender防病毒网络检查系统驱动程序
WdnissvcWindows defender网络检查服务
WindefendWindows defender服务

  请务必考虑 Windows 安全服务是此处的目标,因为这些服务列在默认的config.json 文件中。如果威胁参与者使用此构建器列出其他服务,则很可能会停止其他服务。

  删除服务之后,恶意软件将启动几个额外的线程。图 12 中的屏幕截图展示了运行时间最长的线程。第一个优先级是启动处理 Windows 回收站中文件的线程,然后是用于监视和终止 SQL 进程的线程。接下来有一个专门用于将赎金记录写入目录的线程。最后启动的线程是用于对文件进行加密的线程。在下面的屏幕截图中,有三个线程专门用于此操作,但线程数量是动态的,并且会根据可用的系统资源以及排队等待加密的项目的数量和类型而增加或减少。例如,标识为加密的网络资源与本地系统上的网络资源是分开处理的。

0x5 Lockbit 3.0特性

  1. 回收站的文件无法恢复:

  存在一个专门的线程来处理在回收站中找到的文件。回收站中的文件并未进行加密;相反,每个文件的内容会被替换为由0x10000字节块中随机生成的字节,然后再将其删除。因此,即使使用解密工具,回收站中的所有文件都无法恢复。

  1. 终止sql检查

  一个独立的线程持续运行,监视并停止任何 SQL 进程。它通过每隔两秒获取一次服务列表来实现此目的。每个服务名称都会传递给isSQL()函数,该函数会查找与字符串"SQL"不区分大小写的任何匹配项。如果名称包含此序列,则会终止该进程。与许多其他线程不同,该线程在进程的生命周期内一直运行,以确保在LockBit 3.0执行勒索活动时,SQL进程不会超过两秒钟运行。

  1. 删除卷影副本

  有一个线程专门用于删除卷影副本。卷影副本是卷的快照,它在一个明确定义的时刻复制卷上保存的所有数据。这是通过调用 IWbemProvider COM 对象并启动进程内服务器以允许对 Windows 管理界面进行查询来完成的。使用它来执行 WMI 查询“SELECT * FROM Win32_ShadowCopy”,然后删除每个返回的卷影副本。

  1. 写赎金记录

  赎金票据线程会检索并解密嵌入在config.json中定义的赎金票据。该注释将被写入每个未标记为排除的目录中。它的文件名由九个字母数字字符组成,后跟“.README.txt”(例如xEC9do6g6.README.txt)。前缀“.README.txt”是以先前生成的互斥GUID的MD5哈希的前6个字节进行base64编码而得到的。由于这种方法,系统上留下的所有赎金票据都具有相同的名称,但对于该系统是唯一的。

  1. 加密

  文件使用 Salsa-20 算法进行加密。在加密线程期间,包含私钥的内存通过大量使用 RtlEncryptMemory 和 RtlDecyptMemory 进行保护,这使得私钥仅在必要时在内存中以未加密的方式可用。

  1. 域控制器发现

  另一个线程会尝试使用在配置中找到的用户名和密码登录受感染的系统。默认情况下,配置文件(config.json)中的用户名和密码与管理帐户相关联。如果有任何登录成功,将评估令牌成员身份是否属于域管理员组,如果是,则进行复制操作。然后,另一个线程会查找并枚举可用的域控制器,获取每个控制器的名称,并尝试使用成功的用户名和密码进行远程登录。

  1. 连接的驱动器和共享网络资源

  其他线程会检查连接的驱动器和网络资源,特别关注安装操作系统的驱动器和网络资源。无论情况如何,这些新发现的路径都将传递给生成其他加密线程的函数。

  1. 网络流量

  命令和控制流量会通过TLS 1.2发送到config.json文件中列出的地址。不幸的是,在此TLS层下,变量及其值是经过AES加密的,并且每个请求的顺序都会被打乱。然而,POST请求的整体格式是一致的,如图14所示。我们始终可以观察到一个POST请求,后跟"/?"和一长串URL样式的variable=value对,用&符号分隔,然后是HTTP/1.1字段。User-Agent字符串是随机的,因此不应包含在签名中,但Connection、Accept-Encoding、Content-Type和Cache-Control字段是常量。数据部分的基本格式也是一致的,但长度可能会有所不同。

  尽管如果没有加密密钥,解密截获的网络流量几乎是不可能的,但以下示例提供了对传输信息的一般理解。

JSON 格式的 Exfil 数据

  1. 加密后修改壁纸

  加密后,桌面背景将更改为黑色,并带有白色文本,类似于图 14 中的示例。 此外,加密文件的图标更改为下图,左上角所示的 LockBit “B” 图标。

Ransom Desktop 和 LockBit 图标

  1. 解密器

  由于解密器是与构建器一起生成的,我们对其进行了操作和使用的测试。在运行时,将显示一个窗口,用户需要点击右侧的大按钮,上面标有“解密所有加密文件”。点击后,随着文件的解密,"所有解密文件"的计数器会逐渐增加。如图所示,应用程序将一直保持打开状态,但CPU使用率将停止处理文件,表明解密已完成。

  在处理结束时,我们发现有64个文件存在差异。为了查找这64个文件,我们扫描了文件系统以寻找任何以LockBit命名的文件,但未找到匹配项。回收站文件可能占据这64个文件中的一部分,但即使从回收站中删除了10个文件,我们仍然缺少64个文件。撇开这些丢失的文件不谈,回收站没有恢复,所有卷影副本也已被擦除。对于所有常规文件,解密器确实有效,文件已正确恢复,并且LockBit桌面背景已被删除。我们没有进行任何决定性测试来验证使用此工具报告的数量,以验证加密或解密的文件数量。

LockBit 3.0 解密器

0x6 MITRE ATT&CK TIDs

策略id名字描述
执行TA0002T1559.001组件对象模型用于删除卷影副本
T1106原生 API大量使用 Windows 本机 API 调用
T1047WMI用于删除卷影副本
持久性TA0003T1547.001注册表运行项如果在安全模式下启动,则将注册表设置为在下次正常启动时启动。
权限提升TA0004T1134.001令牌模拟使用已知令牌启动进程,目的是复制令牌。
防御规避TA0005T1562.001禁用或修改工具停止和删除 Windows 安全服务
T1562.002禁用 Windows 事件日志记录停止和删除负责事件日志记录的服务
T1562.004禁用系统防火墙停止和删除 Windows 防火墙的服务。
T1562.009安全模式启动在安全模式下启动时更改行为。
T1078.001默认帐户尝试使用默认管理员凭据登录
发现TA0007T1083文件和目录发现遍历挂载的磁盘和文件系统
T1135网络共享发现遍历所有共享网络资源
T1120外围设备发现定位可移动存储设备
T1057进程发现查找要停止的特定进程
T1018远程系统发现查找域控制器和 DNS 服务器
T1082系统信息发现获取有关操作系统的特定信息
横向移动 TA0008T1021.002Windows 管理员共享用于与远程网络共享交互的有效帐户的用户
指挥与控制TA0011T1071.001Web 协议使用 HTTP 与 C2 通信
T1573加密通道TLS 1.2 标准
外泄TA0010T1041通过 C2 通道外泄在 POST 请求中发送基本系统信息
冲击TA0040T1485数据销毁删除回收站和卷影副本
T1486数据加密以防影响勒索软件
T1491.001内部污损桌面已更改

0x7 入侵指标 (IOC)

IOC描述
C2BC344F6DDE0573EA9ACDFB6698BF4CMD5生成器文件
d6ae7dc2462c8c35c4a074b0a62f07cfef873c77SHA1 生成器文件
a736269f5f3a9f2e11dd776e352e1801bc28bb699e47876784b8ef761e0062dbSHA256生成器文件
71c3b2f765b04d0b7ea0328f6ce0c4e2MD5 注册机文件
bf8ecb6519f16a4838ceb0a49097bcc3ef30f3c4SHA1 注册机文件
ea6d4dedd8c85e4a6bb60408a0dc1d56def1f4ad4f069c730dc5431b1c23da37SHA256 注册机文件
4d388f95a81f810195f6a8dfe86be755MD5 资源 100
cb6fdb25a15b7797890fadc2b823984f93da5368SHA1 资源 100
cc3d006c2b963b6b34a90886f758b7b1c3575f263977a72f7c0d1922b7feab92SHA256 资源 100
87308ec0a44e79100db9dbec588260ecMD5 资源 101
939ff7e5eeaccb0c2f4ee080a8e403e532b6317aSHA1 资源 101
03b8472df4beb797f7674c5bc30c5ab74e8e889729d644eb3e6841b0f488ea95SHA256 资源 101
4655a7ac60ed48df9b57648db2f567efMD5 资源 103
02ea524429ba2aefac63fed27e924ab3659f8c00SHA1 资源 103
a0db5cff42d0ee0de4d31cff5656ed1acaa6b0afab07d19f9f296d2f72595a56SHA256 资源 103
23a30838502f5fadc97e81f5000c4190MD5 资源 106
9c1142122370c9b28b13aa147c6e126b3be50845SHA1 资源 106
ae993930cb5d97caa5a95b714bb04ac817bcacbbf8f7655ec43e8d54074e0bd7SHA256 资源 106

0x8 Yara规则

import "pe" 

rule LockBit_3_dll 

{ 

   meta:  

​        author = "VMware TAU" //bdana  

​        date = "2022-Oct-12"  

​        description = "Identifies LockBit 3.0 DLL encryptor by exported function names."  

​        rule_version = “1”  

​        yara_version = "4.2.3"  

​        exemplar_hash = “c2529655c36f1274b6aaa72911c0f4db7f46ef3a71f4b676c4500e180595cac6” 

   condition: 

​      pe.exports("del") and 

​      pe.exports("gdel") and 

​      pe.exports("gdll") and 

​      pe.exports("gmod") and 

​      pe.exports("pmod") and 

​      pe.exports("sdll") and 

​      pe.exports("wdll") 

} 

  

rule LockBit_3_exe 

{ 

   meta: 

​        author = "VMware TAU" //bdana 

​        date = "2022-Oct-12" 

​        description = "Identifies LockBit 3.0 exe encryptor section names, and artifact section names." 

​        rule_version = “1” 

​        yara_version = "4.2.3" 

​        exemplar_hash = “5202e3fb98daa835cb807cc8ed44c356f5212649e6e1019c5481358f32b9a8a7” 

  strings: 

​      $text = ".text" ascii wide 

​      $itext = ".itext" ascii wide 

​      $data = ".data" ascii wide 

​      $rdata = ".rdata" ascii wide 

​      $idata = ".idata" ascii wide 

​      $xyz = ".xyz" ascii wide 

​      $reloc = ".reloc" ascii wide 

​      $bss = ".bss" ascii wide 

  condition: 

​      \#text > 2 and 

​      \#itext > 1 and  

​      \#data > 1 and 

​      \#rdata > 2 and 

​      \#idata > 3 and 

​      $reloc and  

​      $bss and $xyz and not 

​      for any i in (0..pe.number_of_sections-1) : (  

​           pe.sections[i].name == ".xyz" or 

​           pe.sections[i].name == ".bss" 

​      ) 

}

参考链接:

LockBit 3.0 更新 |揭开勒索软件最新的反分析和规避技术 - SentinelOne

样本分析 | LockBit:持续进化的勒索威胁 - FreeBuf网络安全行业门户

0x9 安全建议

1. 风险消减措施

  资产梳理排查目标: 根据实际情况,对内外网资产进行分时期排查

  服务方式: 调研访谈、现场勘查、工具扫描

  服务关键内容: 流量威胁监测系统排查、互联网暴露面扫描服务、技术加固服务、集权系统排查

2. 安全设备调优

目标

  通过对安全现状的梳理和分析,识别安全策略上的不足,结合目标防御、权限最小化、缩小攻击面等一系列参考原则,对设备的相关配置策略进行改进调优,一方面,减低无效或低效规则的出现频次;另一方面,对缺失或遗漏的规则进行补充,实现将安全设备防护能力最优化。

主要目标设备

  网络安全防护设备、系统防护软件、日志审计与分析设备、安全监测与入侵识别设备。

3. 全员安全意识增强调优

目标:

  通过网络安全意识宣贯、培训提升全方位安全能力

形式:

  培训及宣贯

线下培训课表

  若无法组织线下的集体培训,考虑两种方式:

    1.提供相关的安全意识培训材料,由上而下分发学习

    2.组织相关人员线上开会学习。线上培训模式。

线上学习平台

  以下是solar安全团队近期处理过的常见勒索病毒后缀:后缀.360勒索病毒,.halo勒索病毒,.phobos勒索病毒,.Lockfiles勒索病毒,.stesoj勒索病毒,.src勒索病毒,.svh勒索病毒,.Elbie勒索病毒,.Wormhole勒索病毒.live勒索病毒, .rmallox勒索病毒, .mallox 勒索病毒,.hmallox勒索病毒,.jopanaxye勒索病毒, .2700勒索病毒, .elbie勒索病毒, .mkp勒索病毒, .dura勒索病毒, .halo勒索病毒, .DevicData勒索病毒, .faust勒索病毒, ..locky勒索病毒, .cryptolocker勒索病毒, .cerber勒索病毒, .zepto勒索病毒, .wannacry勒索病毒, .cryptowall勒索病毒, .teslacrypt勒索病毒, .gandcrab勒索病毒, .dharma勒索病毒, .phobos勒索病毒, .lockergoga勒索病毒, .coot勒索病毒, .lockbit勒索病毒, .nemty勒索病毒, .contipa勒索病毒, .djvu勒索病毒, .marlboro勒索病毒, .stop勒索病毒, .etols勒索病毒, .makop勒索病毒, .mado勒索病毒, .skymap勒索病毒, .aleta勒索病毒, .btix勒索病毒, .varasto勒索病毒, .qewe勒索病毒, .mylob勒索病毒, .coharos勒索病毒, .kodc勒索病毒, .tro勒索病毒, .mbed勒索病毒, .wannaren勒索病毒, .babyk勒索病毒, .lockfiles勒索病毒, .locked勒索病毒, .DevicData-P-XXXXXXXX勒索病毒, .lockbit3.0勒索病毒, .blackbit勒索病毒等。

  勒索攻击作为成熟的攻击手段,很多勒索家族已经形成了一套完整的商业体系,并且分支了很多团伙组织,导致勒索病毒迭代了多个版本。而每个家族擅用的攻击手法皆有不同,TellYouThePass勒索软件家族常常利用系统漏洞进行攻击;Phobos勒索软件家族通过RDP暴力破解进行勒索;Mallox勒索软件家族利用数据库及暴力破解进行加密,攻击手法极多防不胜防。

  而最好的预防方法就是针对自身业务进行定期的基线加固、补丁更新及数据备份,在其基础上加强公司安全人员意识。如果您想了解有关勒索病毒的最新发展情况,或者需要获取相关帮助,请关注“solar专业应急响应团队”。

0x10 团队介绍

  团队坚持自主研发及创新,在攻防演练平台、网络安全竞赛平台、网络安全学习平台方面加大研发投入,目前已获得十几项专利及知识产权。团队也先后通过了ISO9001质量管理体系、ISO14000环境管理体系、ISO45001职业安全健康管理体系 、ITSS(信息技术服务运行维护标准四级)等认证,已构建了网络安全行业合格的资质体系;

0x11 我们的数据恢复服务流程

  多年的数据恢复处理经验,在不断对客户服务优化的过程中搭建了"免费售前+安心保障+专业恢复+安全防御"一体化的专业服务流程。

① 免费咨询/数据诊断分析

​   专业的售前技术顾问服务,免费在线咨询,可第一时间获取数据中毒后的正确处理措施,防范勒索病毒在内网进一步扩散或二次执行,避免错误操作导致数据无法恢复。

​   售前技术顾问沟通了解客户的机器中毒相关信息,结合团队数据恢复案例库的相同案例进行分析评估,初步诊断分析中毒数据的加密/损坏情况。

② 评估报价/数据恢复方案

​   您获取售前顾问的初步诊断评估信息后,若同意进行进一步深入的数据恢复诊断,我们将立即安排专业病毒分析工程师及数据恢复工程师进行病毒逆向分析及数据恢复检测分析。

​   专业数据恢复工程师根据数据检测分析结果,定制数据恢复方案(恢复价格/恢复率/恢复工期),并为您解答数据恢复方案的相关疑问。

③ 确认下单/签订合同

​   您清楚了解数据恢复方案后,您可自主选择以下下单方式:

  双方签署对公合同:根据中毒数据分析情况,量身定制输出数据恢复合同,合同内明确客户的数据恢复内容、数据恢复率、恢复工期及双方权责条款,双方合同签订,正式进入数据恢复专业施工阶段,数据恢复后进行验证确认,数据验证无误,交易完成。

④ 开始数据恢复专业施工

  安排专业数据恢复工程师团队全程服务,告知客户数据恢复过程注意事项及相关方案措施,并可根据客户需求及数据情况,可选择上门恢复/远程恢复。

  数据恢复过程中,团队随时向您报告数据恢复每一个节点工作进展(数据扫描 → 数据检测 → 数据确认 → 恢复工具定制 → 执行数据恢复 → 数据完整性确认)。

⑤ 数据验收/安全防御方案

  完成数据恢复后,我司将安排数据分析工程师进行二次检查确认数据恢复完整性,充分保障客户的数据恢复权益,二次检测确认后,通知客户进行数据验证。

  客户对数据进行数据验证完成后,我司将指导后续相关注意事项及安全防范措施,并可提供专业的企业安全防范建设方案及安全顾问服务,抵御勒索病毒再次入侵。

                      我们在此郑重承诺:

                     不成功不收费

                     全程一对一服务

                     365天不间断服务

                     免费提供安全方案

                     24h服务热线:

                     18894665383

                     17864099776

                     18299173318