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以未被观察到的特征
Ploutus和Ploutus-D之间的共性
详解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所代码示保护方式。
图1:由Reactor保护的代码
检查启动器
一旦解决代码混淆问题,就可以很容易理解代码工作过程。在启动器执行开始之前,它将对自身执行完整性检查,以确保其未被更改。
启动器可以在命令行中接收不同的参数,作为服务安装,运行Ploutus-D或从计算机卸载。 服务属性可以在图2中看到。
图2:启动器的服务描述
持久性
使用非常常见的持久性技术,恶意软件会将自己添加到“Userinit”注册表项中,以便在每次重新启动后允许执行。注册表键位置:
\ HKLM \ Software\ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Userinit
与启动器进行交互
攻击者必须通过将键盘连接到ATM USB或PS / 2端口与启动器进行交互。 下面的图3显示了此设置的示例。
图3:连接到ATM端口的键盘
一旦启动器安装在ATM中,它将执行键盘挂接,以便攻击者通过外部键盘读取指令。 将使用“F”键的组合来请求动作执行(参见图4)。
图4:通过键盘与启动器进行交互
支持的主要任务是:
如图5所示,已发送请求从命令行运行Ploutus-D(AgilisConfigurationUtility.exe)。
图5:启动器启动Ploutus-D
合法的KAL ATM软件与Ploutus-D一起被放入系统,如图6所示。这样是为了确保正确运行恶意软件所需的所有软件和版本都存在于同一个文件夹中,以避免出现任何依赖性问题。 同样的技术也被第一版的Ploutus使用。
图6:启动器删除的文件
K3A.Platform.dllDLL将加载Kalignite平台,允许Ploutus-D控制ATM。
这表明攻击者可以访问目标ATM软件。 他们可以从授权经销商那里购买物理ATM,它们预先装载了供应商软件,或者他们可以直接从银行窃取ATM。 墨西哥报告的一个真实事件的例子如图7所示。
图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)。
图8.用Reactor保护
再来看下未受保护的代码(见图9),因为大多数函数的名称与第一版本相同,恶意样本与Ploutus的关系显而易见。
图9:不受保护的代码
Ploutus-D将确保系统中不存在名为“KaligniteAPP”的互斥体,以便开始运行。 与启动器类似,Ploutus-D将钩住键盘,以便攻击者与其进行交互; 然而,除了从“F”键接收命令之外,它还从数字键盘读取。
类似于以前的版本,GUI将通过输入“F”键的组合启用。 然后,在GUI中输入有效的8位码,就能拿到钱了。 Ploutus-D还允许攻击者输入要提款的金额(billUnits - 4位数)和循环次数(billCount - 2位数),以重复提款操作(见图10)。
图10:解析量和循环
Ploutus-D GUI显示在图11中。它被配置为列出18个cassettes(C1-C18)的属性。 字母“D”表示cassettes的状态,“CV”是从注册表获取的值。 如果输入了有效的代码,则显示消息“Estado:Activado”,表示“状态:已激活”。 ATM ID和HW_ID对于ATM是唯一的。 要检索的金额显示为:“Cantidad:500”(如果在GUI中没有输入金额,则为默认值)。总金额取决于恶意软件的计算。
图11:启用Ploutus-D GUI
所有操作都将记录到名为“Log.txt”的文件中。 在图12中可以看到提取结果。
图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)。
图13:装载分配器类
图14显示了XFS Manager及其通过KXCashDispenserLib与Kalignite平台的交互的图形表示。
图14:XFS管理器
代码中所示的正确实现所有不同的类和方法以控制分发器的知识表明,恶意软件的开发者在开发期间已经访问到真实的ATM或者雇用了具有在这些机器上编码经验的个人。
将Ploutus扩展到其他ATM供应商
Kalignite平台支持40个ATM供应商。 在提钱的代码上,唯一调整的片段是用不同的注册表项(DBD_AdvFuncDisp)读取cassette的参数。(参见图15)。
图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