发生后击败在四月份,Petya.回到新的技巧。现在,不是一个单一的勒索制造器,但在一个捆绑上另一个恶意有效载荷 - 米克。两者都以卫星从卫星之后命名黄金眼电影。

它们在系统的不同层上部署攻击,并作为替代方案使用。这就是为什么我们决定用不止一篇文章来阐述这一现象。欢迎来到第二部分!该分析的主要焦点是Mischa和Setup.dll(选择要部署的有效载荷的恶意安装程序)。

第一部分(关于绿色Petya)您可以阅读它这里

更新:改进的绿色Petya版本已出现。新文章中给出了更多细节

分析样品

执行流程

行为分析

如上所述文章的前一部分,两种恶意有效载荷都被同一滴管丢弃。根据部署样本的特权,可以使用该攻击的选择。首先,有一个要求询问用户提升应用程序的权限:

UAC_POPUP.

如果用户对问题的回答“是” - 他/她的机器被Petya赎金软件感染(详细描述这里)。

但即使在用户更谨慎且不允许使用管理员权限部署有效载荷,它也没有多大帮助。恶意软件的作者仍然找到了一种攻击系统的方法。仅仅通过推出另一个有效载荷 - 错误,这不需要提升特权以便工作。

此有效载荷就像任何其他赎金软件一样 - 逐个加密文件并删除赎金说明:your_files_are_encrypted.html.(之前另一款勒索软件使用了相同的名称:嵌合体)。布局与Petya使用的布局是类似的。

米奇 -

我们可以在丢弃的TXT文件中找到相同的文本。

加密过程

MISCHA不需要从CNC Server下载密钥 - 数据也可以离线加密。给予加密文件的扩展是随机的,在运行时生成(它们与Tor地址的一部分相同):

mischa_encrypted

错误的非典型特征是它不仅加密文档,而且只有少数勒索软件才会被观察到这样做)。

加密样本的熵高,没有可见图案。请参阅下面的字节可视化。

Square.BMP.:左-原始,右加密米沙

enc_square1_bmp.enc_square1.

相同的输入不会产生相同的输出 - 这表明每个文件都用单个密钥(或初始化向量)加密。

在每个加密文件的末尾,附加唯一ID(如赎金笔记中显示的文件):

key_appended.

受害者的页面:

mischa_page.

里面

主可执行文件(带有一个假装是PDF文档的图标)被打包在一个地下加密器中,它的唯一作用是交付和部署恶意核心——Setup.dll。这个exe的代码对恶意软件的功能没有太大的意义-它只是一个欺骗层添加来制造噪音和掩盖样本的真实任务。这次不做包装说明(和之前Petya的包装非常相似)。

setup.dll.

Setup.dll中携带Petya和Mischa,并决定他们中的哪一个将被删除。这部分恶意软件负责触发UAC弹出。

类似于前一个Petya的滴管,它有一个部分.xxxx:

setup_dll.

本节非常重要,因为它包含有效载荷 - Petya和Mischa(通过简单的基于XOR的算法加密)。在执行的开始时,他们正在解密:

decode_section_xxxx

我们可以看到一个类似于上一个Petya的存根:

petya_stub_visible.

在同一部分中,揭示了一个新的PE文件,结果表明是一个DLL的错误。

mischa_dll_visible.

作者试图欺骗工具,用于从内存中自动倾销PE文件,并提供假“MZ”...“PE”模式:

Deception1.

在解密有效载荷后,执行环境检查以便选择将安装哪一个。过程令牌(类似于示例运行的权限)用于选择以下哪个安装路径。

读取当前进程的令牌:

read_token.

选择Petya.米沙是几个步骤完成的。首先,如果应用程序部署管理权限,则使用令牌检查来获取信息。如果不是,那么它试图使用更高权限运行它的新副本(使用runas.命令)。如果这种尝试失败,米卡被删除(否则 - Petya)。

选择_petya_or_mischa.

DOPPER附带一个反恶意软件产品列表,在部署有效载荷之前检查的存在:

搜索_vendors_str.

在字符串中,我们可以看到Petya和Mischa的url。下面的代码部分负责为特定的受害者生成单独的url,并将它们写入有效负载:

make_unique_url.

在滴管内,米卡的DLL(与Petya的存根类似)正在充满额外的独特数据。与Petya类似,Mischa获得了一个随机密钥,将用于进一步加密过程。使用ECC加密此密钥并将其转换为受害者ID。然后,部分受害者ID的一部分成为个人网址的一部分。

此唯一数据由存储在新部分中的滴管和(通过基于简单的XOR的算法加密)生成 -.xxxx.- 动态附加到准备阶段的有效载荷。(如果我们过早倾倒错误,如果没有本节,我们将获得不完整的数据,DLL不会正常运行)。见下文 - 示例Mischa.dll使用添加的部分:

Appeded_section.在此阶段,稍后正在赎金说明中显示的受害者ID以及洋葱地址已准备就绪。

在这样的准备后,将注入mischa.dlllConhost.exe.并作为远程线程部署。下面,我们可以看到包含编写到在远程进程中分配的内存的准备错误的缓冲区:

inject_mischa_dll.

执行(包括加密)继续在远程线程中。

Mischa.dll

我们可以再次看到DLL使用ReflectiveLoader* - 就像在案件一样Chimera和Rokku.(随着代码中的其他相似之处,它可能会确认理论,那些项目背后的作者是一样的):

mischa_dll_exports

* revisiveLoader.是属于技术的特殊存根反光DLL注入.该技术允许生产可以容易地注入另一个过程的DLL。与shellcode类似,这种DLL是自包含的,并自动加载所有它的依赖关系。

什么被攻击?

