一、简介

1.起源

Emotet是一个信息窃取者,于2014年首次被报告为银行恶意软件。此后,它有了其他功能(例如,删除程序)进行了演变,分支了其他恶意软件家族,如Gootkit,IcedID,Qakbot和Trickbot。

由于上一篇从宏文件角度去分析Emotet银行木马的特征,但是本文从5个示例流量的区分是否是Emotet银行木马。同时可以帮助我们更好的溯源与分析。

2021-1-25-4

2.了解

要了解由Emotet引起的感染流量,我们必须首先了解导致感染的事件链。Emotet通常通过恶意垃圾邮件(malspam)电子邮件进行分发。Emotet感染链中的关键步骤是Microsoft Word文档,其中包含旨在感染易受攻击的Windows主机的宏。

2021-1-25-1

垃圾邮件传播Emotet使用不同的技术来分发这些Word文档。下图说明了这四种感染技术。

2021-1-25-2

如果受害者打开文档并在易受攻击的Windows主机上启用了宏,则该主机感染了Emotet。

从流量的角度来看,我们看到从Emotet Word文档到Emotet感染的以下步骤:

  • Web流量检索初始二进制文件。
  • 通过HTTP的编码/加密命令和控制(C2)通信。
  • 如果Emotet丢弃了后续恶意软件,则会产生额外的感染流量。
  • 如果Emotet使用受感染的主机作为垃圾邮件程序,则SMTP通信

下图显示了我们在Emotet感染期间可能发现的网络活动的流程图

2021-1-25-3

3.示例一 Emotet感染流量

我们打开Example-1-2021-01-06-Emotet-infection.pcap,并对其HTTP/HTTPS的基本过滤

2021-1-25-5

如上图所示,前五个HTTP GET请求代表用于检索初始Emotet DLL的四个URL。流量为:

1
2
3
4
5
hangarlastik[.]com GET /cgi-bin/Ui4n/
hangarlastik[.]com GET /cgi-sys/suspendedpage.cgi
padreescapes[.]com GET /blog/0I/
sarture[.]com GET /wp-includes/JD8/
seo.udaipurkart[.]com GET /rx-5700-6hnr7/Sgms/

我们来查看下 这个5个url的http响应是如何的,我们使用过滤器进行过滤

1
(http.request or http.response or tls.handshake.type eq 1) and !(ssdp)

2021-1-25-6

当我们看到最后一个url的时候是发现http未响应的,我们对其使用tcp流追踪。

2021-1-25-7

追踪之后我们发现seo.udaipurkart [。] com返回了Windows DLL文件,如下图所示

2021-1-25-8

2021-1-25-9

我们对其导出文件,此提取的DLL的SHA256哈希为:

1
8e37a82ff94c03a5be3f9dd76b9dfc335a0f70efc0d8fd3dca9ca34dd287de1b

Emotet C2流量是使用HTTP POST请求发送的编码数据。您可以使用以下过滤器在Wireshark中轻松找到这些请求:

1
http.request.method eq POST

2021-1-25-10

在我们的第一个pcap中,Emotet C2流量由HTTP POST请求组成,这些请求包括:

  • 通过TCP端口80的5.2.136 [。] 90
  • TCP端口8080上为167.71.4 [。] 0

Emotet为其C2流量生成两种类型的HTTP POST请求。第一种POST请求以HTTP / 1.1结尾。第二种POST请求以HTTP/1.1(application / x-www-form-urlencoded)结尾。

按照针对初始HTTP请求的TCP流到达UTC 5.2.136 [。] 90(UTC时间16:42:34),以查看第一种C2 POST请求的示例,如下图所示。

2021-1-25-11

上图显示了该POST请求发送了大约6 KB的表单数据,该表单数据似乎是编码的或加密的二进制文件。向下滚动到HTTP响应以查看从服务器返回的编码数据。下图显示了此编码数据的开始。

2021-1-25-12

这种类型的编码或加密数据是Emotet僵尸网络服务器与受感染Windows主机交换数据的方式。这也是Emotet用于更新Emotet DLL并删除后续恶意软件的渠道。

针对Emotet C2流量的第二种HTTP POST请求看起来与第一种不同。在Wireshark中使用以下过滤器可以轻松找到第二种HTTP POST请求:

1
urlencoded-form

这应该通过TCP端口8080将两个HTTP POST请求返回到167.71.4 [。] 0,如下图所示。

2021-1-25-13

在16:58:43 UTC遵循TCP流中的这两个HTTP POST请求中的第一个。查看流量。结果如下图所示。

2021-1-25-14

