EMOTET使用一次性C2服务器
2019-09-23 11:40:24 Author: www.4hou.com(查看原文) 阅读量:138 收藏

导语:SentinelOne研究人员分析发现Emotet使用一次性C2服务器来绕过IP ACL和域名过滤的检测。随着Emotet这种模块化下载器的增长,攻击从单一攻击来引发大型灾难。本文分析Emotet用来绕过IP ACL和域名过滤的方法。

SentinelOne研究人员分析发现Emotet使用一次性C2服务器来绕过IP ACL和域名过滤的检测。

随着Emotet这种模块化下载器的增长,攻击从单一攻击来引发大型灾难。本文分析Emotet用来绕过IP ACL和域名过滤的方法。

样本静态分析

如果样本文件被标记为恶意的,研究人员想更多地了解该样本与其他Emotet样本的不同。研究人员看到的是一个XML文件:

image of file type

文件的熵值大约为6,因此可能隐藏了什么,因为office文档的熵值一般都很高,而熵值高并不能表明文件的内容是恶意的:

image of file entropy

分析文件头部,研究人员确认XML文件尝试模拟DOC文件:

image of file headers

提取加密的PowerShell

研究人员使用OLETools来提取嵌入的宏并查看文件的作用。

image of OLE tools

宏文件内容很大,但是如果复制到文件中就可以搜索其结果了。宏文件是经过高度混淆的,但是可以看出其使用字符串的模式。有大量的字符串使用+来链接到其他的字符串熵,所有研究人员使用sed来移除这部分的混淆内容:

$: sed 's/"\ +\ "//g' <Filename>

这里的目的不是得到一个功能性的脚本。而是暴力搜索字符串,那么最佳的开始位置应该是powershell:

$: sed 's/"\ +\ "//g' | grep -i powershell

这会返回空内容。因为宏并不是100%完全反混淆了,因此研究人员再次使用了暴力破解的方法。下面开始移除字母:

$: sed 's/"\ +\ "//g' <Filename> | grep -i owershell

得到的内容为:

    zkAJGDhw = "oWersheLL -e JABEAFkAaQBhAGYAUw"

反编译base64字符串,方法如下:

· 启动Test Lab VM;

· 安装office;

· 保存恶意DOC文件到虚拟机硬盘,并打开doc文件;

· 打开procmon。

使用 Ctrl+t 来打开树形试图,并找到WINWORD.EXE,可以看到PowerShell命令:

image of procmon

然后就可以提取base64编码的命令语法了:

image of base64 encoded powershell command

解码和修改语法来查看其作用:

image of decoded powershell command

通过特殊的变量和URL,研究人员判断这是通用的Emotet dropper命令,其中含有5个硬编码的URL来提取final payload:

image of decoded URLs

有多个URL不仅可以容错,还可以快速修改主机IP地址来修改DNS记录。如果网络设备不仅过滤DNS,仅仅依赖IP的话,那么就可以确保无法有效检测攻击,仍然很容易绕过。

验证C2服务器,搜索payload

研究人员使用cURL来向这些URL发送请求,并查看那些域名仍然活跃:

image of 1 using curl

以上URL有302重定向,但是最终返回的是200响应。

image 2 of using curl

第二个URL不在服务于payload。403 forbidden响应表明URL仍然是活动的,但403错误可能是因为主体提供商删掉了内容。

image 3 of using curl

第三个URL也不在服务于payload,因为返回的404错误代码,因此该主机应该也是活动的。

image 4 of using curl

第4个URL应该仍然是服务于Emotet payload的。

image 5 of using curl

第5和第6个URL的行为和第2和第3个URL相同。

从这2个活动的URL上,研究人员获取了final payload:

image of shasum of payload

这两个文件都与Emotet有关:

Payload URL: zeAtqnKQbF SHA1 = a7f4a98536f65c027fc10c057e3873e6c4cee9be Saved File Name: 200.exe

执行payload

初始进程在重新初始化之后就中止了:

image of terminated process

Payload执行后,会复制自己到用户的AppData文件夹,并重命名:

image of executing payload

然后通过注册表建立驻留:

image of persistence in registry

注册表key值会在用户的AppData文件夹下执行新创建的payload:

image of registry editor

最后第二个进程也被中止,循环继续使用来自用户AppData文件夹的payload:

image of second process terminated

查看基本Procmon进程树:

image of procmon tree

之后,将自己放到一个连接不同远程站点的循环中。研究人员发现有多次通过FTPS连接到远程服务器的尝试:

image of ftps requests

这些连接非常重要,因为不仅允许加密文件下载,也可以对数据泄露进行加密。

研究人员利用RiskIQ检查IP历史:

image of IP history

一次性服务器

从以上数据中可以看出有一些奇怪的行为。IP背后的服务器的可用时间只有1到4天,而且上线时间之间的间隔也很长。有一些IP相关的哈希值经过检查不仅是恶意的,还与Emotet有关:

image of virus total detections

Payload URL: 48R8nccw SHA1 = 5de907cf366f66770a23f589f4578e0d6417641a Saved File Name: 200.exe

虽然该payload的哈希值不同,但是基本行为是相同的:

image of 200.exe

image of create file

image of tcp connections

C2服务器的短期可用性可用让其绕过安全产品的检测。如果攻击者可用绕过传统终端保护产品并且使其网络流量最小的话,就可以成功绕过检测。

结论

Emotet仍然在不断地进化。在本文分析的样本中,研究人员发现攻击者使用短时活动的C2服务器来绕过传统安全产品的检测。


文章来源: https://www.4hou.com/web/18075.html
如有侵权请联系:admin#unsafe.sh