学完渗透测试,明白了ATM漏洞实现现金窃取的背后逻辑
字数 1407 2025-08-13 21:33:22

ATM渗透测试与漏洞利用技术详解

1. ATM安全研究背景

自动柜员机(ATM)作为最古老的联网设备之一,其安全性长期以来被高估。研究表明,高成本的合法逆向工程导致大规模部署的ATM缺乏充分的安全测试。本文研究的Nautilus Hyosung HALO II ATM代表了零售ATM的典型安全状况。

2. 目标ATM技术规格

  • 硬件平台: 800MHz ARM Cortex-A8处理器
  • 操作系统: Windows CE 6.0(已终止支持)
  • 软件平台: MoniPlus CE框架
  • 通信标准: Triton Standard协议
  • 调试接口: 未填充的JTAG端口(可通过低电阻值填充激活)

3. 远程管理系统(RMS)漏洞分析

3.1 RMS协议概述

RMS是ATM的远程管理接口,功能包括:

  • 版本和配置信息转储
  • 事务历史记录收集
  • 远程固件更新

通信协议特点:

  • 使用异或运算进行简单混淆
  • 默认监听TCP端口5555
  • 认证依赖ATM序列号和RMS密码

3.2 缓冲区溢出漏洞

漏洞位置: RMSCtrl.dll中的CRmsCtrl::RMS_Proc_Tcp()函数调用链

漏洞成因:

  1. fnNET_RMSRecvData函数未进行边界检查
  2. 使用memcpy直接复制数据到全局接收缓冲区
  3. 数据包验证在复制之后进行

触发条件: 发送大于0x2800字节的恶意数据包

3.3 漏洞利用技术

任意代码执行:

  • 溢出重写DLL退出时调用的函数
  • 利用.data段可执行特性驻留shellcode
  • shellcode在ATM关机时触发执行

持久化技术:

  • 通过NVRAM API(MemGetStr/MemSetStr等)修改配置
  • 可实现:
    • 禁用SSL
    • 重定向交易到恶意处理器
    • 修改密码
  • 修改在重启后仍然保持

4. XFS(金融服务扩展)漏洞分析

4.1 XFS架构概述

XFS是ATM行业标准接口,采用client-server架构:

  • XFS API: 应用交互接口
  • XFS管理器: 消息转换和分发
  • SPI: 硬件服务提供商接口

目标ATM使用Nextware作为XFS中间件实现。

4.2 漏洞发现过程

错误配置:

  • IPC机制使用TCP socket
  • 监听地址为0.0.0.0而非127.0.0.1
  • 导致XFS接口暴露在网络中

暴露端口:

  • 通过端口扫描发现多个开放端口
  • 注册表扫描确认XFS相关配置

4.3 XFS命令注入攻击

攻击步骤:

  1. 逆向分析IPC消息格式
  2. 捕获网络流量分析XFS命令结构
  3. 构造恶意XFS命令数据包
  4. 重放WFS_CMD_CDM_DISPENSE等关键命令

攻击影响:

  • 无需认证执行XFS命令
  • 可直接触发现金分发
  • 控制其他金融设备(读卡器、密码键盘等)

5. 防御建议

  1. RMS安全加固:

    • 实现严格的输入验证
    • 启用内存保护机制(ASLR、DEP)
    • 加强认证机制
  2. XFS配置修复:

    • 限制IPC socket仅监听回环接口
    • 实现命令认证机制
    • 网络隔离关键XFS端口
  3. 系统层面:

    • 升级不再支持的操作系统
    • 启用固件签名验证
    • 物理安全加固JTAG接口

6. 研究意义

本研究揭示了ATM安全的两大关键问题:

  1. 经济因素导致安全测试不足
  2. 传统金融设备面临现代网络威胁

尽管物理防护坚固,网络层面的漏洞仍可能导致严重后果。行业需要提高渗透测试覆盖率并建立更严格的安全标准。

ATM渗透测试与漏洞利用技术详解 1. ATM安全研究背景 自动柜员机(ATM)作为最古老的联网设备之一,其安全性长期以来被高估。研究表明,高成本的合法逆向工程导致大规模部署的ATM缺乏充分的安全测试。本文研究的Nautilus Hyosung HALO II ATM代表了零售ATM的典型安全状况。 2. 目标ATM技术规格 硬件平台 : 800MHz ARM Cortex-A8处理器 操作系统 : Windows CE 6.0(已终止支持) 软件平台 : MoniPlus CE框架 通信标准 : Triton Standard协议 调试接口 : 未填充的JTAG端口(可通过低电阻值填充激活) 3. 远程管理系统(RMS)漏洞分析 3.1 RMS协议概述 RMS是ATM的远程管理接口,功能包括: 版本和配置信息转储 事务历史记录收集 远程固件更新 通信协议特点: 使用异或运算进行简单混淆 默认监听TCP端口5555 认证依赖ATM序列号和RMS密码 3.2 缓冲区溢出漏洞 漏洞位置 : RMSCtrl.dll中的CRmsCtrl::RMS_ Proc_ Tcp()函数调用链 漏洞成因 : fnNET_ RMSRecvData函数未进行边界检查 使用memcpy直接复制数据到全局接收缓冲区 数据包验证在复制之后进行 触发条件 : 发送大于0x2800字节的恶意数据包 3.3 漏洞利用技术 任意代码执行 : 溢出重写DLL退出时调用的函数 利用.data段可执行特性驻留shellcode shellcode在ATM关机时触发执行 持久化技术 : 通过NVRAM API(MemGetStr/MemSetStr等)修改配置 可实现: 禁用SSL 重定向交易到恶意处理器 修改密码 修改在重启后仍然保持 4. XFS(金融服务扩展)漏洞分析 4.1 XFS架构概述 XFS是ATM行业标准接口,采用client-server架构: XFS API : 应用交互接口 XFS管理器 : 消息转换和分发 SPI : 硬件服务提供商接口 目标ATM使用Nextware作为XFS中间件实现。 4.2 漏洞发现过程 错误配置 : IPC机制使用TCP socket 监听地址为0.0.0.0而非127.0.0.1 导致XFS接口暴露在网络中 暴露端口 : 通过端口扫描发现多个开放端口 注册表扫描确认XFS相关配置 4.3 XFS命令注入攻击 攻击步骤 : 逆向分析IPC消息格式 捕获网络流量分析XFS命令结构 构造恶意XFS命令数据包 重放WFS_ CMD_ CDM_ DISPENSE等关键命令 攻击影响 : 无需认证执行XFS命令 可直接触发现金分发 控制其他金融设备(读卡器、密码键盘等) 5. 防御建议 RMS安全加固 : 实现严格的输入验证 启用内存保护机制(ASLR、DEP) 加强认证机制 XFS配置修复 : 限制IPC socket仅监听回环接口 实现命令认证机制 网络隔离关键XFS端口 系统层面 : 升级不再支持的操作系统 启用固件签名验证 物理安全加固JTAG接口 6. 研究意义 本研究揭示了ATM安全的两大关键问题: 经济因素导致安全测试不足 传统金融设备面临现代网络威胁 尽管物理防护坚固,网络层面的漏洞仍可能导致严重后果。行业需要提高渗透测试覆盖率并建立更严格的安全标准。