TrickBot是2016年发现的一款信息窃取后门,同时用来传播其他恶意软件。TrickBot使用不同的模块来执行不同的功能,其中一个关键功能就是从受感染的Windows客户端传播到有漏洞的Domain Controller (DC)。TrickBot目前使用3个模块来进行传播,2020年4月初,研究人员发现TrickBot将其中的一个模块mworm更新为nworm。Nworm模块的感染不会在受感染的DC中留下痕迹,但是再重启或关机会消失。
TrickBot模块
TrickBot是一款多模块的恶意软件,在感染过程中使用不同的二进制文件来执行不同的功能。在大多数样本中,TrickBot是感染基础是一个保持在硬盘中的恶意Windows可执行文件(exe文件)。该exe文件负责加载TrickBot模块,所以被成为TrickBot加载器。
TrickBot模块是来自系统内存的DLL或exe文件。图1是TrickBot模块的可视化表示:
图 1. TrickBot和其模块的可视化表示
感染Windows 10主机后,TrickBot模块只出现在系统内存中。但是在Windows 7感染主机中,研究人员发现了与保持在硬盘中的模块相关的artifacts。这些artifacts是加密的二进制文件。在TrickBot感染过程中,这些加密的二进制文件会被解密,并从系统内存中运行。图 2是2020年1月Windows 7客户端上感染的TrickBot模块的artifacts示例:
图 2. Windows 7客户端上感染的TrickBot模块的artifacts示例
如图 2所示,artifact名是以64结尾的,也就是说主机运行的是Windows 7的64位版本。如果感染发生在Windows 7主机的32位系统上,这些artifact名就会变成32结尾。
图 2也表明TrickBot用来在Active Directory (AD,活动目录)环境传播的3个模块,分别是:
· mwormDll64 ( “mworm”模块)
· mshareDll64 ( “mshare”模块)
· tabDll64 ( “tab”模块)
传播模块
从2019年9月开始,具有传播功能的TrickBot模块就使用mworm、mshare和tab。在有漏洞的DC上进行传播上生成不同的活动。
对mshare和tab模块:
· 受感染的Windows客户端可以用HTTP URL提取出一个新的TrickBot EXE文件;
· 受感染的Windows客户端会通过SMB流量发送新的TrickBot EXE文件到有漏洞的DC;
对mworm模块:
· 受感染的Windows客户端可以用SMB漏洞利用来攻击有漏洞的DC。
· 有漏洞的DC可以用HTTP URL提取出新的TrickBot EXE来感染自己。
图 3 是这3个TrickBot模块引发的传播流量图:
图 3. TrickBot传播流图(2019年9月-2020年3月)
2020年2月起,这些模块生成的URL来提取TrickBot EXE文件使用了如下模式:
· Mshare模块生成的URL以 /images/cursor.png结尾;
· mworm模块生成的URL以 /images/redcar.png结尾;
· tab模块生成的URL以/images/imgpaper.png结尾。
这些URLs使用的是IP地址而非域名。图4是2020年3月Wireshark抓取的TrickBot感染流量:
图 4. TrickBot的mshare、mworm、tab模块引发的HTTP GET请求
Mworm→Nworm
2020年4月,研究人员在实验室环境生成TrickBot感染时发现TrickBot就不再使用mworm模块了。在感染的Windows 7客户端上出现了一个新的artifact——“nworm”,如图5所示:
图 5. 2020年4月发现的nworm模块
Nworm产生的HTTP流量与mworm产生的HTTP流量是明显不同,具体是:
· mworm: URL是以/images/redcar.png结尾的;
· nworm: URL 是以/ico/VidT6cErs结尾的;
· mworm: TrickBot EXE之后会返回一个非加密的HTTP流量;
· nworm: TrickBot EXE之后会在HTTP流量中返回一个解密的或编码的二进制文件。
通过使用Wireshark抓取和分析TCP流量,可以发现mworm 模块和新nworm模块对HTTP流量带来的不同。图6是2020年3月mworm的流量,图7是2020年4月nworm模块的流量:
图 6. 2020年3月mworm模块引发的HTTP的流量
图 7. 2020年4月nworm模块引发的HTTP的流量
图 8 是当前传播流图:
图 8. TrickBot的传播流图
与mworm类似,新的nworm模块并没有出现,除非TrickBot感染发生在AD环境中。
Nworm无法实现驻留
Nworm感染了有漏洞的DC后,恶意软件就会从内存中运行。在感染的DC中没有发现artifacts,DC中的TrickBot重启后无法生存。
TrickBot的 mshare 和 tab感染了有漏洞的DC后,感染就会在DC上实现驻留,但通过nworm实现的感染是不持久的。但这对恶意软件来说,并不是一个问题。因为DC是服务器,而服务器关机和重启的频率都很低。
Gtag
每个TrickBot二进制文件都有一个唯一的id——gtag。Gtag在TrickBot二进制文件的配置数据中可以提取出来。在TrickBot感染过程中,Gtag也会出现在HTTP流量中。这用来表明特定的攻击活动或TrickBot二进制文件的感染源。
Gtag是一个端的字母字符串+数字,比如:
· mor-series gtag: mor84
· red-series gtag: red5
TrickBot二进制文件的gtags是唯一的:
· tot-series gtag: mshare 模块使用的TrickBot二进制文件
· jim-series gtag: nworm (mworm) 模块使用的TrickBot二进制文件
· lib-series gtag: tab module模块使用的TrickBot二进制文件
图 9. 初始的TrickBot感染,10.4.20.101的感染客户端的HTTP流量表明gtag是ono38
图 10. TrickBot传播到DC,其中gtag为jim716
本文翻译自:https://unit42.paloaltonetworks.com/goodbye-mworm-hello-nworm-trickbot-updates-propagation-module/如若转载,请注明原文地址