转载

Maktub Locker:美丽而又危险的勒索软件

Maktub Locker:美丽而又危险的勒索软件

Maktub Locker是一款勒索软件,GUI界面设计的很漂亮,并且有着一些有趣的特征。勒索软件的原始名字来源于阿拉伯语言”maktub”,意思是 “这是写好的”或者”这是命运”。作者很可能想通过这样的引用来描述勒索软件的行为,暗示这是不可避免的,就像命运一样。

0×01分析样本

74add6536cdcfb8b77d10a1e7be6b9ef

b24952857ff5cb26b2e97331800fa142 <- 主要分析这个样本

38eff2f7c6c8810a055ca14628a378e7 – payload (C.dll)

特别感谢 MalwareHunterTeam 和 Yonathan Klijnsma 提供的样本

0×02 行为分析

勒索软件通过邮件钓鱼活动,伪装成一个服务更新的文档文件。这次文档的主题很完整:附件的名字类似于( “TOS-update-[…].scr”, “20160321_tos.scr”),而且图标也类似于文档图标:

Maktub Locker:美丽而又危险的勒索软件

勒索软件使用的一个欺骗技巧是释放一个真正的文档,而且是一个TOS的更新说明,.rtf格式:

Maktub Locker:美丽而又危险的勒索软件

当用户正在忙于阅读文档时,恶意程序就开始在后台运行,同时加密受害人的文件。

加密进程

Maktub Locker不需要从CnC服务器上下载密钥,数据可以在线下加密。加密文件的扩展名是随机的,在运行时生成,模式为:[a-z]{4,6}

比较新奇有趣的是,加密后的文件比原始文件更小。似乎勒索软件不仅仅加密而且还压缩。

原始文件和大小:

Maktub Locker:美丽而又危险的勒索软件

加密后的文件:

Maktub Locker:美丽而又危险的勒索软件

压缩文件的原因之一可能是加速文件加密过程。

不同的样本加密后的文件内容是不同的。然而,相同的文件加密后的文件是相同的。我们可以得出结论,程序运行一次随机密钥只会生成一次。之后,每个文件都会使用这个相同的密钥加密。

加密完成之后,就会弹出如下窗口:

Maktub Locker:美丽而又危险的勒索软件

提供给受害人指定格式的key:82个,每个单元5个字符(单元格式:[A-Z0-9]{5})。样本文件再次运行时,key也会重新生成。

样本的信息也可以在一个HTML文件(_DECRYPT_INFO_[$EXTENSION].html)中找到。这个文件在每个目录中都会被释放。

为受害人准备的网址

Maktub Locker和其他勒索软件一样,都会提供一个TOR网址。和勒索软件描述的一样,网址只提供英文版的。为了让受害人能够访问到网站,需要在一个文档输入框内输入上述82单元块内的key:

Maktub Locker:美丽而又危险的勒索软件

之后就会重新连接到主站。和其他勒索软件对比,Maktub Locker的网站设计的很好看,而且网站说明用辞很文明礼貌:

Maktub Locker:美丽而又危险的勒索软件

在demo中可以选择解密两个文件:

Maktub Locker:美丽而又危险的勒索软件

解密价格最低1.4BTC,并且随着时间的推移,价格也不断攀升。作者也会提示,如果太久不付款可能会导致文件永不恢复:

Maktub Locker:美丽而又危险的勒索软件

0×03内部构造

Maktub Locker是通过 crypter/FUD 编写的,因此代码不可读。并且,由于FUD的功能,将会导致样本的检测变得更加困难,同时检测率在刚开始的一段时间内很低。

解压

执行FUD的起始代码。首先我们会看到大量的无用API的调用和随机字符串:

Maktub Locker:美丽而又危险的勒索软件

这段代码用于绕过检测恶意病毒行为的工具。随后将会被新的代码重写。然而,这里依旧不是恶意代码,而是其他的绕过检测技术的代码。下面是解压TOS更新服务的代码(首先解压文件然后释放到%TEMP%文件夹中):

Maktub Locker:美丽而又危险的勒索软件

真正的恶意代码在另一个模块当中,解压到一个动态分配的内存中:

Maktub Locker:美丽而又危险的勒索软件

可以看到2个线程入口:0×10001230。他们都属于恶意代码的模块。Dump下数据,可以看到一个新的PE文件:

Maktub Locker:美丽而又危险的勒索软件

这个PE文件动态分配在一个连续的内存区域,在一个虚拟节区被使用。

不幸的是,dump下来的并不是一个独立的payload,文件头是无效的:

Maktub Locker:美丽而又危险的勒索软件

这是为了防止payload被自动dump的工具dump下来的技术。然而,如果我们在正确的时刻解压,在文件头被重写前,我们可以恢复payload。显示的是一个DLL文件(upx加壳):

Maktub Locker:美丽而又危险的勒索软件

加密文件的代码是在一个叫做”one”的函数中。

DLL文件是被UPX加壳的,因此可以容易的脱壳,脱壳后的DLL文件的布局如下(脱壳后的 DLL:38eff2f7c6c8810a055ca14628a378e7 ):

Maktub Locker:美丽而又危险的勒索软件

但是依旧看不到有效字符串。导入表看起来也是毫不相关的(我们找不到类似Windows Crypto API的函数名)。这是由于导入表被动态的解析了。程序刚开始执行时,函数”one”自动加载导入表,解密文件名:

