Bl00dy
警惕程度 ★★★
影响平台: Windows/Linux
病毒执行体描述
“Bl00dy”是一种新的使用双重勒索技术针对大型的组织勒索病毒。该勒索软件对受害者机器上的文件进行加密,并将加密文件的扩展名附加为“.bl00dy”。之后,在系统上创建一个赎金通知来要求支付。
这种勒索软件使用Telegram发布受攻击组织的信息,而不是使用Onion/Tor网站。根据Telegram频道的数据,勒索软件团伙在2022年7月底创建了一个Telegram账户,并在2022年8月开始发布泄露的受害者数据。
下图是Bl00dy勒索软件团伙威胁演员发布的消息。
Bl00dy勒索软件针对了许多知名组织(目前已知的6个受害者),涉及多个行业部门,如消费品、医疗保健、专业服务、IT和ITES等。
为了进行分析,我们使用了下面的示例散列:
(SHA256), 139a8bb2c5537190e747d2f651b423147018fd9a9a21bb36281d4ce1c61727c1,
这是一个基于gui的x32位可执行文件,用Microsoft Visual C/ c++编译器编写。
在执行时,勒索软件最初通过使用下图所示的一个小解密循环来解析互斥锁名称。恶意软件在整个文件中使用类似的解密循环来解析DLL名称、API函数和其他重要字符串。
在解析互斥锁字符串后,勒索软件创建一个互斥锁,以确保在任何给定时间内,只有一个恶意软件实例在受害者的系统上运行。如果互斥锁已经存在,恶意软件就会退出。下图显示了创建的互斥锁名称。
然后,该勒索软件使用CreateThread() API创建多个线程,以并行执行几项任务,以更快地进行文件加密,例如获取有效的系统驱动器,枚举文件/文件夹来加密文件,发现网络共享等。
下图显示了恶意软件使用GetLogicalDriveStringsW() API获取受害者机器中可用的有效系统驱动器。
接下来,恶意软件会在多个文件夹中放入一封勒索信,文件名为“warning!!!! Readme bl00dy Gang.txt”。勒索信的内容如下。
在设置赎金通知后,恶意软件通过使用FindFirstFileW()和FindNextFileW() API函数枚举文件和目录来搜索加密文件和目录。
勒索软件从加密中排除以下文件扩展名和文件/文件夹名。
该勒索软件使用Microsoft Enhanced RSA和AES加密提供程序库在受害计算机上执行加密。对于加密,恶意软件使用CryptoAPI中的一些函数,如CryptAcquireContextA(), CryptImportKey(), CryptGenRandom()和CryptEncrypt()。
下图显示了恶意软件使用CryptEncrypt() API函数加密数据,使用CryptGenRandom()生成随机字节和从CryptImportKey()函数获得的密钥。
下图显示了加密循环的代码片段和加密前后的原始和受感染的文件内容。
下一步,恶意软件用“.bl00dy”重命名加密文件。扩展使用lstrcatW() API,并使用MoveFileW() API函数将它们替换为原始文件,如下所示。
下图显示了Bl00dy勒索软件在成功感染受害者的机器后加密的文件。
一旦受害者的系统被感染,勒索软件就会使用API函数NetShareEnum()传播到同一网络上的其他计算机,如下所示。
此外,勒索软件使用以下命令行来运行WMI查询,该查询使用“Win32_ShadowCopy.ID”:
cmd.exe /c C:\Windows\System32\wbem\WMIC.exe shadowcopy where “ID=” {29A0A02F-1E9E-4A50-93C4-1D938C11D8A3}” delete
在赎金通知中,受害者被告知如何联系Bl00dy勒索软件团伙进行赎金谈判。
此外,Bl00dy勒索软件背后的助教威胁受害者说,他们已经渗透了他们组织的网络,下载了所有重要的文件。他们还提到,如果不支付赎金,他们将向公众公布被盗的信息。
勒索信上还有一个Telegram链接,在这个链接上,助教们会发布被泄露公司的私人数据。
预防和清除:
不要点击不明网站;打开不明邮件附件;定时经常更新杀毒软件病毒数据库,最好打开杀毒软件的病毒数据库自动更新功能。关闭电脑共享功能,关闭允许远程连接电脑的功能。安装最新的系统补丁。
Hive
警惕程度 ★★★
影响平台:Windows
Hive勒索软件诞生仅1年左右,于2021年6月首次被观察到,但它已经发展成为勒索软件即服务(RaaS)生态系统中最流行的勒索软件之一。随着其最新的变种携带几个主要的升级,Hive也证明了它是发展最快的勒索软件家族之一,例证了不断变化的勒索软件生态系统。
最新版本的升级实际上是一次大调整:最显著的变化包括将完整的代码迁移到另一种编程语言,以及使用更复杂的加密方法。这些更新的影响是深远的,考虑到Hive是一个RaaS有效载荷,微软观察到,在医疗保健和软件行业的组织受到大型勒索软件附属机构(如DEV-0237)的攻击。
微软威胁情报中心(MSTIC)在分析检测到的Hive勒索软件技术时发现了这种新的变体,这种勒索软件会删除。key文件。我们知道Hive丢弃了它的加密密钥文件,其中包含用于解密加密文件的加密密钥,并使用一致的命名模式:
[KEY_NAME].key.[VICTIM_IDENTIFIER]
(e.g., BiKtPupMjgyESaene0Ge5d0231uiKq1PFMFUEBNhAYv_.key.ab123)
上述的.key文件缺少文件名中的[受害标识符]部分,这促使对丢失它们的Hive勒索软件进行深入分析。通过分析,我们发现了新的Hive变体及其多个版本,它们在命令行和执行的进程中显示出略有不同的可用参数。
通过对新变异样本中的这些模式进行分析,我们发现了更多的样本,这些样本的检出率都很低,没有一个被正确识别为Hive。在这个博客中,我们将分享我们对新的Hive变种的深入分析,包括它的主要功能和升级,目的是为分析人员和防御者提供信息,以便更好地识别和保护组织免受依赖于Hive的恶意软件攻击。
从GoLang到Rust的转变
新版本和旧版本的主要区别在于所使用的编程语言。旧的版本是用Go(也称为GoLang)编写的,而新的Hive版本是用Rust编写的。
“Hive”并不是第一个用另一个流行的勒索软件“Rust BlackCat”编写的勒索软件。通过将底层代码切换到Rust, Hive获得了以下Rust语言优于其他编程语言的优势
它提供内存、数据类型和线程安全;
它对底层资源有深入的控制;
它有用户友好的语法;
它有多种并发和并行机制,从而实现快速和安全的文件加密;
它有各种各样的密码库
字符串加密
新的Hive变种使用字符串加密,可以使它更躲避。字符串驻留在.rdata部分中,并在运行时通过XORing使用常量进行解密。用于解密同一字符串的常量有时在不同的样本中不同,这使得它们成为不可靠的检测基础。
例如,让我们看看字符串的一部分“!error no flag -u <login>:<password> provided”提供解密。在一个示例(SHA-256: f4a39820dbff47fa1b68f83f575bc98ed33858b02341c5c0464a49be4e6c76d3)中,常量是0x9F2E3F1F和0x95C9:
在另一个样本(SHA-256: 6e5d49f604730ef4c05fe3f64a7790242e71b4ecf1dc5109d32e811acf0b053)中,常量是0x3ECF7CC4和0x198F:
在解密相同字符串时,有些示例确实共享常量。例如,让我们看看参数字符串“-da”是在哪里解密的。在一个样本(SHA-256: 88b1d8a85bf9101bc336b01b9af4345ed91d3ec761554d167fe59f73af73f037)中,常量是0x71B4和2:
在另一个示例(SHA-256: 33744c420884adf582c46a4b74cbd9c145f2e15a036bb1e557e89d6fd428e724)中,常量是相同的:
命令行参数
在旧的Hive版本中,用于访问Hive赎金支付网站的用户名和密码嵌入在样本中。在新的变体中,这些凭证必须在命令行中的-u参数下提供,这意味着分析人员不能从样本本身获得它们。
与大多数现代勒索软件一样,Hive引入了命令行参数,允许攻击者通过添加或删除功能来灵活地运行负载。例如,攻击者可以选择只加密远程共享文件或本地文件,或者选择加密的最小文件大小。在新的Hive变体中,我们在不同的样本中发现了以下参数:
-no-local不加密本地文件
-no-mounted不加密挂载的网络共享文件
-no-discovery不发现网络共享
无-local-only只加密本地文件
无-network-only仅对网络共享上的文件进行加密
-explicit-only加密指定的文件夹。例如,' -explicit-only c:\mydocs c:\ mphotos '
无-min-size用于加密的最小文件大小(以字节为单位)。例如,' -min-size 102400 '将加密大小等于或大于100kb的文件
总的来说,不同的版本似乎有不同的参数在不断更新。与之前的变体不同,在新的变体中,攻击者必须事先知道参数。由于所有字符串都是加密的,这使得寻找参数对安全研究人员来说很有挑战性。
停止服务和进程
像大多数复杂的恶意软件一样,Hive会停止与安全解决方案和其他工具相关的服务和进程,这些工具可能会妨碍它的攻击链。Hive试图模拟trustedinstaller.exe和winlogon.exe的进程令牌,以阻止Microsoft Defender Antivirus等服务。
Hive会停止以下服务:
windefend, msmpsvc, kavsvc, antivirservice, zhudongfungyu, vmm, vmwp, sql, sap, oracle, mepocs, veeam, backup, vss, msexchange, mysql, sophos, pdfservice, backupexec, gxblr, gxvss, gxclmgrs, gxvcd, gxcimgr, gxmmm, gxvsshwprov, gxfwd, sap, qbcfmonitorservice, qbidpservice, acronisagent, veeam, mvarmor, acrsch2svc
同时停止以下进程:
dbsnmp, dbeng50, bedbh, excel, encsvc, visios, firefox, isqlplussvc, mspub, mydesktopqos, notepad, ocautoupds, ocomm, ocssd, onenote, outlook, sqbcoreservice, sql, steam, tbirdconfig, thunderbird, winword, wordpad, xfssvccon, vxmon, benetns, bengien, pvlsvr, raw_agent_svc, cagservice, sap, qbidpservice, qbcfmonitorservice, teamviewer_service, teamviewer, tv_w32, tv_x64, cvd, saphostexec, sapstartsrv, avscc, dellsystemdetect, enterpriseclient, veeam, thebat, cvfwd, cvods, vsnapvss, msaccess, vaultsvc, beserver, appinfo, qbdmgrn, avagent, spooler, powerpnt, cvmountd, synctime, oracle, wscsvc, winmgmt, *sql*
启动流程
作为其勒索软件活动的一部分,Hive通常会运行删除备份和阻止恢复的进程。不同版本之间存在差异,一些示例可能不会执行所有这些进程,但是有一个示例启动了最多的进程,即shah -256: 481dc99903aa270d286f559b17194b1a25deca8a64a5ec4f13a066637900221e:
“vssadmin.exe delete shadows /all /quiet”
“wmic.exe shadowcopy delete”
“wbadmin.exe delete systemstatebackup”
“wbadmin.exe delete catalog -quiet”
“bcdedit.exe /set {default} recoveryenabled No”
“bcdedit.exe /set {default} bootstatuspolicy ignoreallfailures”
“wbadmin.exe delete systemstatebackup -keepVersions:3”
勒索信
Hive的勒索信也发生了变化,新版本引用了。key文件的新文件名约定,并添加了关于虚拟机(vm)的句子。
旧的版本有一个嵌入的用户名和密码(标记为隐藏)。在新的变体中,用户名和密码取自命令行参数-u,并标记为test_hive_username和test_hive_password。
旧版勒索信
新版勒索信
加密机制
Hive变体中最有趣的变化是它的加密机制。2022年2月17日,韩国国民大学的一组研究人员发表了题为《破解被Hive勒索软件感染的数据的方法》的论文,几天后,新版本于2022年2月21日首次被上传至VirusTotal。经过一段时间的开发,新版本在2月22日首次出现在微软的威胁数据中。新的变种使用了一套不同的算法:椭圆曲线Diffie-Hellmann (ECDH)与Curve25519和XChaCha20-Poly1305(认证加密与ChaCha20对称密码)。
独特的加密方法
新的Hive变种采用了一种独特的文件加密方法。它不是在它加密的每个文件中嵌入一个加密的密钥,而是在内存中生成两组密钥,使用它们加密文件,然后加密并将这些密钥集写入它加密的驱动器的根,两者的扩展名都是.key。
为了表明使用哪些密钥集加密文件,将包含相应加密密钥的.key文件的名称添加到磁盘上加密文件的名称中,后跟一个下划线,然后是一个Base64字符串(还将下划线和连字符添加到字符集中)。经过base64解码后,字符串包含两个偏移量,每个偏移量指向对应的.key文件中的不同位置。这样,攻击者就可以使用这些偏移量来解密文件。
例如,在运行Hive后,我们将以下文件放入C:\驱动器:
C:\3bcVwj6j.key
C:\l0Zn68cb.key
在这个例子中,一个名为mphoto .jpg的文件将被重命名为C:\ mphoto .jpg. l0zn68cb _ -B82BhIaGhI8。正如我们在下面几节中讨论的,新变体的键集生成与旧变体完全不同。然而,它的实际文件加密是非常相似的。
键设置
分配了一个大小为0xCFFF00字节的缓冲区。使用两个定制函数生成随机字节(出于演示目的,标记为“random_num_gen”和“random_num_gen_2”)填充缓冲区。这个缓冲区的第一个0xA00000字节被随机字节填充,而剩余的0x2FFF00字节只是简单地从前面复制到缓冲区的第一个0x2FFF00随机字节复制过来。
每个缓冲区的内容是一个键集(对称键的集合)。由于分配了两个缓冲区,所以有两个键集。在加密过程中,恶意软件从一个密钥集中随机为每个文件选择不同的密钥(字节序列),并通过将密钥的字节序列与文件内容XORing来使用它们加密文件。
为每个键集准备一个自定义64字节散列。稍后将使用此散列。
在计算哈希值并解密其他几个字符串之后,加密过程将采取以下步骤:
1、使用上面介绍的相同函数生成victim_private_key。
2、使用ECDH和Curve25519生成public_key。输入是victim_private_key,基点是9后面跟着31个零(嵌入在示例中)。
3、生成一个24字节的nonce为XChaCha算法,稍后在Poly1305-XChaCha20。
4、使用ECDH和Curve25519生成shared_secret。输入是“victim_private_key”和“hive_public_key”。然后,使用shared_secret(作为密钥)和hive_public_key(作为nonce)来使用ChaCha20派生derived_key。
5、使用Poly1305-XChaCha20加密密钥集。用于加密的值是密钥集、derived_key、nonce和嵌入的关联数据(AD)。这个函数对密钥集进行加密,并在加密的密钥缓冲区的末尾添加一个16字节的身份验证标记。目前还不清楚是否检查过身份验证标签。
在终于对密钥集进行了加密,现在的密钥集、victim_public_key、现在已经加密的密钥集和身份验证标记将一个接一个地复制到一个新的缓冲区。这个缓冲区(我们将其标记为encrypted_structure_1)被视为一个新的密钥集,它使用上面描述的相同方法再次加密,但使用第二个hive_public_key。这一次,该函数输出新的nonce、victim_private_key等。只有关联的数据是相同的。
最后,包含second_nonce、second_victim_public_key和encryptedencrypted_structure_1的新缓冲区被写入到它加密的驱动器的根(例如,C:\)。create_extension函数根据前面创建的自定义散列的前6个字节生成一个Base64字符串。这个Base64字符串作为文件名,文件的扩展名是“.key”。
下图说明了上述加密方案:
如上图所示,“密钥设置加密流”执行两次。在第一轮中,它使用设置为输入的原始密钥执行。在第二轮中,它以“加密结构1”作为输入执行。在它的第二次执行中,除了AD(相关数据)和Basepoint 9之外,所有其他输入值都是不同的。
因此,以下值在第二次执行中是新的:victim_private_key、victim_public_key、hive_public_key、nonce、shared_secret和derived_key。
文件加密
将两个密钥文件写入磁盘后,将启动多线程文件加密。在对每个文件进行加密之前,恶意软件会根据字符串列表检查文件的名称和扩展名。如果有匹配,那么文件将不会被加密。例如,如果字符串列表中包含.exe,则扩展名为.exe的文件将不被加密。应该注意的是,这个列表是在运行时加密和解密的。
在新版本中使用了与旧版本相同的文件加密方法:生成两个随机数,并用作密钥集的偏移量。每个偏移量为四个字节:
对于加密,根据偏移量,文件内容与密钥集中的字节进行xor。文件字节被异或两次—一次根据第一个偏移量,第二次根据第二个偏移量。文件以0x100000字节的块进行加密,最大块数为100。按照block_space的定义,加密的块之间有一个间隔。在内存中加密完成后,加密后的数据被写入磁盘,覆盖原文件。
当文件加密开始时,查看create_extension何时被调用,我们在之前的变体中发现了类似的结构
让我们看看在名为EDBtmp.log的文件上调用create_extension之前,r9寄存器地址中的值(72 D7 A7 A3 F5 5B FF EF 21 6B 11 7C 2A 18 CD 00)
回想一下,在较早的变体中,0xFF被用作分隔符来分隔键文件名和偏移值。我们在这里也能看到。将前6个字节(72 D7 A7 A3 F5 5B)转换为Base64得到如下结果:
cteno/Vb
如果我们跨出create_extension,结果是类似的——我们得到cteno_Vb作为.key文件名(注意:由于Hive使用了不同的Base64字符集,“/”被“_”替换):
微软将继续监控Hive运营商的活动,并为我们的客户提供保护。在我们的安全产品中,当前的检测、高级检测和泄露(IOCs)指标详细说明如下。
预防和清除:
不要点击不明网站;打开不明邮件附件;定时经常更新杀毒软件病毒数据库,最好打开杀毒软件的病毒数据库自动更新功能。关闭电脑共享功能,关闭允许远程连接电脑的功能。安装最新的系统补丁。
钓鱼网站提示:
1、假冒亚马逊类钓鱼网:
https://www-drv.com/site/tkqcyrr0mdjbxcscn6agiq/page/
危害:骗取用户邮箱账号及密码信息。
2、假冒PDF类钓鱼网:
http://www.capelini.com.br/adobeCom/inc/
危害:骗取用户账号及密码信息。
3、假冒Paypal类钓鱼网:
http://www.skblibrary.org.in/cottonlibrary/a
危害:骗取用户账号及密码信息。
4、假冒腾讯游戏类钓鱼网站:
http://www.dnf233.com/
危害:骗取用户信用卡号及密码信息。
5、假冒Gmail类钓鱼网站
http://www.ilona.com/wcmilona/wp-includes/SimplePie/Data/
危害:骗取用户邮箱账号及密码信息。
请勿打开类似上述网站,保持计算机的网络防火墙打开。
以上信息由上海市网络与信息安全应急管理事务中心提供