Ransomware已经被证明是网络罪犯的一个很好的资金来源。不足为奇的是,我们现在正面临着各种类型的恶意软件,例如Cryptowall, CTB-Locker,Teslacrypt等等。

最近,一个人越来越多地加入了这个集合:Chimera,它通过针对目标的电子邮件分发给小型公司。

乍一看,它似乎是另一个恶意软件,加密用户的私人文件,并要求赎金解密。但它给这个特征增加了一个扭曲,应该会给受害者施加更大的压力。它威胁说,如果赎金不支付,所有被盗的文件将被公布,同时还会公布被盗文件的身份证明。

这种敲诈手段叫阿霉素提供比失去对文件的访问权更严重的威胁。另外,保留备份,这有助于管理正常勒索软件的攻击也没有多大帮助。我认为用一个新术语来描述这种新的勒索软件是公平的,例如:doxingware。

* -幸运的是,在Chimera的情况下,作者并没有决定真正上传文件到服务器上,所以它只是一个虚假的威胁。然而,从受害者的角度来看,这种压力是非常真实的。

这一次,我们将对奇美拉进行一个高水平和低水平的观察,以了解所使用的技术。

分析样品

我将基于以下三个样本,由@jameswt_mht./ / - - - - - -非常感谢他分享!

嵌合体

行为分析

部署后,Chimera枚举所有可用磁盘上的文件,并加密由某些预定义扩展识别的文档。

这是您可能看到的一个例子,如果您的机器上部署了Chimera—一些文件已经被附加扩展名的加密版本替换.crypt

加密

下面是字节的可视化。

square.bmp:左-原始,右加密嵌合体

enc_square1enc_square1

此外,还删除了一个HTML文件,这教导了用户发生的事情。HTML可以以两种语言显示 - 英语和德语。在英文版以下:

嵌合体

在HTML文件的底部,我们可以看到,除了敲诈外,攻击者还搜索愿意合作的人——可能是为了特许经营他们的犯罪业务。关于它的更多信息可在HTML的来源:

chimera_live.

在完成所有文件的加密过程后,此HTML通过Internet Explorer以全屏模式显示。

打开包装

三个恶意示例中的两个(60fabd1a2509b59831876d5e2aa71a6b, e6922a68fca90016584ac48fc7722ef8)是由同一个。net加密器打包的,因此我决定简要概述一下如何解包这个加密器。

它不会被混淆,可以很容易地用典型的工具进行反编译。ILSpy.通过查看函数名,我们可以得到很多关于功能的信息,即通过RunPE技术加载负载:

compures_list.