Mischa获取映射驱动器列表(GetLogicalDrivestringsa.),并通过Windows API函数识别驱动器类型:getdriveType..它攻击可拆卸,固定和远程驱动器。

get_drives

黑名单路径:

\ Windows \ $ Recycle.bin \ Microsoft \ Mozilla Firefox \ Opera \ Internet Explorer \ Temp \ local \ locallow \ chrome

遭到攻击的扩展:

txt文档多克斯docm odt ods odp odf odc odm odb rtf xlsm xlsb xlk xls xlsx pps ppt pptm pptx酒吧epub pdf jpg jpeg纳见这种情况称之为法律辩护基金wdb多年并vmx xml xsl wps cmf根据accdb ini配置cfg配置wb2型cdr svg味精azw azw1 azw3 azw4点燃apnx手机域名p12 p7b p7c可以pem cer关键der mdb htm html类java asp aspx cgi cpp php jsp贝克dat pst eml xps sql jar wpd sqllite这样都柏林城市大学crt csv脉冲cnf indd数页lnk不是dfm目录pbk yml dtd rll自由cert猫正梅道具idl结果localstorage ost默认json sqlite日志蝙蝠ico dll exe x3f srw pef raf orf北威州nef股价mef kdc dcr crw eip fff iiq k25 crwl湾sr2 ari srf arw cr2原始rwl rw2 r3d 3 fr eps pdd dng dxf dwg psd png jpe bmp gif tiff gfx jge tga就是电动势3 dm 3 ds max obj a2c dds pspimage yuv 3 g2 3 gp asf asx mpg mpeg avi mov flv wma wmv ogg swf ptx猿aif wav ram m3u电影mp1 mp2 mp3 mp4 mp4v mpa迈普mpv2 rpf vlc m4a格式aac aa3 amr mkv dvd mts vob 3 ga m4v srt aepx camproj dash压缩rar gzip vmdk mdf iso本提示dbf小块土地dmg吐司vcd ccd圆盘nrg nri cdi

加密是如何工作的?

每个文件都使用随机密钥加密。首先,使用Windowscryptoapi函数CryptGenRandom128个随机位被取出。然后,它们被哈希并用于生成初始化向量。

gen_random

除了上面的呼叫之外,Windows Crypto API不用于加密。相反,所有人都在本地实施(就像在Chimera和Rokku一样)。以下 - 函数局部实施的片段SHA-256.,包含典型常量:

初学者

文件内容在部分中读取 - 1024字节一次:

file_portion.

然后,由本地实现的算法加密:

crypt_next.

加密过程分为2个阶段。

阶段1:

读块的每个16字节都经过XOR预处理,使用16字节长的缓冲区:

xor_content

首先,随着XOR键使用随机缓冲器。对于下一个部分,第二阶段的输出变为XOR键(它是一个特征密码块链接 - CBC

阶段2:

的输出阶段1传递给另一个加密功能:

crypt_block

该块密码处理输入的16个字节,并提供给出16个字节的加密输出。加密涉及一个16字节的长键(在附加部分中的硬编码) - 在给定的示例中它是VW2EBTSBOQ7GBDUU.

注意保存在。xxxx部分(客户端ID - 仅在此之后存储 - 表示此密钥的加密形式,只有攻击者可以解码):

HardCoded_Key.

只要误操作,这个键就在开放文本中的内存中。但是一旦完成完成,就会被销毁,并且只剩下键的加密形式 - 用户在赎金笔记中收到它。(这是不知何故类似于Petya的逻辑)。

加密的块正在被写入文件一个一个:

write_chunk.

在加密完整文件并存储内容后,结束附加附加数据。

write_key_at_the_end

然后,文件在新名称下移动。

move_file.

让我们来看看附加的数据,它在解码文件中的角色。在加密文件的末尾,我们可以找到:

  1. 原始文件的长度(0x528 -> 1320)

orig_len.

2.初始化向量 - 16个字节的随机缓冲区,用于初始化XOR周期:

first_xor_buffer

3.客户端ID(如前所述) - 这是用于第二加密操作的加密密钥。在上面的例子中,这个键是:VW2EBTSBOQ7GBDUU.

加密_Key.

拥有重要数据 - 初始XOR缓冲区和解密的键 - 攻击者可以反转加密的完整过程。

结论

与Petya不同,Mischa是另一种典型的勒索软件。它包装得很好,写得很干净,但核心看起来很简单。我们没有发现任何新颖或意想不到的功能。似乎作者的主要关注点是Petya,而Mischa只是作为一个故障保护。然而,即使它很简单,它也很好地发挥了计划的作用。当用户拒绝提升应用程序权限的请求时,他/她可能根本就不会期望应用程序能够运行。但这是让米沙部署它的秘密攻击的事件。事实上,它的后果可能比袭击彼佳更痛苦。在Petya的情况下,磁盘内容的某些部分可以使用取证工具恢复——但在Mischa中是不可能的。

附录

http://www.blepingcomputer.com/news/security/petya-is-act-and-with-a-fiend-named-mischa-ransomware/- 关于米卡的电脑

https://blog.必威平台APPmalwareBytes.org/Threat-anAlissis/2016/04/Petya-ransomware/- 关于之前的petya版本

Petya和Mischa - 勒索瓶Duet(第1部分):

Petya和Mischa - 勒索软件二重唱(第1部分)

无法显示此视频,因为您的功能性饼干目前已禁用。

要启用它们,请访问我们的隐私政策并搜索cookie部分。选择“点击这里”打开隐私偏好中心并选择“功能饼干”在菜单中。您可以将标签切换回“活跃”或通过移动标签来禁用“不活跃。”点击“保存设置。”