当前位置: 首页 > news >正文

【工具分享】BlackBasta勒索病毒解密工具

前言

Black Basta勒索软件首次出现在2022年4月,迅速成为网络安全领域的重大威胁。该勒索软件被认为是从之前的著名勒索软件家族,如Hermes、Ryuk和Conti演变而来的。Black Basta以其高效的攻击策略和广泛的影响力而闻名。自首次出现以来,它已经攻击了全球超过500个组织,涉及多个行业,包括医疗保健、政府、金融服务、教育和媒体。该勒索软件通过双重勒索策略,不仅加密受害者的文件,还威胁如果不支付赎金,就会泄露敏感数据。

特征

Black Basta勒索软件使用先进的加密技术对受害者的文件进行加密,生成一个独特的文件扩展名,如“.basta”。它采用XChaCha20加密算法,并在每个文件的末尾添加一个特殊的加密标记,以帮助识别受感染的文件。该勒索软件通常通过钓鱼邮件、已知漏洞的利用以及恶意工具(如QakBot和Cobalt Strike)进行传播。在加密过程中,Black Basta会删除系统的影子副本,禁用安全工具,并将受害者的系统引导到安全模式,以阻止恢复尝试。勒索信通常以文本文件形式存在,指导受害者如何通过Tor网络进行赎金支付。

工具使用说明

  1. 为恶意软件生成一个(稀疏)文件进行加密:

输入以下内容:

NUL > myfile.vmdk
fsutil sparse setflag myfile.vmdk
fsutil sparse setrange myfile.vmdk 0 0x40000000
fsutil file seteof myfile.vmdk 0x40000000

图片

2. 我们现在应该有一个充满零的 1GB 文件。

可以在此处找到具有此弱点的 Black Basta 样本。我们运行此恶意软件,可能使用一些沙盒技术(例如Sandboxie),以加密我们的文件。

图片

3. 当恶意软件完成后,我们可以看到它删除了一个instructions_read_me.txt文件并更改了我们文件的扩展名。

图片

4. 使用十六进制编辑器查看文件会显示加密的易受攻击模式:

图片

5. 我们尝试使用 decryptauto.py 工具解密文件:

图片

6. 该恶意软件在末尾留下一个魔术字节序列,该序列不是加密文件的一部分。如果检测到魔术字节序列,我们的工具会调整最终文件大小。如果不需要进行此类调整,则可以使用指示的环境变量运行该工具。但是,由于需要知道明文文件的确切大小才能知道恶意软件在文件上应用加密的确切位置,因此我们获取了魔术字节并通过编辑 magic.py 使它们为人所知。

图片

7. 我们还提供加密文件的文件扩展名。这是为了方便的,但严格来说,不是必需的。

8. 现在,解密可以正常工作,而不会引发错误:

图片

9. 该工具运行后,该文件仅包含零字节。因此,该文件已被成功解密。

图片

无零字节解密

这个示例展示了当已知明文64字节加密内容时如何解密一个文件,例如,因为备份中包含了一个旧版本。然而,获取被加密的新版本是很有价值的。这种情况对于主要被附加内容的文件来说是很相关的,比如数据库。

  • 准备一个用于演示目的的数据库:

wget -O- h``ttps://raw.githubusercontent.com/lerocha/chinookdatabase/master/ChinookDatabase/DataSources/Chinook_Sqlite.sql`` |SQLite chinook.db
  • 像以前一样对文件进行加密,然后可以发现明文文件和加密文件在偏移量0x4F80处存在差异:

    图片

  • 我们将该位置的 plaintext 块提取到 plaintext.block 文件中:

$ ./extractblock.py --hexdump --output=plaintext.block chinook.db 0x4F80
You are running version 1 of the Black Basta Buster tools. Please reach out to ``tobias@srlabs.de`` to
check whether a newer version exists.
INFO:magic:File chinook.db is not magic
00000000: 31 38 20 30 30 3A 30 30 3A 30 30 32 30 30 32 2D 18 00:00:002002-
00000010: 30 38 2D 31 34 20 30 30 3A 30 30 3A 30 30 31 31 08-14 00:00:0011
00000020: 31 32 30 20 4A 61 73 70 65 72 20 41 76 65 20 4E 120 Jasper Ave N
00000030: 57 45 64 6D 6F 6E 74 6F 6E 41 42 43 61 6E 61 64 WEdmontonABCanad
$
  • 我们通过在选定的偏移量处对明文与密文进行异运运算,将密钥流字节获取到 key.block 文件中:

$ ./xorblocks.py --output=key.block /tmp/chinook.db.sah28vut5 ./plaintext.block 0x4F80
You are running version 1 of the Black Basta Buster tools. Please reach out to ``tobias@srlabs.de`` to
check whether a newer version exists.
Null:
00000000: 31 38 20 30 30 3A 30 30 3A 30 30 32 30 30 32 2D 18 00:00:002002-
00000010: 30 38 2D 31 34 20 30 30 3A 30 30 3A 30 30 31 31 08-14 00:00:0011
00000020: 31 32 30 20 4A 61 73 70 65 72 20 41 76 65 20 4E 120 Jasper Ave N
00000030: 57 45 64 6D 6F 6E 74 6F 6E 41 42 43 61 6E 61 64 WEdmontonABCanad
Original:
00000000: 3B 03 8D 82 E9 58 B5 04 9F 29 39 0B 7F A5 1D 40 ;....X...)9....@
00000010: 6F 71 B8 ED 3F 95 1B CF C2 FF D6 BC 23 32 19 00 oq..?.......#2..
00000020: 28 80 40 43 9A A7 ED 21 10 A1 8A 27 BC A1 39 F6 (.@C...!...'..9.
00000030: CF 6F FB C4 B7 BB E7 A4 47 81 1C 61 00 24 B7 32 .o......G..a.$.2
Result:
00000000: 0A 3B AD B2 D9 62 85 34 A5 19 09 39 4F 95 2F 6D .;...b.4...9O./m
00000010: 5F 49 95 DC 0B B5 2B FF F8 CF E6 86 13 02 28 31 _I....+.......(1
00000020: 19 B2 70 63 D0 C6 9E 51 75 D3 AA 66 CA C4 19 B8 ..pc...Qu..f....
00000030: 98 2A 9F A9 D8 D5 93 CB 29 C0 5E 22 61 4A D6 56 .*......).^"aJ.V
$
  • 将密钥流应用到文件上以解密它:

./decryptblocks.py /tmp/chinook.db.sah28vut5 ./key.block
  • 该文件被成功解密:

sha256sum chinook.db /tmp/chinook.db.sah28vut5
0528db5461b7b5d5f4ee9e88dd65eebf487fb4c427766b2fe9f7452feeff71e2 chinook.db
0528db5461b7b5d5f4ee9e88dd65eebf487fb4c427766b2fe9f7452feeff71e2
/tmp/chinook.db.sah28vut5

工具下载地址

solar专业应急响应团队公众号

回复关键字【BlackBasta】获取下载链接

相关文章:

  • C语言扫盲
  • 2、Stable Diffusion
  • Latex 自定义运算符加限定条件的实现
  • 2024年7天自学网络安全(黑客技术)进阶手册。
  • 大语言模型之LlaMA系列- LlaMA 2及LLaMA2_chat(上)
  • HAproxy,nginx实现七层负载均衡
  • AMBER学习记录--使用Multiwfn计算有机小分子的RESP电荷--问题及解决
  • 从Midjourney到秒画:探索国产AI绘图的崛起与未来
  • Python Web WebAssembly 与 Python 的协同工作
  • GO语言中make与new的区别
  • 数据库软题1-数据模型+数据库三级模式两级映像
  • 信息安全管理工程师(工信部教育与考试中心)
  • HTTP 与 HTTPS 的三次握手与四次挥手详解
  • android.bp cc_defaults
  • react中的ref三种形式
  • [deviceone开发]-do_Webview的基本示例
  • [Vue CLI 3] 配置解析之 css.extract
  • es6(二):字符串的扩展
  • Java 最常见的 200+ 面试题:面试必备
  • Java的Interrupt与线程中断
  • mysql 数据库四种事务隔离级别
  • nodejs调试方法
  • V4L2视频输入框架概述
  • 闭包--闭包之tab栏切换(四)
  • 回流、重绘及其优化
  • 记一次用 NodeJs 实现模拟登录的思路
  • 精彩代码 vue.js
  • 浏览器缓存机制分析
  • 前端面试之闭包
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 微信开放平台全网发布【失败】的几点排查方法
  • 小程序 setData 学问多
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • # Kafka_深入探秘者(2):kafka 生产者
  • #565. 查找之大编号
  • #控制台大学课堂点名问题_课堂随机点名
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (AngularJS)Angular 控制器之间通信初探
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (done) 声音信号处理基础知识(2) (重点知识:pitch)(Sound Waveforms)
  • (Ruby)Ubuntu12.04安装Rails环境
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (四)c52学习之旅-流水LED灯
  • (一)u-boot-nand.bin的下载
  • (一)UDP基本编程步骤
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)Oracle存储过程编写经验和优化措施
  • (转)大型网站的系统架构