Maktub Locker:美丽而又危险的勒索软件

之后,通过动态加载的句柄访问。

执行流程

恶意软件首先将所有的文件进行列表。同时解压内置的配置与限制的路径列表并攻击可执行文件。每个处理路径首先核对这个列表。

下面你可以看到,选择要加密的代码的片段打开文件。通过句柄调用函数CreateFileA,动态加载到EAX寄存器:

Maktub Locker:美丽而又危险的勒索软件

随后,新的文件创建,添加一个扩展名:

Maktub Locker:美丽而又危险的勒索软件

起初,这两个文件共存于系统 – 新创建的文件大小为0 。当加密的内容填充后,原始文件被删除。

Maktub Locker:美丽而又危险的勒索软件

加密过程完成之后,该恶意软件创建并弹出对话框。

下面是与勒索相关的GUI:

Maktub Locker:美丽而又危险的勒索软件

哪些文件被袭击

有选择行的攻击不同的国家。本例中,在加密文件前,程序会检测区域语言设置列表,如果发现是俄罗斯语言( 俄罗斯语言的值是:0×419=1049 ),那么程序将自动退出:

Maktub Locker:美丽而又危险的勒索软件

加密的文件也是预先定义的文件目录:

"//internet explorer//;//history//;//mozilla//;//chrome//;//temp//;//program files//;//program files (x86)//;//microsoft//;//chache//;//chaches//;//appdata//;"

内置的配置还指定了哪些扩展攻击

Maktub Locker:美丽而又危险的勒索软件

像其他勒索软件,它的攻击不仅在本地磁盘,而且包括安装到虚拟环境的网络共享以及外部硬盘驱动器的磁盘。

加密过程

Maktub Locker使用windows Crypto API。但是,当我们从分析结果得出结论是,它不为每个文件都生成随机密钥。让我们来看看它使用什么样的技术来获得key…

本次为用户生成的kye是:

X25HE-J53ZU-QERDZ-ZNUJ3-SERJ6-J617E-UUASZ-AFG2G-83B08-2SHC1-AUYFZ-GJHF2-W7321-144TM VKFKR-6TKRV-STG4B-CE5MZ-TAH4W-MP541-GD3SB-HE43J-ZF4TK-ZNZTG-R7ZBZ-AKM2U-T6TYN-53J7H MU6J6-BTSJC-FQVQR-EH755-C1WCJ-7SNPT-MHFBS-Q638V-MASEB-R16HW-P84P2-7EEX8-KXAHB-D10F7 GF071-U37K3-GJ5Q5-WD0PD-2EG16-KMC5R-RPCBX-R8EV3-ZPXQV-TDVXM-SEEFX-XK23J-FCH4Z-RNBPN XE6X5-4W8CT-WJQJU-071T5-DSUZW-JGSZA-KFKZ6-4DU0S-80H1H-CEP2J-PDSKA-UXBR8-8C1BB-SDQNC 1C8F7-HPZ2G-Q5JVN-F6WXH-PMUSR-8G4HT-RNYVW-DZNQ3-Y8KZJ-NYC1G-SPR3T-U5GD5

让我们研究一下这个密钥和用于加密文件之间的关系。到目前为止,我们知道,它必须在本地生成。

首先,它初始化的两个加密文本 – 两者均具有相同的设置,使用提供程序类型:

Maktub Locker:美丽而又危险的勒索软件

获得32位随机数,使用函数CryptGenRandom:

Maktub Locker:美丽而又危险的勒索软件

创建随机数的MD5(使用 CryptCreateHash, CryptHashData)。

Maktub Locker:美丽而又危险的勒索软件

接着使用函数CryptderiveKey,将MD5值转化为256bit的AESkey(AlgID=0×6610->CALG_AES_256)。

Maktub Locker:美丽而又危险的勒索软件

导入RSA公钥(2048bit)。这个Key硬编码在二进制文件中。

Maktub Locker:美丽而又危险的勒索软件

32byte随机数(基于AES key),通过RSA加密buffer:

Maktub Locker:美丽而又危险的勒索软件

输出使用预定义的字符集转化为受害人使用的可视化ID:

Maktub Locker:美丽而又危险的勒索软件

这就是为什么,当使用者提交他/她的个人ID,该攻击者,使用适当的私钥,可以解密原始数据,轻松地恢复随机AES密钥。

此操作后,将先前生成的AES密钥被用于加密的文件。

首先,文件内容由专用函数压缩:

Maktub Locker:美丽而又危险的勒索软件

之后buffer中保存着AES加密后的数据,使用CryptEncrypt

Maktub Locker:美丽而又危险的勒索软件

加密后的数据保存在一个生成的后缀名的文件中。

0×04结论

Maktub Locker显然是由专业人士开发的。从完整的产品的复杂性可以看出,它是一个团队的不同专业领域成员的合作成果,甚至包括包装业务的网站,这一切都是精心打磨。我们不知道是否crypter / FUD是由同一团队设计 – 它也可能是在黑市上被纳为可用的商业解决方案。但是,防御其的唯一途径 – 核心DLL也被模糊处理了,并且可以这肯定是由经验非常丰富的人编写的。

*参考来源: blog.malwarebytes.org ,FB小编老王隔壁的白帽子翻译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

原文  http://www.freebuf.com/articles/network/100219.html
正文到此结束
Loading...