技术分享丨识别近期Emotet感染流量

  XCTF联赛小秘       2021-02-03 13:57:38 3264  0

一. 起源

图片
Emotet是一个信息窃取者,于2014年首次被报告为银行恶意软件。此后,它有了其他功能(例如,删除程序)进行了演变,分支了其他恶意软件家族,如Gootkit,IcedID,Qakbot和Trickbot。
由于上一篇从宏文件角度去分析Emotet银行木马的特征,但是本文从5个示例流量的区分是否是Emotet银行木马。同时可以帮助我们更好的溯源与分析。


二. 了解

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


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

如果受害者打开文档并在易受攻击的Windows主机上启用了宏,则该主机感染了Emotet。
从流量的角度来看,我们看到从Emotet Word文档到Emotet感染的以下步骤:
  • Web流量检索初始二进制文件。

  • 通过HTTP的编码/加密命令和控制(C2)通信。

  • 如果Emotet丢弃了后续恶意软件,则会产生额外的感染流量。

  • 如果Emotet使用受感染的主机作为垃圾邮件程序,则SMTP通信

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


三. 示例—Emotet感染流量

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

如上图所示,前五个HTTP GET请求代表用于检索初始Emotet DLL的四个URL。流量为:
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响应是如何的,我们使用过滤器进行过滤
(http.request or http.response or tls.handshake.type eq 1) and !(ssdp)
当我们看到最后一个url的时候是发现http未响应的,我们对其使用tcp流追踪。
追踪之后我们发现seo.udaipurkart [。] com返回了Windows DLL文件,如下图所示


我们对其导出文件,此提取的DLL的SHA256哈希为:
8e37a82ff94c03a5be3f9dd76b9dfc335a0f70efc0d8fd3dca9ca34dd287de1b
Emotet C2流量是使用HTTP POST请求发送的编码数据。您可以使用以下过滤器在Wireshark中轻松找到这些请求:
http.request.method eq POST

在我们的第一个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请求的示例,如下图所示。

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

这种类型的编码或加密数据是Emotet僵尸网络服务器与受感染Windows主机交换数据的方式。这也是Emotet用于更新Emotet DLL并删除后续恶意软件的渠道。
针对Emotet C2流量的第二种HTTP POST请求看起来与第一种不同。在Wireshark中使用以下过滤器可以轻松找到第二种HTTP POST请求:
urlencoded-form
这应该通过TCP端口8080将两个HTTP POST请求返回到167.71.4 [。] 0,如下图所示。


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


如上图所示,POST请求中发送的某些数据被编码为具有某些URL编码的base64字符串。例如,%2B被用于+符号,%2F表示/和%3D是用于=。
来自服务器的响应发送的数据被编码或以其他方式加密。
这个恶意pcap中没有后续的恶意软件或其他重要活动。
唯一的其他活动是通过TCP端口443重复尝试连接到46.101.230 [。] 194。我们使用以下Wireshark过滤器对其进行过滤:
tcp.analysis.retransmission和tcp.flags eq 0x0002
结果如下图所示。

在46.101.230 [。] 194上进行的Internet搜索应该显示此IP地址已用于Emotet C2活动。
pcap中的剩余流量是Microsoft Windows 10主机生成的系统流量。

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

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

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

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

从第二个pcap中提取的DLL的SHA256哈希为:
963b00584d8d63ea84585f7457e6ddcac9eda54428a432f388a1ffee21137316
同样,我们发现针对Emotet C2流量的两种HTTP POST请求。要针对每种Emotet C2 HTTP POST请求进行过滤,请使用以下Wireshark过滤器:
  • 第一种类型:

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

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,如下图所示。

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

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

五. 示例三 Emotet和Spambot

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

在此pcap中,我们仍然看到针对Emotet C2流量的HTTP POST请求,每分钟至少两次。我们还可以找到类似于之前的pcap的加密spambot活动。
Spambot活动经常产生大量流量。这个pcap包含来自受感染Windows主机的4分42秒的spambot活动,并且流量超过21 MB。
我们可以使用以下Wireshark筛选器快速识别任何未加密的SMTP通信:
smtp.data.fragment
下图显示了我们第三个pcap的过滤器结果。结果显示为5个Emotet垃圾邮件

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

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

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

六. 示例四 用Trickbot感染Emotet

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

pcap没有针对初始Emotet DLL的HTTP GET请求。但是,我们在列显示中的第一帧显示到fathekarim [。] com的HTTPS流量。这可能是针对Emotet DLL的网络请求。
此pcap还包含Trickbot感染的迹象。使用基本的Web过滤器并向下滚动以查找Trickbot流量,如下图所示。
以下是Trickbot的常见指标:
  • 在没有关联域或主机名的情况下,通过TCP端口447或449进行的HTTPS通信。

  • 通过标准或非标准TCP端口的HTTP POST请求,以/81 ,/83 或/90结尾的HTTP流量与数据渗透相关联。

  • 使用受Emotet感染的Trickbot时,上述HTTP POST请求以/ mor开头,后跟一个数字(到目前为止只能看到一个或两个数字)。

  • 对以.png结尾的URL的HTTP GET请求,返回其他Trickbot二进制文件。

我们可以使用以下Wireshark过滤器轻松找到这些指标:
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

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

这两个Windows二进制文件(两个EXE文件)的SHA256哈希为:
  • 59e1711d6e4323da2dc22cdee30ba8876def991f6e476f29a0d3f983368ab461 for mingup.png


  • ed8dea5381a7f6c78108a04344dc73d5669690b7ecfe6e44b2c61687a2306785 for save.png


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

七. 示例五 用Qakbot感染Emotet

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

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

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

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

以下是Qakbot的常见指标:
  • 通过HTTPS的标准和非标准TCP端口进行的HTTPS通信。

  • Qakbot HTTPS流量的证书数据在颁发者字段中具有异常值,并且证书不是由美国的颁发机构颁发的。

  • 通过TCP端口65400的TCP流量。

  • Qakbot通常生成到cdn.speedof [。] me的HTTPS流量。

  • Qakbot通常会向a.strandsglobal [。] com生成HTTP GET请求。

我们可以使用以下过滤器对其进行找到
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的流量的几帧。并找到异常的证书颁发者数据。

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

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

八. 结论

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

参考链接:
https://unit42.paloaltonetworks.com/wireshark-tutorial-emotet-infection/
https://github.com/pan-unit42/wireshark-tutorial-Emotet-traffic

请先登录
+1 已点过赞
0
分享到: