欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Sorebrect勒索病毒分析报告

来源:本站整理 作者:佚名 时间:2017-07-26 TAG: 我要投稿

0x00  背景介绍

2017年6月安全研究人员发现了一种利用AES-NI特性的名为Sorebrect的勒索病毒,它的代码和原始的AES-NI版本相比有一些显著的变化。一方面技术上它试图将恶意代码注入svchost.exe中,再进行自毁以无文件的形式躲避检测。另一方面它声称使用了NSA的溢出攻击工具(如:永恒之蓝漏洞)。
360CERT安全分析团队将在本文中对部分相关的技术进行具体分析。
0x01  IOC
CRC32: 907F515A
MD5: 83E824C998F321A9179EFC5C2CD0A118
SHA-1: 16B84004778505AFBCC1032D1325C9BED8679B79
0x02  病毒详情
在Sorebrect版本中使用的加密后缀是.aes_ni_0day和.pr0tect,早期使用AES-NI 特性的勒索病毒使用的加密文件扩展名包括: .lock,.pre_alpha,.aes和.aes_ni。
Sorebrect声称自己是特殊的“NSA EXPLOIT EDITION”,在360CERT具体分析过程中暂时还没有发现有类似于NotPetya和WannaCry使用NSA泄露的工具传播的行为,传播方式主要是感染网络中共享的文件。
接下来,360CERT对Sorebrect样本中使用的加解密、进程注入、反恢复、内网感染等技术进行一系列的分析。
初始化加解密
Sorebrect在程序开始运行时就使用了加解密技术,会对每个导入函数地址和固定值0x772756B1h进行异或加密保存,在调用时再与此值异或得到真正的函数地址。
 

在一开始会先搜索被加载到内存中的PE文件起始位置。
 

随后,开始解析kernel32的内存地址。

进一步获取LoadLibrary函数的内存地址。

根据分析,主体程序会尝试获取下列dll的地址。
 

具体在分析过程中,sub_A0A660的三个参数,分别为动态库(dll)的地址,存放函数地址与0x772756B1h异或加密之后的值的地址,和函数名称的CRC32与0x772756B1h异或加密之后的值。
 

尝试解析这些地址存放的函数地址对应的函数名称之后的效果如下所示。
之前:
 

之后:

注入操作
Sorebrect会试图调用DuplicateTokenEx复制一份具有system权限的进程的token,再使用CreateProcessWithTokenW创建具有system权限的svchost.exe。
 

 

如果上述过程没有成功,Sorebrect会继续调用CreateProcessW创建一个普通权限的svchost.exe。

 
svchost.exe进程创建后,Sorebrect会调用WriteProcessMemory向创建的svchost.exe写入一段代码。
 

注入代码之前:
 

注入代码之后:
 

这段代码会试图在内存中加载并执行一个文件,该文件内容与原病毒基本相同。

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载