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 执行了几个步骤:
- 它将通过专门检查域管理员组中的成员身份来检查它是否已经具有足够的权限。
- 如果权限不够,它将尝试向自身授予一个预定义列表中包含 15 个特权常量的访问令牌,其中大多数在以非特权用户身份运行时测试失败。
- 之后,如果仍然没有所需的权限,LockBit 3.0 将找到操作系统进程explorer.exe,并直接调用 ZwOpenProcessToken 函数来读取explorer.exe 的访问令牌。然后,它调用 NtDuplicateToken 函数,传入新获取的令牌句柄,以请求对副本的扩展属性进行读取和写入访问。
- 获得管理员权限
图 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 通知重新启动该服务。
服务 | 描述 |
wscsvc | Windows 安全中心服务 |
Sppsvc | Microsoft 软件保护服务-许可 |
Wdboot | Windows defender ELAM(早期启动反恶意软件)驱动程序 |
Wdfiter | Windows defender微型筛选器驱动程序 |
Wdnisdrv | Windows defender防病毒网络检查系统驱动程序 |
Wdnissvc | Windows defender网络检查服务 |
Windefend | Windows 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 | 名字 | 描述 |
执行TA0002 | T1559.001 | 组件对象模型 | 用于删除卷影副本 |
T1106 | 原生 API | 大量使用 Windows 本机 API 调用 | |
T1047 | WMI | 用于删除卷影副本 | |
持久性TA0003 | T1547.001 | 注册表运行项 | 如果在安全模式下启动,则将注册表设置为在下次正常启动时启动。 |
权限提升TA0004 | T1134.001 | 令牌模拟 | 使用已知令牌启动进程,目的是复制令牌。 |
防御规避TA0005 | T1562.001 | 禁用或修改工具 | 停止和删除 Windows 安全服务 |
T1562.002 | 禁用 Windows 事件日志记录 | 停止和删除负责事件日志记录的服务 | |
T1562.004 | 禁用系统防火墙 | 停止和删除 Windows 防火墙的服务。 | |
T1562.009 | 安全模式启动 | 在安全模式下启动时更改行为。 | |
T1078.001 | 默认帐户 | 尝试使用默认管理员凭据登录 | |
发现TA0007 | T1083 | 文件和目录发现 | 遍历挂载的磁盘和文件系统 |
T1135 | 网络共享发现 | 遍历所有共享网络资源 | |
T1120 | 外围设备发现 | 定位可移动存储设备 | |
T1057 | 进程发现 | 查找要停止的特定进程 | |
T1018 | 远程系统发现 | 查找域控制器和 DNS 服务器 | |
T1082 | 系统信息发现 | 获取有关操作系统的特定信息 | |
横向移动 TA0008 | T1021.002 | Windows 管理员共享 | 用于与远程网络共享交互的有效帐户的用户 |
指挥与控制TA0011 | T1071.001 | Web 协议 | 使用 HTTP 与 C2 通信 |
T1573 | 加密通道 | TLS 1.2 标准 | |
外泄TA0010 | T1041 | 通过 C2 通道外泄 | 在 POST 请求中发送基本系统信息 |
冲击TA0040 | T1485 | 数据销毁 | 删除回收站和卷影副本 |
T1486 | 数据加密以防影响 | 勒索软件 | |
T1491.001 | 内部污损 | 桌面已更改 |
06 入侵指标 (IOC)
IOC | 描述 |
C2BC344F6DDE0573EA9ACDFB6698BF4C | MD5生成器文件 |
d6ae7dc2462c8c35c4a074b0a62f07cfef873c77 | SHA1 生成器文件 |
a736269f5f3a9f2e11dd776e352e1801bc28bb699e47876784b8ef761e0062db | SHA256生成器文件 |
71c3b2f765b04d0b7ea0328f6ce0c4e2 | MD5 注册机文件 |
bf8ecb6519f16a4838ceb0a49097bcc3ef30f3c4 | SHA1 注册机文件 |
ea6d4dedd8c85e4a6bb60408a0dc1d56def1f4ad4f069c730dc5431b1c23da37 | SHA256 注册机文件 |
4d388f95a81f810195f6a8dfe86be755 | MD5 资源 100 |
cb6fdb25a15b7797890fadc2b823984f93da5368 | SHA1 资源 100 |
cc3d006c2b963b6b34a90886f758b7b1c3575f263977a72f7c0d1922b7feab92 | SHA256 资源 100 |
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
写在最后
在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。
需要完整版PDF学习资源私我
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。**
需要完整版PDF学习资源私我
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-6DpjT3uF-1712687691804)]