ATM恶意软件PLOUTUS的新变体Ploutus-D分析报告

2017-01-20 14,271

简介

Ploutus是过去几年中最先进的ATM恶意软件系列之一。 2013年Ploutus第一次在墨西哥被发现,犯罪分子(攻击者)通过发送SMS短信或者使用外部键盘连接到机器,操作ATM系统窃取现金,这是一种从没出现的技术。

近期,Ploutus的新版本Ploutus-D出现了,这是一款可以与KAL(ATM软件提供商)的Kalignite软件平台(多供应商ATM平台)相互作用的恶意软件。样本以ATM供应商Diebold为目标。然而,由于Kalignite平台在80个国家的40个不同的ATM供应商运行,恶意代码小小的更改将大大扩展其ATM供应商的目标。

ATM软件供应商KAL公司的“Kalignite ATM”软件平台,基于XFS标准、适用于Windows10、Windows8、Windows7和WindowsXP,系统功能丰富可满足所有类型的ATM自助服务。

KAL 公司的软件也被中国金融机构广泛使用国内客户列表包含:中国工商银行、中国建设银行、交通银行、深圳发展银行、兴业银行( CIB )、中国光大银行、平安银行等。

一旦部署到ATM,Ploutus-D就可以短短几分钟内为钱骡子(指替人将偷来的钱或物转到另一国家的人)拿到数千美元。为了从ATM分发钱,钱骡子必须具有打开ATM的顶部(或能够拾取)的主密钥,连接到机器的物理键盘,以及由操作的负责人提供的激活码。虽然有被摄像头拍到的风险,但是迅速的操作使得钱骡子的风险最小化。

Ploutus-D 可以允许攻击者在几分钟内窃取数千美元,作案时间相当短从而降低在窃取钱财时被捕的风险。

但攻击者必须将键盘连接到 ATM USB 或者 PS/2 接口与启动器进行交互。

Ploutus-D以未被观察到的特征

  • •它使用Kalignite多供应商ATM平台。
  • •它可以在运行Windows 10,Windows 8,Windows 7和XP操作系统的ATM上运行。
  • •可被配置用以控制Diebold ATM。
  • •它有不同的GUI界面接口。
  • •它带有一个启动器,识别和杀死安全监控进程以避免检测。
  • •它使用一个更强大的.NET Reactor混淆器。

Ploutus和Ploutus-D之间的共性

  • •主要目的是提空ATM,而不需要ATM卡。
  • •攻击者必须使用连接到ATM的外部键盘与恶意软件交互。
  • •攻击者生成激活码,该激活码在24小时后过期。
  • •两者都是使用.NET创建的。
  • •可作为Windows服务或独立应用程序运行。

详解ploutus-D

Ploutus-D(文件名“AgilisConfigurationUtility.exe”)可以作为一个独立的应用程序或由启动程序(“Diebold.exe”)启动的Windows服务运行。虽然两个组件之间共享多个功能,但主要区别是Ploutus-D是具有分发钱的能力的组件。

启动器 - Diebold.exe(.NET)

MD5 C04A7CB926CCBF829D0A36A91EBF91BD
.NET Obfuscator Reactor
File Size 198 kB
File Type Win32 EXE
Time Stamp 2016:11:16 04:55:56-08:00
Code Size 199168
File Version 0.0.0.1
Internal Name Diebold.exe
Legal Copyright Copyright ©  2015
Original Filename Diebold.exe
Product Name Diebold
Product Version 0.0.0.1

表1:启动器属性

 

这一次,攻击者试图通过从.NET Confuser切换到Reactor来混淆代码并组织代码逆向。如图1所代码示保护方式。

640.webp

图1:由Reactor保护的代码

检查启动器

一旦解决代码混淆问题,就可以很容易理解代码工作过程。在启动器执行开始之前,它将对自身执行完整性检查,以确保其未被更改。

启动器可以在命令行中接收不同的参数,作为服务安装,运行Ploutus-D或从计算机卸载。 服务属性可以在图2中看到。

