【工具分享】BlackBasta勒索病毒解密工具
前言
Black Basta勒索软件首次出现在2022年4月,迅速成为网络安全领域的重大威胁。该勒索软件被认为是从之前的著名勒索软件家族,如Hermes、Ryuk和Conti演变而来的。Black Basta以其高效的攻击策略和广泛的影响力而闻名。自首次出现以来,它已经攻击了全球超过500个组织,涉及多个行业,包括医疗保健、政府、金融服务、教育和媒体。该勒索软件通过双重勒索策略,不仅加密受害者的文件,还威胁如果不支付赎金,就会泄露敏感数据。
特征
Black Basta勒索软件使用先进的加密技术对受害者的文件进行加密,生成一个独特的文件扩展名,如“.basta”。它采用XChaCha20加密算法,并在每个文件的末尾添加一个特殊的加密标记,以帮助识别受感染的文件。该勒索软件通常通过钓鱼邮件、已知漏洞的利用以及恶意工具(如QakBot和Cobalt Strike)进行传播。在加密过程中,Black Basta会删除系统的影子副本,禁用安全工具,并将受害者的系统引导到安全模式,以阻止恢复尝试。勒索信通常以文本文件形式存在,指导受害者如何通过Tor网络进行赎金支付。
工具使用说明
-
为恶意软件生成一个(稀疏)文件进行加密:
输入以下内容:
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】获取下载链接