波兰国家网络安全事件响应团队(CERT Polska)发现了一种新型基于Android的NFC中继恶意软件NGate,该恶意软件使网络犯罪分子能够使用受害者自己的支付卡在ATM机上取现,无需物理窃取卡片。
根据CERT Polska的报告:“该攻击活动旨在利用受害者的支付卡进行未授权ATM取现。犯罪分子不会物理窃取卡片,而是将受害者Android手机中的卡片NFC流量中继到攻击者在ATM机旁控制的设备。”
攻击流程:从钓鱼到NFC中继
攻击始于仿冒银行客服的钓鱼和电话社会工程。受害者通过电子邮件或短信收到虚假安全警报,声称存在“技术问题或安全事件”,并引导至钓鱼网站,诱骗用户下载恶意Android应用。
CERT Polska解释:“骗子会致电受害者,冒充银行工作人员‘验证身份’并为安装应用找借口。用户还会收到确认所谓银行员工身份的短信。”
恶意应用随后指示受害者“在应用内直接验证支付卡”——将卡片贴近手机(通过NFC)并在伪造的键盘界面输入PIN码。
“当受害者贴近卡片时,应用会捕获卡片的NFC通信数据(与在终端/ATM机上流动的数据相同),并通过互联网发送给攻击者在ATM机旁的设备,”CERT Polska指出,“攻击者使用中继的卡片数据+PIN码取现。”
技术细节:HCE伪装与实时数据中继
分析发现,恶意APK将自身注册为Android主机卡模拟(HCE)支付服务,使其能够充当虚拟卡片或读卡器。CERT Polska分析称:“该应用在Android上注册为主机卡模拟(HCE)支付服务(因此可模拟虚拟卡片)。”
安装后,恶意软件激活一个原生库(libapp.so ),从嵌入式资源中解密配置。报告显示,恶意软件的命令与控制(C2)服务器地址在运行时通过应用签名证书派生的密钥解密:
“我们解密了该资源,恢复了活跃的C2端点:IP/端口:91.84.97.13:5653。”
随后,恶意软件与该IP地址建立TCP连接(未加密,tls=false),实现受感染设备与攻击者ATM中继终端之间卡片数据和PIN码的实时传输。
CERT Polska的逆向工程显示,原生代码对配置文件执行XOR解密,密钥派生自“APK签名证书的SHA-256哈希”。这种混淆帮助攻击者隐藏服务器地址、令牌和连接模式等关键参数。
数据窃取机制:NFC拦截与PIN捕获
当受害者贴近卡片时,恶意软件利用Android的NFC读取器API拦截EMV数据,包括主账号(PAN)、有效期和应用标识符(AID)。恶意软件的CardData类将这些值与PIN码一起序列化为二进制结构后泄露。
CERT Polska报告证实:“用户界面包含PIN码键盘;PIN码与NFC数据一起发送给攻击者。”
PIN码捕获机制使用自定义键盘组件(PinCodeField),在输入第四位数字后立即发布完整PIN字符串。CERT Polska强调:“一旦达到所需长度(默认4位),它会将完整PIN字符串发布到内部事件总线”,然后通过套接字一步发送至C2服务器。
双角色运作:读卡器与发射器模式
研究人员发现,NGate支持两种操作角色——一种用于收集卡片数据(读卡器模式),另一种用于在ATM机上模拟支付卡(发射器模式)。
这种设置使攻击者能够在两台设备之间实时中继EMV APDU指令和PIN码:一台设备与受害者的卡片交互,另一台在ATM机上模拟该卡片,无需复制物理卡片即可克隆交易会话。
网络层分析:明文传输与持久连接
CERT Polska对网络层的分析显示,恶意软件使用简单的帧式TCP协议发送长度前缀消息和明文载荷。由于TLS被禁用,“网络中的帧易于识别签名,且因tls=false,载荷为明文”。
恶意软件通过每7秒发送一次保活ping维持持久连接,确保攻击者的中继在ATM交易过程中保持同步。
防御建议:
- 警惕任何要求下载“安全验证应用”的银行相关短信/电话,通过官方渠道核实异常通知。
- 避免从未知来源安装APK,仅使用官方应用商店。
- 对应用的NFC权限保持警惕,定期检查已安装应用的权限列表。
- 在输入银行卡PIN码时,注意周围环境是否存在可疑设备,防止被窥视或中继攻击。








发表评论
您还未登录,请先登录。
登录