CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 百科
  3. 正文

ca1462

2017年5月23日 1275点热度 0人点赞 0条评论
  • 首页
  • 分类阅读
  • 文库
  • 专栏
  • 公开课
  • 商城
  • 漏洞盒子
注册 | 登录
投稿

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

老王隔壁的白帽子2016-04-04+10共150247人围观 ,发现 3 个不明物体网络安全

图片1.png

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

0×01分析样本

 74add6536cdcfb8b77d10a1e7be6b9ef

b24952857ff5cb26b2e97331800fa142 <- 主要分析这个样本

38eff2f7c6c8810a055ca14628a378e7 – payload (C.dll)

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

0×02 行为分析

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

图片2.png

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

图片3.png

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

加密进程

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

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

原始文件和大小:

图片4.png

加密后的文件:

图片5.png

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

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

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

图片6.png

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

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

为受害人准备的网址

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

图片7.png

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

图片8.png

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

图片9.png

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

图片10.png

0×03内部构造

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

解压

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

图片11.png

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

图片12.png

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

图片13.png

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

图片14.png

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

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

图片15.png

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

图片16.png

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

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

图片17.png

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

图片18.png

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

执行流程

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

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

图片19.png

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

图片20.png

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

图片21.png

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

下面是与勒索相关的GUI:

图片22.png

哪些文件被袭击

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

图片23.png

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

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

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

图片24.png

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

加密过程

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

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

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

图片25.png

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

图片26.png

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

图片17.png

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

图片28.png

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

图片29.png

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

图片30.png

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

图片31.png

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

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

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

图片32.png

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

图片33.png

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

0×04结论

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

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

老王隔壁的白帽子55 篇文章等级: 6级
|
|
  • 上一篇:Linux Remaiten恶意软件正在部署物联网设备僵尸网络
  • 下一篇:和黑客玩场游戏:利用CryptoWall跟踪器搞砸黑客小心思

这些评论亮了

  • 为了生活(1级)回复
    最近勒索软件好多 :???:
    )8(亮了
  • 看看回复
    又是勒索软件! :mad:
    )7(亮了
发表评论

已有 3 条评论

  • 看看 2016-04-04回复1楼

    又是勒索软件! :mad:

    亮了(7)
  • 为了生活 (1级) 2016-04-04回复2楼

    最近勒索软件好多 :???:

    亮了(8)
  • safecoder 2016-04-18回复3楼

    补充一下:国内哪个逼开发的。
    http://120.52.72.55/45jngpxc4cgsxqxc.onion.link/
    http://120.52.72.55/qjuyyhqqzfeluxe7.onion.link/
    http://120.52.72.55/bs7aygotd2rnjl4o.onion.link/

    您查询的IP:120.52.72.55
    本站主数据:北京市西城区 联通云数据有限公司 联通
    参考数据一:中国 长城宽带

    亮了(3)

必须您当前尚未登录。登陆?注册

必须(保密)

表情插图

取消

老王隔壁的白帽子

这家伙太懒,还未填写个人描述!

55 篇文章8 条评论

相关阅读

  • 新型DDoS攻击LFA:从5月11号网易被攻击谈起
  • TDD 方法开发渗透测试工具:代理扫描器(第一集)
  • 利用无人机或吸尘器黑掉企业无线打印机
  • SLOTH:一个新型的TLS1.2降级攻击
  • 浅析BGP路由前缀攻击检测

特别推荐

关注我们 分享每日精选文章

不容错过

  • 4月28日晚FreeBuf公开课(直播课程):XSS自动化渗透内网banish2016-04-28
  • 提漏洞,拿现金奖励:深信服官方漏洞报告平台长期入驻漏洞盒子漏洞盒子2014-11-06
  • 开源扫描仪的工具箱:安全行业从业人员自研开源扫描器合集Shun2017-05-22
  • FreeBuf 2017互联网安全创新大会视频&图文直播(已结束)kuma2016-12-29

FREEBUF

  • 免责声明
  • 关于我们
  • 加入我们

广告及服务

  • 寻求报道
  • 广告合作
  • 联系我们
  • 友情链接

关注我们

  • 官方微信
  • 新浪微博
  • 腾讯微博
  • Twitter

赞助商

Copyright © 2013 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号

css.php

正在加载中...

0daybank

标签: 暂无
最后更新:2017年5月23日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me