Lockbit 3(1)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

根据前面的图4,builder.exe 文件会创建两个执行文件、三个动态链接库和两个文本文件。

它需要现有的 config.json(图 2)和上一步中生成的 priv.key/pub.key 文件,如图 4 所示,builder.exe 文件本身也包含基本组件。在其资源部分有四个执行文件模板,每个用于构建加密器的 DLL 和 EXE 以及解密程序。

图 5:builder.exe 资源标题

按 ID 对每个资源进行描述:

  • 100 – 解密器模板文件
  • 101 – 可执行模板文件
  • 103 – DLL 模板文件
  • 106 – 启用反射加载的 DLL 模板文件

配置文件 config.json 包含通常与勒索软件相关的选项,包括目标文件夹、要排除的文件以及需要终止的进程。如图 6 所示,它还包含用于调整勒索软件行为的设置选项,如下所示的默认选项可以在构建器中找到。

图片

标图 6:配置选项题

此构建器配置允许针对特定目标环境调整生成的勒索软件。除了这些配置之外,还有以下选项:

  • 要排除的主机、文件、文件夹和文件扩展名
  • 停止和删除的流程和服务
  • 命令和控制域、URL 或 IP 的列表
  • 在受影响的系统上尝试的用户名和密码列表

由于此勒索软件是高度可配置的,因此可能有许多不同的代码路径。

03 LockBit分析

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,这会让勒索软件的线程无法被调试器的断点捕获到。

在程序中,初始的反汇编代码集用于提高可读性,如图 16 所示。这段代码明显不正常,这些代码在调用 kernel32.ExitProcess() 函数后才执行,也就意味着永远无法执行到,只是模仿正常程序的一些函数使用,使其看起来似乎是个正常程序。

图片

标图 16:输入函数题

LockBit 的函数都是通过hash运算进行匹对指定的函数名称,从而获取地址,“prepare_address_table_lookups”函数(如图 16 所示),该函数包含一个预先生成的哈希表,用于存储一组函数调用,从C:\Windows\System32 文件夹中手动查找所需的 DLL,并手动加载每个函数,进行哈希匹配,找到函数地址。创建哈希表和函数地址后,恶意软件执行完该函数,会释放并清除所有内存,以防止被分析。

如图 16 所示,“check_priv_elevate_if_needed”函数顾名思义。权限提升是通过复制访问令牌来获取特权组中的成员身份来实现的。为了复制令牌,LockBit 3.0 执行了几个步骤:

  1. 它将通过专门检查域管理员组中的成员身份来检查它是否已经具有足够的权限。
  2. 如果权限不够,它将尝试向自身授予一个预定义列表中包含 15 个特权常量的访问令牌,其中大多数在以非特权用户身份运行时测试失败。
  3. 之后,如果仍然没有所需的权限,LockBit 3.0 将找到操作系统进程explorer.exe,并直接调用 ZwOpenProcessToken 函数来读取explorer.exe 的访问令牌。然后,它调用 NtDuplicateToken 函数,传入新获取的令牌句柄,以请求对副本的扩展属性进行读取和写入访问。
  4. 获得管理员权限

图片

图 17:复制explorer.exe进程令牌标题

main 函数中的恶意软件做的第一件事就是检查并创建同步互斥锁。如果存在互斥锁,则进程将退出,确保一次只运行一个勒索软件实例。互斥锁是通过首先获取在pub.key文件中找到的提供的公钥的 MD5 哈希来创建的。生成的 MD5 哈希字符串格式为“{%08X-%04X-%04X-%02X%02X-%02X%02X %02X %02X %02X}”。接下来,计算此格式化字符串的 MD4 哈希值,并将结果传递给格式字符串“Global%.8x%.8x%.8x%.8x”。例如,完成的互斥体值类似于

Global\ea4ee28880136cbc44dff4ad5a53561f。

接下来,LockBit 3.0 检查操作系统是否正常启动。如果 Windows 在安全模式下启动,勒索软件不会运行其大部分功能,而是设置一个注册表项以在下次正常启动时运行。

在互斥锁就位并满足引导类型后,可执行文件的主要用途将以多线程方式启动。每个线程都具有其任务的特征。有些在进程的生命周期内连续运行,而另一些则仅临时运行一次以执行特定任务。

停止服务:Windows Defender

第一个线程会删除 Windows 安全服务。这是通过利用 Trusted Installer 服务来实现的。Trusted Installer 是一个被广泛使用的受信任的安装程序,通常以其显示名称“Windows 模块安装程序”而知名,它主要用于下载和安装 Windows 更新和可选组件。如果 Trusted Installer 未在运行,则会启动该服务,并复制其访问令牌句柄,以允许当前线程访问大多数其他正在运行的服务。

利用这个令牌,LockBit 3.0 枚举正在运行的服务,并停止并删除与 config.json 中预定义的服务之一匹配的任何服务。完成后线程将退出,并且不会再次启动。

图片

标图 18:通知 Windows 安全中心已停止题

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

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

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

图片

图 19:服务已停止和删除标题

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

图片

标图 20:一些 LockBit 3.0 线程 题

04 Lockbit3特性

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勒索软件会对桌面背景进行更改。

1、回收站的文件无法恢复

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

2、终止sql检查

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

图片

标题图 21:停止SQL进程

3、删除卷影副本

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

4、写赎金记录

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

5、加密

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

6、域控制器发现

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

7、连接的驱动器和共享网络资源

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

8、网络流量

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

图片

图 22:POST请求标题

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

图片

图 22:JSON 格式的 Exfil 数据标题

9、加密后修改壁纸

加密后,桌面背景将更改为黑色,并带有白色文本,类似于图 23 中的示例。

图片

图 23:勒索桌面标题

10、解密器

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

回收站没有恢复,所有卷影副本也已被擦除。对于所有常规文件,解密器确实有效,文件已正确恢复,并且LockBit桌面背景已被删除。

图片

LockBit 3.0 解密器标题

05 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内部污损桌面已更改

06 入侵指标 (IOC)

IOC描述
C2BC344F6DDE0573EA9ACDFB6698BF4CMD5生成器文件
d6ae7dc2462c8c35c4a074b0a62f07cfef873c77SHA1 生成器文件
a736269f5f3a9f2e11dd776e352e1801bc28bb699e47876784b8ef761e0062dbSHA256生成器文件
71c3b2f765b04d0b7ea0328f6ce0c4e2MD5 注册机文件
bf8ecb6519f16a4838ceb0a49097bcc3ef30f3c4SHA1 注册机文件
ea6d4dedd8c85e4a6bb60408a0dc1d56def1f4ad4f069c730dc5431b1c23da37SHA256 注册机文件
4d388f95a81f810195f6a8dfe86be755MD5 资源 100
cb6fdb25a15b7797890fadc2b823984f93da5368SHA1 资源 100
cc3d006c2b963b6b34a90886f758b7b1c3575f263977a72f7c0d1922b7feab92SHA256 资源 100
87308ec0a44e79100db9dbec588260ecMD5 资源 101
939ff7e5eeaccb0c2f4ee080a8e403e532b6317aSHA1 资源 101
03b8472df4beb797f7674c5bc30c5ab74e8e889729d644eb3e6841b0f488ea95SHA256 资源 101

本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。

最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。

最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

学习路线图

其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。

相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。

网络安全工具箱

当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份我自己整理的网络安全入门工具以及使用教程和实战。

项目实战

最后就是项目实战,这里带来的是SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~

面试题

归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值