洛奇是一个新ransomware(很可能是由Dridex gang发布的)源).不足为奇的是,它准备充分,这意味着它背后的威胁行动者已经为它投资了足够的资源,包括它成熟的基础设施。让我们来看看。
分析样品
- 7 a23368ee84781d7584e058a9922f324
- 有效载荷:74年dde1905eff75cf3328832988a785de<-本分析的主要焦点
- d9df60c24ceca5c4d623ff48ccd4e9b9
- e7aad826559c8448cd8ba9f53f401182
行为分析
Locky通常是通过MS Office文档(即DOC)或JavaScript的下载器发送的——在网络钓鱼活动中使用电子邮件附件。负载是一个32位Windows可执行文件,包含恶意核心包装在一个密码器/滴管(他们是各种各样的,有各种图标)。
部署完成后,它会消失并运行其删除的副本(重命名为svchost.exe)%临时%文件夹中。
加密过程
已加密的文件被完全重命名。名字的开头(前16个字符)是受害者的唯一ID。然后是文件的ID和扩展名.locky这是典型的勒索软件。
加密内容的熵值很高,而且看不到任何模式。
下面:的原始字节的可视化square.bmp.左:未加密,右:加密。
执行后,Locky以文本和位图形式显示赎金通知,并将后者设置为受影响用户的墙纸。
文本本地化为系统中检测到的语言。翻译看起来足够专业(不是来自自动翻译),这可能表明威胁行动者的目标是多个国家-并准备了这个特殊的细节。参见示例翻译(波兰语,西班牙语)在这里.
注册表键值
查看注册表,我们可以发现添加了一些元素。
输入autorun,在系统重启后自动启动恶意软件:
受害人的具体数据-个人ID、RSA公钥和勒索信的文本将被显示:
存储在注册表中的公钥:
受害者网站
每个洛奇受害者都有一个可以通过洋葱网络访问的网页。这些页面包含对受害者的进一步指示和对管理付款的支持。
网络通信
Locky与CnC进行通信,但很难通过简单的嗅探工具进行分析,因为完整的通信是加密的:
关于协议的更多信息可以通过阅读代码来了解。
内部
每个洛奇的样品都装了一些地穴,所以一开始代码是不可读的。
然而,核心本身并没有那么模糊。在解包其防御的外层之后,我们可以看到有效的字符串和函数调用。他们对无法读取的网络捕获给出了一些解释。RSA密钥和勒索信是通过基于HTTP的协议从服务器获取的。当前示例提供了3个IP地址的列表。
- 31.41.47.37
- 188.138.88.184
- 85.25.138.187
此外,它利用了DGA -域生成算法(更多描述在这里).
通信协议
Locky的通信协议非常简单:它由一个POST请求和一个典型的参数组成键=值格式。然而,正如前面提到的,它们不是通过开放文本发送的,而是封装和加密的。首先,准备好请求并填充其参数。然后计算其MD5值。这两个元素被连接并加密在一起。
封装请求的示例(加密前):
类似地,当响应到来时,首先对它进行解密,然后验证它的MD5——如果它通过了验证,然后解析它。
接收到的响应示例(加密):
解密:
解密的响应结果是一个RSA密钥提示它的哈希:
Locky使用3个命令(由密钥识别)行为):
- getkey
- gettext
- 统计数据
我们在下面进一步详细解释了这些行动。
[getkey]初始注册和获取RSA密钥:
id = [16] act =getkey&affid = 1 lang = (2: lang)集团=服务公司(0 - 1)=(0 - 1)操作系统=[窗口名称]sp = (num) x64 = (0 - 1)
惟一的用户ID是16字节长的十六进制字符串,在本地创建(伪代码):
win_dir =GetWindowsDirectorymount_point_name =GetVolumeNameForVolumeMountPoint(win_dir) GUID = get_GUID(mount_point_name)id = md5sum.uppercase () .substr (0, 16)
后:
语言:通过函数获取:GetLocaleInfo,GetUserDefaultUILanguage.系统信息获取GetVersionEx和GetSystemMetrics(SM_SERVERR2),并翻译为内置列表。IsWow64Process用于识别系统是否为64位。
[gettext]获取赎金信息
id = [16] act =gettextlang =(2:朗)
[stats]发送加密文件统计信息:
id = [16] act =统计数据路径= [root_path]加密= (num)失败= (num)长度= (num)
攻击是什么?
Locky攻击3种类型的本地驱动器:固定,移动和ramdisks…
以及网络资源。网络共享使用映射WNetAddConnection2
对于每一个驱动器,都会启动一个新的加密线程。
加密是如何工作的?
在勒索信中,攻击者声称Locky同时使用RSA和AES算法。看看代码,我们可以确认。密码学是使用Windows Crypto API实现的,并真正使用了上述算法。
首先,从服务器获取并导入RSA密钥(2048位):
RSA密钥用于加密AES密钥,AES密钥是为每个文件随机生成的。
下面—导入一个随机AES密钥(128位长):
文件的处理首先是枚举它们并存储在一个列表中。然后按照这个列表进行加密。
每个线程收集关于加密文件的统计信息(即在特定路径中有多少文件被加密):
统计数据被加密并发送到C&C。
赎金注意
如前所述,赎金通知的语言检测语言GetUserDefaultUILanguage从服务器下载。
大多数勒索软件会以HTML格式发送勒索信息,然后在Web浏览器中打开它。Locky做了一些更有趣的事情:它渲染并设置位图作为壁纸。
位图呈现:
成功渲染并保存位图后,将其设置为墙纸使用SystemParamsInfo(action 0x14 = SPI_SETDESKWALLPAPER)
结论
《洛奇》在2月份推出,但现在已经很受欢迎了。由于它是一种广泛的攻击,由分发Dridex的相同实体进行,它很容易引起许多研究人员的兴趣。然而,如果仔细观察,我们可以说,它与普通勒索软件没有太大的不同。它看起来写得很扎实,准备得也很充分,但到目前为止,它并没有显示出太多的新意。
附录
- http://community.hpe.com/t5/Security-Research/Feeling-even-Locky-er/ba-p/6834311#.VtyC-M3iuV7-洛奇管理面板
- http://blog.fortinet.com/post/a-closer-look-at-locky-ransomware-2——Fortinet的《洛奇勒索软件细看》(A Closer Look at Locky Ransomware)
- https://www.proofpoint.com/us/threat-insight/post/Dridex-Actors-Get-In-the-Ransomware-Game-With-Locky-“Dridex演员与Locky一起进入勒索软件游戏”
- https://blogs.forcepoint.com/security-labs/locky-ransomware-encrypts-documents-databases-code-bitcoin-wallets-and-more
- http://phishme.com/locky-a-new-encryption-ransomware-borrowing-ideas-from-the-best/
- https://www.sensepost.com/blog/2016/understanding-locky/
评论