如上图所示,POST请求中发送的某些数据被编码为具有某些URL编码的base64字符串。例如,%2B被用于+符号,%2F表示/和%3D是用于=。

来自服务器的响应发送的数据被编码或以其他方式加密。

这个恶意pcap中没有后续的恶意软件或其他重要活动。

唯一的其他活动是通过TCP端口443重复尝试连接到46.101.230 [。] 194。我们使用以下Wireshark过滤器对其进行过滤:

1
tcp.analysis.retransmission和tcp.flags eq 0x0002

结果如下图所示。2021-1-25-15

在46.101.230 [。] 194上进行的Internet搜索应该显示此IP地址已用于Emotet C2活动。

pcap中的剩余流量是Microsoft Windows 10主机生成的系统流量。

4.示例二 垃圾邮件流量的Emotet

我们打开Example-2-2021-01-05-Emotet-with-spambot-traffic-part-1.pcap,并对其HTTP/HTTPS的基本过滤

2021-1-25-16

与第一个示例类似,我们在Emotet C2流量之前收到了一些HTTP GET请求。这些GET请求是尝试通过网络流量下载初始Emotet DLL的尝试。列显示的第一帧显示到obob [。] tv的HTTPS流量,这可能是Web上对初始Emotet DLL的请求。

2021-1-25-17

按照TCP流对miprimercamino [。] com的HTTP GET请求进行确认,以确认它返回了Emotet DLL。我们可以导出从miprimercamino [。] com返回的Emotet DLL ,如下图所示。

2021-1-25-18

从第二个pcap中提取的DLL的SHA256哈希为:

1
963b00584d8d63ea84585f7457e6ddcac9eda54428a432f388a1ffee21137316

同样,我们发现针对Emotet C2流量的两种HTTP POST请求。要针对每种Emotet C2 HTTP POST请求进行过滤,请使用以下Wireshark过滤器:

  • 第一种类型:

    1
    http.request method eq POST and !(urlencoded-form)
  • 第二种:

1
urlencoded-form

跟踪这些过滤器返回的HTTP POST请求的TCP流,并确认它们在第一个pcap中看到的相同模式。

在查看了来自该pcap的Emotet C2流量的一些示例之后,让我们继续进行spambot活动。

在此示例中,我们被感染的主机变成了垃圾邮件机器人,因此我们也有SMTP通信。spambot SMTP流量已加密,但是我们可以使用基本的Web过滤器并向下滚动列显示轻松找到它。

在20:06:20 UTC时,pcap开始显示与SMTP电子邮件协议相关的TCP端口的SSL / TLS通信,例如TCP端口25、465和587,如下图所示。

2021-1-25-20

在建立加密的SMTP隧道之前,我们可以对smtp进行过滤以找到一些SMTP命令。下图显示了结果。

2021-1-25-19

有时,我们可以从受Emotet感染的Windows主机生成的spambot流量中找到未加密的SMTP。未加密的SMTP将显示其邮件内容,但是来自spambot主机的加密SMTP的数量远远大于未加密的SMTP的数量。因此,来自受Emotet感染的主机的大多数spambot邮件都隐藏在加密流量中。

在此示例中,我们只看到加密的SMTP通信。

5.示例三 Emotet和Spambot流量

我们打开Example-3-2021-01-05-Emotet-with-spambot-traffic-part-2.pcap,并对其HTTP/HTTPS的基本过滤

2021-1-25-21

在此pcap中,我们仍然看到针对Emotet C2流量的HTTP POST请求,每分钟至少两次。我们还可以找到类似于之前的pcap的加密spambot活动。

Spambot活动经常产生大量流量。这个pcap包含来自受感染Windows主机的4分42秒的spambot活动,并且流量超过21 MB。

我们可以使用以下Wireshark筛选器快速识别任何未加密的SMTP通信:

1
smtp.data.fragment

下图显示了我们第三个pcap的过滤器结果。结果显示为5个Emotet垃圾邮件

2021-1-25-22

追踪TCP流中的最后一封电子邮件:“ Gladisbel Miranda,UTC时间20:19:54。,如下图所示。

2021-1-25-23

之后呢 我们可以对其5个垃圾邮件进行导出和分析。

2021-1-25-24

Emotet是恶意软件下载器。通过Emotet分发的最常见的恶意软件可能是Trickbot。

6.示例四 用Trickbot感染Emotet

我们打开Example-4-2021-01-05-Emotet-infection-with-Trickbot.pcap,并对其HTTP/HTTPS的基本过滤

2021-1-25-25

此pcap没有针对初始Emotet DLL的HTTP GET请求。但是,我们在列显示中的第一帧显示到fathekarim [。] com的HTTPS流量。这可能是针对Emotet DLL的网络请求。

