TrickBot是自2019年以来影响规模更大的银行木马之一,经过几年的开展,现在的trickBot或许现已脱离了简略的“银行木马”的领域,它的模块化特点将歹意软件提高到了更高的水平。事实上,它能够被视为一种歹意植入,不只能够侵略银行相关事务,还能为高档攻击者供给浸透公司 *** 的东西和机制。在曩昔,有数个要挟安排运用trickBot在中心服务器基础设施中接种Ryuk勒索软件,导致公司严峻的事务中止。
在本文中,咱们将剖析TrickBot最新运作的一些改变状况,包括钓饵Word文档,还有一个由近万行高度混杂代码的的dropper,以及乱用ADS(Alternate Data Stream,供选数据流)的机制。
技能剖析
表1.样本信息
钓饵文档用到的技巧其实是十分简略的:攻击者将歹意代码写入文档文本中,将字体设置为白色,只需更改字体色彩就能够看到一些密布显现的JavaScript代码。这段代码将在感染链的下一阶段履行,但在深入研讨JavaScript代码之前,咱们将先研讨嵌入歹意文档中的宏代码。
图1. Word文档的内容
图2. Word文档的揭露内容
翻开Word文档后,Document_Open()函数将主动履行(图3)。它经过“Print #StarOk, ActiveDocument.Content.Text”句子检索躲藏的文档内容,并将其副本写入“%AppData%MicrosoftWordSTARTUPstati_stic.inf:com1”的本地文件。
图3.嵌入在歹意文档中的宏代码
阅览文件夹“WordSTARTUP”,咱们注意到“stati_stic.inf”文件计数为零字节。实际上,此dropper乱用了Windows文件体系的一个老特性,即“供选数据流”(ADS),将其功用数据躲藏在一个十分规的数据流中。Mitre Att&ck结构中的T1096是一类已知技能,能够在恣意读或的操作期间,将冒号和流的称号连接到文件名来运用。因而,咱们只需一个简略的Powershell指令就能提取流的内容。
图4.运用供选数据流躲藏payload
提取的payload是初始Word文档中的躲藏内容。歹意操控流由“Document_Close()”函数继续进行,其间还调用到了“StripAllHidden()”函数。此例程用于删去攻击者嵌入到文档中的一切躲藏信息,比方攻击者在开发阶段无意间嵌入的一些痕迹。它的代码或许是参阅了一些揭露代码。
之后宏代码履行刚刚写入“com1”数据流的数据。因为流包括JavaScript代码,将经过WScript东西运用以下指令履行:
CallByName CreateObject("wS" & Chri & "Ript.She" & Ja), "Run", VbMethod, Right(Right("WhiteGunPower", 8), Rule) & "sHe" & Ja & " wS" & Chri & "RipT" & GroundOn, 0
收拾后变为:
CallByName CreateObject("wScript.Shell"), "Run", VbMethod, “powershell wscript /e:jscript “c:usersadminappdataroamingmicrosoftwordstartupstati_stic.inf:com1””, 0
JavaScript Dropper
现在,让咱们来看看经过严峻混杂的JavaScript代码,它的变量称号和一些注释还被随机化重命名了,还包括了一些垃圾指令块,以上行动都是旨在下降检测率。
图5.样本检测率
乍一看,攻击者的意图好像现已完成了。该脚本不易阅览,看起来十分复杂:代码中有近1万行代码和1800多个匿名函数。
图6. JavaScript文件的内容
但经过深入研讨后,咱们注意到两个名为“jnabron00”和“jnabron”的要害函数。这些函数用于混杂脚本的每个可了解的字符。之一个“jnabron00”如下图所示:它一直回来零值。
图7.用于混杂代码的函数
另一个是“jnabron”,它包括两个参数:一个是整数值(来自一些混杂的操作)和一个一直是“Ch”的字符串。
jnabron(102,'Ch')
这个函数的意图现在很简单了解:经过“String.fromCharCode” *** 函数回来与整数值相关的ASCII字符。明显,为了混杂函数内部,攻击者再一次让其间包括了许多垃圾指令,如图9所示。
图8.另一个用于混杂代码的函数[1][2]黑客接单网