Cisco Talos安全研究人员近期发现一个传播Ursnif银行木马的新恶意软件活动,其中使用PowerShell来获取无文件驻留技术以绕过Cisco Advanced Malware Protection (AMP) Exploit Prevention引擎的活动。
Ursnif也叫做Gozi ISFB,是原始Gozi银行木马的变种,该银行木马的源码在2014年被泄露。而Ursnif是Gozi的变种,在不断地更新新的功能。
Cisco Talos近期发现一个传播Ursnif银行木马的新恶意软件活动,活动中使用了常用的payload传播方法,即使用含有恶意VBA宏的word文档,如果启用宏,VBA宏代码就可以自动运行AutoOpen。否则,恶意文档就会展示给用户一个图像要求用户启动宏,如下图所示。
图1 要求用户启动宏的消息
VBA宏中含有一行用来执行下一阶段感染的代码,是通过访问Shapes对象j6h1cf的AlternativeText特征实现的。特征的值是一个恶意的PowerShell命令,随后由Shell函数执行。
命令是用base64编码的,释放器也是用该命令将Ursnif 木马下载到AppData文件夹,然后在被黑的机器上启动。
在受害者机器上执行后,Ursnif就会增加含有下一个命令的新注册表记录,命令用Windows Management Instrumentation Command-line (WMIC)解码新的 Powershell命令,最终用iex来执行Asynchronous Procedure Call (APC)注入。
图2 写入的注册表数据
为了将自己成功注入到受害者机器的内存中,达到无文件驻留的目的。恶意软件使用了下面的步骤:
首先用VirtualAllocEx为恶意DLL分配内存,目标是当前进程;如果分配成功,用copy复制恶意DLL到新分配的内存。完成后,执行QueueUserAPC,指定进程中的当前线程。这会创建一个用户模式的APC,然后在该线程中排队。为了在APC队列中执行恶意DLL,线程需要进入alertable状态。而SleepEx就是用户在APC注入完成后触发alertable状态的,为其第二个参数设定状态1(True)。
成功注入后,Ursnif木马会开始向C2服务器发送HTTPS的请求,其中含有窃取的CAB文件的数据。
图3通过QueueUserAPC API实现APC注入
更多技术分析参见https://blog.talosintelligence.com/2019/01/amp-tracks-ursnif.html。