此pcap还包含Trickbot感染的迹象。使用基本的Web过滤器并向下滚动以查找Trickbot流量,如下图所示。

2021-1-25-26

以下是Trickbot的常见指标:

  • 在没有关联域或主机名的情况下,通过TCP端口447或449进行的HTTPS通信。
  • 通过标准或非标准TCP端口的HTTP POST请求,以/81 ,/83 或/90结尾的HTTP流量与数据渗透相关联。
  • 使用受Emotet感染的Trickbot时,上述HTTP POST请求以/ mor开头,后跟一个数字(到目前为止只能看到一个或两个数字)。
  • 对以.png结尾的URL的HTTP GET请求,返回其他Trickbot二进制文件。

我们可以使用以下Wireshark过滤器轻松找到这些指标:

1
2
3
4
5
tls.handshake.type eq 1 and (tcp.port eq 447 or tcp.port eq 449)

(http.request.uri contains /81 or http.request.uri contains /83 or http.request.uri contains /90) and http.request.uri contains mor

http.request.uri contains .png

2021-1-25-27

2021-1-25-28

依据下图所示的每个HTTP POST请求的TCP流,以查看是否返回了Windows二进制文件。这样做应该显示两个Windows可执行文件。然后,使用文件–>导出对象–> HTTP从pcap导出这些二进制文件,如前面的示例中所述。

2021-1-25-29

这两个Windows二进制文件(两个EXE文件)的SHA256哈希为:

  • 59e1711d6e4323da2dc22cdee30ba8876def991f6e476f29a0d3f983368ab461 for mingup.png

    2021-1-25-30

  • ed8dea5381a7f6c78108a04344dc73d5669690b7ecfe6e44b2c61687a2306785 for save.png

2021-1-25-31

Trickbot是Emotet分发的最常见的恶意软件,但并非唯一。Qakbot是另一种经常在感染了Emotet的Windows主机上丢弃的恶意软件。

7.示例五 用Qakbot感染Emotet

我们打开Example-5-2020-08-18-Emotet-infection-with-Qakbot.pcap,并对其HTTP/HTTPS的基本过滤

2021-1-25-32

在我们最后的pcap中,21:23:50从saketpranamam.mysquare[。]in中检索了一个Emotet Word文档,该文档与报告为在同一日期托管Emotet Word文档的URL相匹配。如先前示例中所述,使用文件–>导出对象–> HTTP从pcap导出Word文档。

2021-1-25-33

此提取的Word文档的SHA256哈希为:

  • c7f429dde8986a1b2fc51a9b3f4a78a92311677a01790682120ab603fd3c2fcb

此外,此pcap包含Qakbot感染的流量。如下图所示。

2021-1-25-34

以下是Qakbot的常见指标:

  • 通过HTTPS的标准和非标准TCP端口进行的HTTPS通信。
  • Qakbot HTTPS流量的证书数据在颁发者字段中具有异常值,并且证书不是由美国的颁发机构颁发的。
  • 通过TCP端口65400的TCP流量。
  • 2020年11月下旬之前,Qakbot通常生成到cdn.speedof [。] me的HTTPS流量。
  • 2020年11月下旬之前,Qakbot通常会向a.strandsglobal [。] com生成HTTP GET请求。

我们可以使用以下过滤器对其进行找到

1
2
3
4
tls.handshake.type eq 11 and !(x509sat.CountryName == US)
tcp.port eq 65400
tls.handshake.extensions_server_name contains speedof
http.host contains strandsglobal

下图所示第一个过滤器的结果在列显示中显示了来自71.80.66 [。] 107的流量的几帧。并找到异常的证书颁发者数据。

2021-1-25-35

如下图所示我们找到了通过TCP端口65400的单个Qakbot通信的TCP流。此流包含受感染Qakbot的Windows主机的公共IP地址和僵尸网络标识字符串。

2021-1-25-36

尽管Emotet通常删除了Trickbot和Qakbot,但要注意Emotet还删除了其他类型的恶意软件,例如Gootkit和IcedID。

8.结论

从感染流量的pcap中识别Emotet活动。我们回顾了五个最近的pcaps,发现由Emotet C2流量引起的HTTP POST请求中的相似之处。这些模式非常独特,可用于识别网络中的Emotet感染。我们还回顾了与Emotet相关的其他感染后活动,例如垃圾邮件程序流量和被感染主机上丢弃的各种恶意软件家族。

参考链接:

https://unit42.paloaltonetworks.com/wireshark-tutorial-emotet-infection/