银行恶意软件ATMitch再次出现

Change 观察 2019年5月12日发布
Favorite收藏

导语:4月第一天,yoroi安全实验室检测到了一个新的恶意软件样本。初步鉴定结果显示,它可能与两年前俄罗斯某家银行遭黑客袭击事件相关。

简介

4月第一天,yoroi安全实验室检测到了一个新的恶意软件样本。初步鉴定结果显示,它可能与两年前俄罗斯某家银行遭黑客袭击事件相关,卡巴斯基实验室曾对此做过记录,此次事件的幕后黑手是某一APT组织,攻击者利用了一种名为ATMitch的特定恶意软件工具,在大范围的企业网络入侵后,手动安装在目标银行的ATM机上,进而操纵ATM机的取款过程。该恶意软件可能自2017年起便一直活跃在野外。

技术分析

可执行样本是名为“tester.exe”的PE32 x86文件。它似乎是用于加载恶意payload的自定义加载器,payload能够控制目标机器。

t1.jpg

表1:关于ATMitch的Dropper / Loader的信息

静态数据显示,该样本是2017年10月8日完成编译的,比卡巴斯基披露ATMitch攻击行动晚了几个月。虽然日期有被篡改的可能,但其他静态细节表明,日期更有可能是真实的。

1.PNG

图1:payload作为加载器的资源

可执行文件启动后,会在“C:\ intel”上创建一个新文件夹,然后开始检查所有正在运行的进程,并找寻一个非常特殊的进程——“fwmain32.exe”。“fwmain32”是德国德利多富公司(Wincor Nixdorf International GmbH)提供的软件服务中的一个进程,而德利多富正是提供零售和银行硬件(如ATM)的主要供应商之一。

2.PNG

图2:恶意软件对“fwmain32.exe”进程的研究

一旦找到“fwmain32.exe”进程,加载器会将实际payload注入到自身内存中,存储在加载器资源部分中的payload DLL将使用“SetThreadContext”注入技术(线程劫持)植入目标进程之中,进而感染“fwmain32.exe”。

3.png

图3:完整的线程劫持流程

上图显示了OpenThread和SuspendThread函数的调用过程,这两个函数用于暂停当前执行。 在目标进程中分配正确的内存量后,它使用WriteProcessMemory函数写入shellcode目标内存空间,并使用SetThreadContext设置新的进程上下文,最后通过ResumeThread函数,payload能够启动其恶意执行。

当加载程序成功将payload注入“fwmain”进程时,会显示一个弹出窗口,报告注入阶段的结果。

4.PNG

图4:提示注入阶段结果的弹出窗口

ATMitch Payload

t2.jpg

表2:Payload相关信息

注入的DLL有一个非常典型的依赖关系:它需要“msxfs.dll”才能执行后续操作,“msxfs.dll”库能提供对EXtension for Financial Service(XFS)API的访问,而XFS API是与PIN键盘和自动提款机等AMT组件交互所需的通信接口,只存在于特殊用途的Windows环境中,比如Wincor。

5.PNG

图5:“msxfs.dll”,恶意软件与ATM设备通信所需的库

恶意软件的执行流程并不复杂:它从“c:\ intel”文件夹的文件中读取命令,并与ATM驱动程序进行交互,以便检索有关当前金额的信息并在适当的时间分出资金。下图展示了一个与PinPad和Dispenser(自动提款机)等ATM组件进行通信的函数。

6.png

图6:PinPad和Dispenser组件

使用“msxfs.dll”库提供的函数,恶意软件可以轻松地与这些组件进行交互。例如WFSExecute函数可以将下列命令发送到提款机,如OPEN_SHUTTER或OPEN_SAFE_DOOR。

 7.png

图7:ATM接收的部分命令

在特定情况下,恶意软件使用该函数通过命令WFS_CMD_CDM_DISPENSE流出资金,如图所示:

 8.PNG

图8:恶意软件用于分配资金的命令“WFS_CMD_CDM_DISPENSE”

恶意软件的核心是以下交换机结构:在从特定文件读取新命令之后,它将命令代码与嵌入的命令代码进行比较,例如用于检索信息的“代码2”或用于分配资金的“代码7”。

 9.PNG

图9:恶意软件的交换机结构

此外,恶意软件还具有结构良好的日志记录系统:所有操作都被跟踪并记录到“c:\intel\__log.txt”中。对于需要记录的操作,它可以设置特定的日志记录级别(FATAL,ERROR,DEBUG等)。

 10.PNG

图10:恶意软件日志记录系统的日志级别

结论

我们猜测该ATMitch样本可能是Carbanak或GCMAN组织所为。执行流程如下:攻击者在隔离的主机中手动安装,直接将命令写入目标机器,而不需要任何命令和控制流量;接着通过Remote Desktop连接到目标机器,第一阶段正确执行后还会显示图4所示的提示窗口,之后攻击流程我们推测如下:

1.攻击者使用Remote Desktop连接到ATM机;

2.攻击者转移加载器可执行文件并运行:提示窗口显示一切进展顺利后执行后续步骤;

3.攻击者删除初始文件以抹去痕迹;

4.攻击者在适当的文件中写入命令;

5.恶意软件执行新命令并写入日志文件;

6.攻击者检查日志文件以了解命令执行的状态。

因此,这种恶意软件的最终存在可能只是APT组织实施的更复杂、更明确的攻击前的冰山一角。

IoC

Hashes

· bf9c35d8f33e2651d619fe22a2d55372dedd0855451d32f952ecfc73fa824092

· e372631f96face11e803e812d9a77a25d0a81fa41e4ac362dc8aee5c8a021000

Yara Rules

import "pe"
rule ATMitch {
meta:
     description = "Yara Rule for ATMitch Dropper/Payload"
     author = "ZLAB Yoroi - Cybaze"
     last_updated = "2019-05-03"
     tlp = "white"
     category = "informational"
 
   strings:
       $str1 = {4A 75 E6 8B C7 8B 4D FC}
      $str2 = {EC 53 8D 4D DC 88}
       $str3 = "MSXFS.dll"
       $str4 = "DISPENSE"
      $str5 = "PinPad"
       $str6 = "cash"
       $str7 = {40 59 41 50 41 58 49 40 5A}
       $str8 = "WFMFreeBuffer"
 
condition:
    pe.number_of_sections == 4 and pe.number_of_resources == 3 and $str1 and $str2 or $str3 and $str4 and $str5 and $str6 and $str7 and $str8
}
本文翻译自:https://blog.yoroi.company/research/atmitch-new-evidence-spotted-in-the-wild/如若转载,请注明原文地址: https://www.4hou.com/info/observation/17917.html
点赞 0
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论