2.webp

图2:启动器的服务描述

持久性

使用非常常见的持久性技术,恶意软件会将自己添加到“Userinit”注册表项中,以便在每次重新启动后允许执行。注册表键位置:

\ HKLM \ Software\ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Userinit

与启动器进行交互

攻击者必须通过将键盘连接到ATM USB或PS / 2端口与启动器进行交互。 下面的图3显示了此设置的示例。

PLOUTUS7

 

图3:连接到ATM端口的键盘

一旦启动器安装在ATM中,它将执行键盘挂接,以便攻击者通过外部键盘读取指令。 将使用“F”键的组合来请求动作执行(参见图4)。

PLOUTUS6

图4:通过键盘与启动器进行交互

支持的主要任务是:

  • •按需启动程序,其中一些程序从启动器的资源部分解密:
  • •C:\ Program Files \ Diebold \Agilis Startup\ AgilisShellStart.exe
  • •Main.exe
  • •XFSConsole.exe
  • •杀死过程:
  • •NHOSTSVC.exe
  • •AgilisConfigurationUtility.exe
  • •XFSConsole.exe
  • •删除文件:
  • •NetOp.LOG- 安全远程管理解决方案
  • •重新启动机器:
  • •“wmicos where Primary='TRUE' reboot”

如图5所示,已发送请求从命令行运行Ploutus-D(AgilisConfigurationUtility.exe)。

5.webp

图5:启动器启动Ploutus-D

合法的KAL ATM软件与Ploutus-D一起被放入系统,如图6所示。这样是为了确保正确运行恶意软件所需的所有软件和版本都存在于同一个文件夹中,以避免出现任何依赖性问题。 同样的技术也被第一版的Ploutus使用。

6.webp

图6:启动器删除的文件

K3A.Platform.dllDLL将加载Kalignite平台,允许Ploutus-D控制ATM。

这表明攻击者可以访问目标ATM软件。 他们可以从授权经销商那里购买物理ATM,它们预先装载了供应商软件,或者他们可以直接从银行窃取ATM。 墨西哥报告的一个真实事件的例子如图7所示。

7.webp

图7:攻击者实际上窃取ATM

Ploutus-D –AgilisConfigurationUtility.exe (.NET)

MD5 5AF1F92832378772A7E3B07A0CAD4FC5
.NET Obfuscator Reactor
File Size 274 kB
File Type Win32 EXE
Time Stamp 1992:06:19 15:22:17-07:00
Code Size 29696
OS Version 4.0
Image Version 0.0
Subsystem Version 4.0

表2:Ploutus-D性质

类似于启动器,这个二进制也受到Reactor 混淆器的保护(见图8)。

QQ截图20170120150548

图8.用Reactor保护

再来看下未受保护的代码(见图9),因为大多数函数的名称与第一版本相同,恶意样本与Ploutus的关系显而易见。

3.webp

图9:不受保护的代码

Ploutus-D将确保系统中不存在名为“KaligniteAPP”的互斥体,以便开始运行。 与启动器类似,Ploutus-D将钩住键盘,以便攻击者与其进行交互; 然而,除了从“F”键接收命令之外,它还从数字键盘读取。

类似于以前的版本,GUI将通过输入“F”键的组合启用。 然后,在GUI中输入有效的8位码,就能拿到钱了。 Ploutus-D还允许攻击者输入要提款的金额(billUnits - 4位数)和循环次数(billCount - 2位数),以重复提款操作(见图10)。

PLOUTUS5

图10:解析量和循环

Ploutus-D GUI显示在图11中。它被配置为列出18个cassettes(C1-C18)的属性。 字母“D”表示cassettes的状态,“CV”是从注册表获取的值。 如果输入了有效的代码,则显示消息“Estado:Activado”,表示“状态:已激活”。 ATM ID和HW_ID对于ATM是唯一的。 要检索的金额显示为:“Cantidad:500”(如果在GUI中没有输入金额,则为默认值)。总金额取决于恶意软件的计算。