(full stub.cs:https://gist.github.com/hasherezade/5b742b46df4f79fdb784

public static void Main() {byte[] rawAssembly = Stub.decrypt(Stub.pe, Stub.decode(BASE64_ENCODED_KEY));Stub.run_pe (rawAssembly);} private static void run_pe(byte[] rawAssembly) {new Stub.ManualMap().LoadLibrary(rawAssembly);}

这个密码器的作者并不依赖于简单的基于异或的算法,而是提供了一个自定义的块密码实现(Rijndael)。我们可以找到一些熟悉的变量名称,如:sboxinv_sbox.(逆盒),Rcon(圆常数),Nr、Nb、Nk...
片段:

// Stub private static byte[] decrypt(byte[] input, byte[] key) {byte[] array = new byte[input. length];Byte [] array2 = new Byte [16];存根。Nb = 4;存根。Nk =键。长度/ 4;存根。Nr =存根。Nk + 6;存根。w = Stub.generateubkey.(钥匙);INT I;for(i = 0; i 0 && i%16 == 0){array2 =存根。decryptBloc(array2);array.copy(array2,0,array,i  -  16,array2.length);} if (i < input. length) {array2[i % 16] = input[i];}}数组2 =存根。decryptBloc(array2);array.copy(array2,0,array,i  -  16,array2.length);返回存根。deletePadding(数组);}

有效载荷

loader.dll.

md5 =8 df3534fe1ae95fc8c22cb85aed15336

由Stub.exe打开包装的文件是DLL。它附带一个字符串,引用项目的调试符号的数据库,表明它不是核心有效载荷,而只是一个加载程序:C: \ \赎金\ bin \ \ Loader.pdb释放项目实际上,它的角色只是为了解压缩并加载核心可执行文件。

自动分析:https://malwr.com/analysis/zjc0mdg0zmrlmjhkngyxztlmzwi1nzixmtlhymeyodu/

Loader.dll解压缩新的PE文件,写入进程内存并将其运行在新线程中:

loading_chimera_core.

Core.dll

md5 =0a27affc777bd78620ff69aaa1f502d694

由Loader解压的可执行文件的原始名称是Core.dll(它还带有一个类比字符串:C: \ \赎金\ bin \ \ Core.pdb释放项目并负责所有恶意活动。

core_dll

在这个阶段,我们可以清楚地看到所有的字符串和API调用。此外,将要加密的文件扩展名列表。(字符串的完整列表:https://gist.github.com/hasherezade/cyef1c2fed2c70f37d6e.

DllMain设置一个从卷序列号自动生成的互斥锁(以确保恶意软件不会运行不止一次),然后启动一个新的线程,部署以下三个过程:

chimera_main

在函数start_network_threadChimera准备要发送到C&C的所有数据,然后部署一个新线程,处理所有与网络相关的操作。

首先是信息收集阶段。受害者ID是基于硬件生成的——同时,一些关于本地机器的其他信息也会被收集:计算机名和外部IP(通过查询地址:bot.whatismyipaddress.com.- 如果计算机离线0.0.0.0用作IP)。该数据以及生成的比特币钱包地址和生成的密钥对提供给新创建的线程的参数。

thread_params.

它是在文件加密过程开始之前部署的,并且来自这对的公钥被转发给加密文件的功能。

文件加密功能(开头):

encrypt_file_func

为每个文件准备随机对称密钥:

prepack_file_key.

公钥(标记紫色)传递给负责为每个文件生成随机密钥的函数。每个对称密钥由公钥加密,然后存储在文件中:

crypto_init_key.

文件由块处理块:

encrypt_chunk

然后,使用后缀保存在名称下。隐窝补充道:

save_file

沟通

奇美拉是作者们选择的Bitmessage用于与C&C的通信的P2P协议(以及与最终新兵的接触)。

chimera_beacon

为了引导连接,机器人使用两个硬编码的主机并从它们接收地址。

init_connections

注意,这些地址是不是恶意软件的c&c,但只是比特信息的节点。以下-片段Bitmessage协议的原始文件

bitmessage_nodes

来自其中一个服务器的示例响应(95.165.168.168):

地址_ recheived

使用收到的列表,它开始一个新的Bitmessage连接,并发送一个对象

send_bitmessage_object

发送一个对象(包含客户端数据)到新地址:79.218.142.200
sends_object_to_new_address.

在支付赎金时,也使用相同的协议来获取私钥。下面-反编译解密器的代码片段:

收到_private_key.

解密

Decrypter作为msi安装程序.它有非常友好的用户界面和引导受害者通过解密文件的整个过程。

search_encrypted

然而,为了正常工作,它需要将整个环境设置为恶意软件离开它。如果我们删除试图解密从另一台电脑上移动的文件的勒索信息,我们将会有不愉快的惊喜。

解密器从赎金票据中提取比特币钱包地址——这就是为什么要让它工作就必须离开它。另外,为当前机器生成的硬件ID必须与已对文件进行加密的机器相同。只有在收到了对特定地址的付款后,解密才会进行。

Decoder是一个用c#编写的可执行文件,可以很容易地反编译。然而,与解密和硬件id生成相关的核心功能是从外部dll(包含在解码器的包中)导入的:

Decrypter_decrypt2.

PolarSSLWrapper.dll导出表:

包装器

结论

嵌合体没有任何出色的混淆,一旦我们打开核心包装,分析变得容易。然而,它附带了几种新颖的想法,并且可能慢慢成为一个新的趋势。

通过P2P协议进行通信是僵尸网络崩溃的一个有趣的对策。此外,通过泄露文件来勒索用户的想法以前从未在任何恶意软件中发现过。在这种情况下,作者以虚假的威胁结束(向C&C发送大量文件并存储它们的成本要高得多),但这种想法本身是危险的。

如果其他网络罪犯受到启发,决定实施它,我们将有一个新的头痛。

附录

http://www.techwalls.com/chimera-ransomware-now-even-harder-decrypt/-关于奇美拉的分配方法

http://www.blepingcomputer.com/news/security/chimera-ransomware-uses-a-peer-to-peer-decryption-service/- 更多关于Chimera的沟通