Ursnif银行木马详细分析报告
字数 1537 2025-08-20 18:18:04
Ursnif银行木马分析与防御指南
一、样本概述
Ursnif(又称Gozi)是一款著名的银行木马,最早出现于2007年,主要针对金融行业。2010年其源代码泄露后,衍生出多种变种,功能不断增强。本分析基于2018年发现的最新变种样本。
样本基本信息:
- MD5: D236F9AAD941974C2B44BF7DEBD2A19B
- C2地址: http://195.123.237.123
- 解压密码: infected
二、技术分析
1. 初始加载过程
-
加壳与脱壳:
- 样本使用UPX加壳
- 脱壳后显示真实恶意代码
-
环境准备:
- 获取精确文件时间信息
- 加载kernel32.dll和ntdll.dll
- 通过GetModuleFileNameA获取文件路径
-
内存操作:
; 典型内存操作代码 call GetCurrentProcess push 0x40 push 0x1000 push 0xF4240 push 0 call VirtualAllocEx
2. 进程注入技术
样本采用Process Hollowing技术注入恶意代码:
- 通过CreateProcessA创建挂起状态的进程
- 使用GetThreadContext获取进程上下文
- 分配内存并写入恶意数据
- 通过SetThreadContext修改入口点
- 使用ResumeThread恢复执行
3. 多阶段Payload加载
-
Payload1:
- 负责解密.bss段数据
- 判断操作系统架构(32/64位)
- 解密并加载Payload2
-
Payload2(核心功能模块):
- 包含银行木马主要恶意功能
- 采用多层解密技术隐藏真实代码
4. 核心恶意功能
-
信息收集:
; 获取系统信息示例 call GetUserNameA call GetComputerNameA -
键盘记录:
- 设置Windows钩子(SetWindowsHookEx)
- 记录所有键盘输入
- 完成后卸载钩子(UnhookWindowsHookEx)
-
剪贴板监控:
- 获取剪贴板数据
- 特别关注金融相关的复制操作
-
屏幕截图:
- 捕获用户屏幕
- 可能针对特定窗口或全屏
-
C2通信:
- 解密出C2地址:195.123.237.123
- 建立命名管道收集数据
- 将窃取信息发送到远程服务器
三、防御措施
1. 检测指标(IOC)
-
文件哈希:
- MD5: D236F9AAD941974C2B44BF7DEBD2A19B
-
网络指标:
- C2地址: 195.123.237.123
- 相关域名需监控
2. 技术防护
-
进程监控:
- 监控可疑的Process Hollowing行为
- 特别关注挂起状态创建的进程
-
API钩取检测:
- 检查SetWindowsHookEx等敏感API调用
- 监控键盘记录相关活动
-
内存保护:
// 示例内存保护代码 VirtualProtect(lpAddress, dwSize, PAGE_READONLY, &oldProtect); -
网络流量分析:
- 检测异常HTTP请求
- 特别关注金融数据的出站传输
3. 企业防护策略
-
终端防护:
- 部署行为检测的EDR解决方案
- 启用内存保护功能
-
邮件安全:
- 加强钓鱼邮件检测
- 金融部门需特别培训
-
网络分段:
- 金融系统与其他网络隔离
- 限制出站连接
-
多因素认证:
- 关键系统强制MFA
- 避免依赖单一认证因素
四、分析与取证指南
-
内存取证:
- 使用Volatility分析进程注入
- 搜索可疑的内存分配模式
-
网络取证:
- 分析HTTP流量中的异常请求
- 提取C2通信特征
-
磁盘取证:
- 查找UPX加壳的可执行文件
- 检查近期创建的可疑文件
-
注册表取证:
- 检查Run键中的持久化条目
- 查找可疑的钩子注册
五、总结与预测
Ursnif作为长期活跃的银行木马家族,结合了多种高级技术:
-
技术特点:
- 多阶段加载规避检测
- 内存驻留避免文件落地
- 针对金融交易的关键节点
-
发展趋势:
- 可能与其他恶意软件(如Emotet)协同
- 针对新型金融平台扩展功能
- 采用更多无文件技术
-
防御建议:
- 定期更新威胁情报
- 实施纵深防御策略
- 金融行业需特别加强防护
本分析报告提供了Ursnif银行木马的详细技术细节和防御方案,安全团队可根据这些信息构建针对性的防护措施。