PLOUTUS1

图11:启用Ploutus-D GUI

所有操作都将记录到名为“Log.txt”的文件中。 在图12中可以看到提取结果。

PLOUTUS2

图12:日志文件记录操作

提钱

在提钱之前必须要输入8位有效码。有效码由攻击者根据每个ATM生成的唯一ID以及攻击日期来计算。

一旦输入了有效的激活代码(在24小时后过期),提钱过程将从外部键盘按“F3”开始。

恶意代码首先从Diebold Dispenser逻辑名“DBD_AdvFuncDisp”中查询注册表命名表来识别cassette的名称:

\ HKLM \SOFTWARE \ XFS \ PHYSICAL_SERVICES \ DBD_AdvFuncDisp \Denomination Table

接着用类似的策略获得cassette的状态和类型,以确保它们正常工作,并且更重要的是,要识别出至少有一个账单是提款账单。

Ploutus-D将加载由Kalignite平台(K3A.Platform.dll)实现的“KXCashDispenserLib”库用以与XFS管理器交互并控制分配器(参见图13)。

14.webp

图13:装载分配器类

图14显示了XFS Manager及其通过KXCashDispenserLib与Kalignite平台的交互的图形表示。

PLOUTUS3

 

图14:XFS管理器

代码中所示的正确实现所有不同的类和方法以控制分发器的知识表明,恶意软件的开发者在开发期间已经访问到真实的ATM或者雇用了具有在这些机器上编码经验的个人。

将Ploutus扩展到其他ATM供应商

Kalignite平台支持40个ATM供应商。 在提钱的代码上,唯一调整的片段是用不同的注册表项(DBD_AdvFuncDisp)读取cassette的参数。(参见图15)。

PLOUTUS4

图15:获取Diebold cassette参数

由于Ploutus-D与Kalignite平台进行交互,因此只需对Ploutus-D代码进行少量修改即可满足全球不同的ATM供应商。

结论

预测2017年ATM恶意软件的使用将继续增加,特别是在那些安全控制较弱的欠发达国家。通过利用Kalignite平台,可以轻松地修改Ploutus,攻击各种ATM供应商和操作系统。

普及Ploutus相关:

1.首次发现Ploutus-D是什么时候?

•Ploutus-D于2016年11月上传到VirusTotal。

2. Ploutus-D是否持卡人信息为目标?

•否。从ATM内部作用并提款。

3. Ploutus-D是否已经广泛影响ATM?

•是。可以在拉丁美洲观察到。

4.什么类型的ATM受到影响?

•Ploutus-D影响Diebold ATM。

•可对Ploutus-D进行少量修改以影响使用Kalignite平台的其他供应商。

5. Ploutus-D如何安装在ATM上?

•通过物理访问ATM。

6.攻击者如何与Ploutus-D互动?

• 通过需要连接到ATM的外部键盘。

IOC

文件系统:

[D-Z]:\Data \ P.bin

C:\Diebold \ EDC \ edclocal.dat

以下文件应该位于服务Diebold.exe所在的位置:

Log.txt

Log2.txt

P.bin - 系统的Mac地址,加上字符串:“PLOUTUS-MADE-IN-LATIN-AMERICA-XD”

PDLL.bin -P.bin的编码版本

互斥名称:

Ploutos

DIEBOLDPL

KaligniteAPP

服务:

服务名称:DIEBOLDP

注册表:

\\ HKLM \Software \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Userinit =“Diebold.exe,%system32%/ userinit.exe”

 

启明星辰 VFSec Team 整理自 bankinfosecurity & fireeye  入驻账号发布在安全脉搏   转载请注明来源 】

本文作者:VFSec

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/54965.html

Tags:
评论  (0)
快来写下你的想法吧!

VFSec

文章数:1 积分: 0

- VFSec Team - 我们是一群努力干活还不粘人的小妖精

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号