FortiGuard Labs在调查Sodinokibi勒索软件家族时,发现了一类名为Nemty的新勒索软件,它可能跟臭名昭著的GandCrab勒索软件存在关联,其传播方式则与Sodinokibi相同。Sodinokibi也是一种与GandCrab非常相似的恶意软件。
本文将讨论Nemty的技术方面,目前它仍处于早期开发阶段。
发现
我们分析的第一个样本来自@BotySrt的twitter bot帐户,该帐户发布了指向Sodinokibi和Buran恶意软件的Pastebin链接。
图1.指向Sodinokibi payload的链接
这些链接指向使用反射式PE注入(Reflective PE Injection)执行嵌入恶意软件payload的Powershell脚本。我们收集了标记为Sodinokibi的链接,期望提取该勒索软件的样本。但是,当运行自动化来提取嵌入式二进制文件时,出现了一个不受支持的文件,进一步调查后发现它是新的Nemty勒索软件。
与GandCrab的关联
在对Nemty的初步分析中,我们发现了一个嵌入在其二进制文件中的链接,这点与GandCrab在与Ahnlab安博士进行“斗争”时的做法相同。
图2.嵌入链接指向图像
图3. GandCrab的图像版本
但相似之处到此结束,因此很难在早期就确定两者之间是否存在任何实际关系。
技术分析
混淆
Nemty执行过程中使用的字符串通过简单的base64编码和RC4加密的组合进行混淆。作者故意使用了“f**kav\x00”作为RC4加密密钥来表达对安全行业的敌意。
图4.使用base64和RC4算法的字符串解密
文件加密
Nemty勒索软件将CBC模式下的AES-128,RSA-2048,以及不怎么常见的RSA-8192结合使用,来进行文件加密和密钥保护。以下步骤总结了其加密过程:
1. 使用伪随机算法生成一个32字节的值,稍后将该值添加到配置信息中,前16个字节用作文件加密的主要AES密钥。
图5.生成随机字符的函数
2. 生成RSA-2048密钥对。
3. 使用相同的RC4-base64函数解密并导入嵌入式RSA-8192公钥。
图6.嵌入式RSA-8192公钥
4. 将步骤2中生成的私钥包含到配置文件中,该文件还包含从系统收集的其他信息(在下一节中讨论)。
5. 使用步骤3中导入的RSA-8192公钥加密配置文件,并用base64编码。
注意:注意:使用密钥大小为8192位的RSA加密是非常不寻常的。事实上,这可能是我们第一次看到勒索软件使用如此强大的加密算法来保护信息,这种算法过于强大,而且效率低下。在大多数情况下,2048和4096密钥大小足以保护任何消息。使用较长的密钥大小会增加很大的开销,因为密钥生成和加密时间要长得多。最后,RSA-8192一次只能加密1024个字节,如果考虑填充的保留大小,就更少了。由于配置的大小肯定会大于其大小,原因是该配置包含已编码的私钥(来自第4步),因此该恶意软件会将信息切成1000(0x3e8)字节的块并执行多次RSA-8192操作,直到整个信息被加密。
6. 使用在步骤1中使用的相同算法生成另一个16字节密钥。这是AES-128 CBC模式加密的IV(初始化向量)。每个文件都会生成一个新的IV。
7. 使用步骤1中的主AES密钥和当前IV加密文件内容。
8. 使用RSA-2048和在步骤2中本地生成的公钥加密当前IV,并用base64编码。
9. 将加密的IV附加到文件中。
图7.文件加密过程
图8.加密文件的结构
这意味着,到目前为止,如果没有从攻击者手中获取嵌入式RSA公钥的RSA私钥对,文件解密实际上是不可能的。
图9.文件解密过程
下图显示了在加密过程中避免使用的文件。注意,“ boot.ini”被比较了两次。显然这是一个错误,表明该恶意软件可能处于开发早期阶段。
图10.列入白名单的文件夹
它也避免使用具有特定扩展名的文件,如下图所示,不过是以不区分大小写的字符串比较的方式完成的,这种方式不常见且效率低下。
图11.列入白名单的文件扩展名
它通过访问hxxp://api.db-ip.com/v2/free/{IP address}/countryName检查受害者的IP地址是否位于俄罗斯、白俄罗斯、哈萨克斯坦、塔吉克斯坦或乌克兰这些国家,但无论结果如何,它仍会进入文件加密的阶段。
受害者配置文件
恶意软件赎金说明中提到了配置文件充当受害者的标识和文件解密密钥。信息以JSON格式汇编并写入%USERPROFILE%/ {FileID} .nemty,其中FileID为_NEMTY_ {7个随机字符}(例如_NEMTY_NIZ8NSt_.nemty)。生成随机字符使用的是与生成AES密钥和IV相同的算法。
图12. JSON格式的配置文件
图13.配置文件信息描述
UserID被设置为二进制中硬编码的值。这可能是一个附属ID,意味着Nemty可能作为ransomwareas -a- service (RaaS)出售。
赎金票据和付款页面
图14.赎金记录
付款页面托管在Tor网络中以实现匿名,匿名已成为勒索软件操作的标准。要进入主付款页面,受害者必须上传加密的配置文件和加密文件进行解密测试。在撰写本文时,攻击者要求提供1000美元的比特币才能解密。
有一个函数可以发送加密的配置来从受害者的机器中滤出配置数据,尽管它显然还没有实际实现。这是因为硬编码的IP地址(应该是威胁参与者的C2服务器)实际上是受害者系统的环回地址127.0.0.1。很可能他们只是还没有配置一个操作服务器来接收数据,这是这个勒索软件仍然处于开发阶段的另一个线索。
图15.发送配置数据的函数
因此,解密和识别所需的所有信息都必须由受害者手动提交。
图16.上传页面进行测试解密
付款页面支持俄语,这点也是不常见的,令人困惑。考虑到后面讨论的带有俄罗斯声明的嵌入式图像,很容易假设Nemty的开发者是俄罗斯族裔。通常情况下,他们为了逃避该地当局的注意,会尽量避免感染俄罗斯用户,显然Nemty不是这种情况。
图17.主要付款页面
结论
Nemty是一种新型恶意软件,可能与GandCrab和Sodinokibi有一定关系,但除了嵌入图像的方式和类似的传播方法外,我们还没有找到任何令人信服的证据将它们联系在一起。
而附属ID的存在表明恶意软件可能是另一个RaaS(勒索软件即服务),这意味着我们可能很快会看到更多通过其他方式传播的Nemty。
我们还讨论了其代码中的一些违规和低效之处,这表明它仍处于开发的早期阶段。尽管如此,它仍可以在受害人的系统上执行文件加密,使其成为真正的威胁。
IoC
267a9dcf77c33a1af362e2080aaacc01a7ca075658beb002ab41e0712ffe066e (Nemty ransomware from Powershell) – W32/Gen.NVV!tr.ransom
hxxps://pastebin.com/raw/NE3TJ3z1 (link to the Powershell loader)
127.0.0.1:9050/public/gate?data={encrypted configuration}
本文翻译自:https://www.fortinet.com/blog/threat-research/nemty-ransomware-early-stage-threat.html如若转载,请注明原文地址: https://www.4hou.com/typ/20500.html