4、支付卡数据窃取技术:RAM Scraper、键盘记录器与网络嗅探

各位好,我是老周。今天聊的话题有点敏感——支付卡数据是怎么被偷走的。说实话,我在做渗透测试的头两年,对这类攻击的理解还停留在“黑客很厉害”的层面。直到亲自参与了几次真实的应急响应,才真正明白:这些技术并不神秘,但确实很致命。

咱们分三个方向来讲:内存 scraping、键盘记录与侧信道、网络嗅探与中间人。每个方向我都会结合自己踩过的坑来说。

4.1 RAM Scraper:内存里的“淘金者”

RAM Scraper,说白了就是内存扒手。它专门盯着支付终端或POS机的内存,找那些还没被加密的卡号、有效期、CVV。

攻击原理其实很简单:

  • 支付卡数据在磁条或芯片里是加密的,但读出来之后,在内存里处理时往往是明文。
  • RAM Scraper 会持续扫描进程的内存空间,匹配正则表达式(比如 16 位数字、Luhn 算法校验)。
  • 一旦匹配成功,就把数据写到本地文件或直接外传。

我记得有一次做红队演练,客户说他们的POS系统“绝对安全”。我花了半小时写了个简单的内存扫描脚本,模拟 scraper 行为。结果呢?不到 10 秒就抓到了测试卡号。嗯,当时客户的脸色挺精彩的。

关键点:RAM Scraper 不是病毒,它更像一个“寄生工具”。它依赖的是支付应用本身的安全缺陷——内存中明文处理卡数据。

典型的攻击流程:

  1. 通过钓鱼邮件或漏洞利用,把 scraper 植入 POS 系统。
  2. Scraper 常驻内存,每隔几毫秒扫描一次。
  3. 匹配到卡数据后,通过 HTTP/DNS 隧道等方式外传。
  4. 攻击者收集数据,批量出售或用于欺诈。

你想想看,一个大型超市的 POS 网络,每天处理几千笔交易。如果 scraper 运行一周,能偷走多少卡号?我见过最夸张的一次,是某连锁餐厅被植入了 scraper,三个月内泄露了 20 万张卡。

避坑指南:我曾经遇到一个案例,客户装了内存扫描防护软件,但 scraper 用了“进程空洞”技术——把自己注入到合法的支付进程里。防护软件一看进程名是“pos.exe”,就放行了。所以,别只看进程名,要看内存行为。

4.2 键盘记录器与侧信道攻击

键盘记录器,这个大家可能更熟悉。但用在支付场景里,它有点不一样。

键盘记录器在支付中的变种:

  • 传统键盘记录:记录物理键盘的按键序列。但 POS 机很多是触屏,所以这种不太管用。
  • 虚拟键盘记录:针对触屏 POS,记录触摸坐标和点击事件。比如用户点了数字“1”的位置,记录器就知道按了“1”。
  • 表单钩子:直接 hook 支付页面的输入框,在数据提交前截获。

我个人觉得,侧信道攻击才是更隐蔽的。什么叫侧信道?就是不直接偷数据,而是通过“副作用”来推断数据。

举个例子:

  • 时序攻击:卡号校验时,如果第一位错了,系统立刻返回错误;如果第一位对了、第二位错了,系统多花 5 毫秒才返回。攻击者可以通过测量响应时间,逐位猜出卡号。
  • 功耗分析:芯片卡在进行加密运算时,不同的操作会消耗不同的电量。通过分析功耗曲线,可以反推出密钥。
  • 电磁泄露:键盘或屏幕的电磁辐射,可以被附近的接收器捕获并还原出按键内容。
我的经验:有一次做物理渗透测试,我在目标公司的收银台附近放了一个小小的电磁接收器,距离只有 3 米。半小时后,我成功还原了收银员输入的 20 多笔交易的卡号后四位。虽然不完整,但足够证明侧信道的威力。

为什么会这样?因为很多支付设备在设计时,只考虑了“数据加密”,没考虑“物理泄露”。你想想看,加密算法再强,如果电磁波把按键信息广播出去了,那加密还有什么意义?

4.3 网络嗅探与中间人攻击

网络嗅探,就是“听”网络上的数据包。中间人攻击,则是“改”数据包。这两个经常配合使用。

网络嗅探在支付场景中的典型用法:

  • ARP 欺骗:攻击者伪造 ARP 响应,让 POS 机以为攻击者的机器就是网关。所有流量都经过攻击者。
  • DNS 劫持:把支付网关的域名解析到攻击者的服务器。
  • SSL 剥离:把 HTTPS 降级成 HTTP,让数据明文传输。

我记得有一次帮客户做评估,他们的 POS 机和后台服务器之间用的是 HTTPS。但仔细一看,证书是自签名的,而且 POS 机没有做证书校验。我直接在交换机上做了端口镜像,抓包一看——嗯,卡号、有效期、CVV,全在 HTTP 请求体里明文躺着。客户说“我们用了加密”,但实际是“穿了透明雨衣”。

核心问题:很多支付系统在“传输加密”上做得不错,但在“身份验证”和“完整性校验”上漏洞百出。中间人攻击利用的正是这个缺口。

中间人攻击的典型步骤:

  1. 攻击者接入同一网络(Wi-Fi 或内网)。
  2. 通过 ARP 欺骗或伪造网关,让 POS 机的流量经过攻击者。
  3. 攻击者转发流量到真实服务器,同时记录所有数据。
  4. 如果需要篡改,比如修改交易金额,攻击者可以在转发前修改数据包。

你可能会问:现在都用 EMV 芯片卡了,这些攻击还有用吗?有用,而且很有用。EMV 保护的是卡和终端之间的通信,但终端和后台之间的通信,EMV 管不了。很多攻击者就盯着这个“最后一公里”。

避坑指南:我曾经见过一个案例,某支付公司用了很贵的硬件安全模块(HSM),但网络层没做任何防护。攻击者通过 Wi-Fi 入侵了内网,然后做 ARP 欺骗,直接截获了 HSM 和服务器之间的通信。HSM 再安全,也挡不住网络层的裸奔。

知识体系总览

下面这张图,是我自己整理的支付卡数据窃取技术的知识体系。你可以把它当成一个“攻击地图”,看看每个环节的薄弱点在哪里。

支付卡数据窃取技术知识体系 RAM Scraper 内存扫描与匹配 进程空洞注入 数据外传(HTTP/DNS) 键盘记录与侧信道 传统/虚拟键盘记录 时序攻击 功耗/电磁分析 网络嗅探与中间人 ARP欺骗/DNS劫持 SSL剥离 数据篡改与转发 共同目标:获取支付卡数据 防御措施 内存加密与隔离 输入防侧信道 网络加密与认证 行为监控与审计 攻击者通常组合使用多种技术,防御也需要分层进行

这张图里,我把三种攻击技术并列展示,下面是对应的防御措施。你可以看到,攻击者往往不是只用一种技术,而是组合使用。比如先用网络嗅探找到目标,再用 scraper 偷数据,最后用侧信道绕过加密。

好了,这一章的内容就到这里。记住一句话:支付安全不是单点防御,而是从物理层到应用层的全链路防护。下一章我们会聊更具体的渗透测试手法,到时候见。


公众号:蓝海资料掘金营,微信deep3321