一款HW期间使用的免杀钓鱼样本
字数 2648 2025-08-24 07:48:22
高级免杀钓鱼样本分析与防御教学文档
一、样本概述
1.1 样本基本信息
- 文件名称: 中国银联考勤信息核对表.rar
- 文件大小: 6,739,934 字节
- 哈希值:
- MD5: A269B0C88AE1410C75034219C7DE34A6
- SHA1: 048B60B9B2858D990F5F5466CD6865FCFBCDF298
- CRC32: D7A56038
1.2 杀毒引擎检测情况
- 腾讯电脑管家: 未发现风险
- 火绒剑: 未发现风险
- 360安全卫士: 发现可疑lnk文件
二、样本结构分析
2.1 压缩包内容
解压后包含:
- 快捷方式文件: 中国银联考勤信息核对表.docx.lnk
- 隐藏目录:
__init__\
2.2 快捷方式分析
快捷方式执行的命令:
C:\Windows\System32\ftp.exe - "" s:__init__\libEGL.dll libEGL.dll
- 调用系统ftp.exe执行隐藏目录下的libEGL.dll文件
- 这是一种绕过检测的常见手法,利用系统可信程序加载恶意文件
2.3 libEGL.dll分析
- 实际为文本文件,非真正的DLL
- 功能:
- 运行
__init__\main.pyw(恶意文件) - 运行
__init__\11.docx(迷惑文档)
- 运行
三、恶意代码执行流程
3.1 执行链
- 用户双击快捷方式 → 执行libEGL.dll → 执行main.pyw
- main.pyw → 调用action.py
- action.py → 下载并解密载荷 → 执行shellcode → Cobalt Strike Beacon
3.2 action.py详细分析
3.2.1 外链下载
- 第一段载荷下载URL:
https://message-pdf.oss-cn-hangzhou.aliyuncs.com/vmQJM81Ry - 第二段载荷下载URL:
https://ryhv9ym3hldwf.oss-cn-shenzhen.aliyuncs.com/UNdk8Ps
3.2.2 解密算法
-
第一段载荷解密:
- 算法: 每4个字符提取1个字符,生成新的base64字符串
- 然后进行base64解码
-
第二段载荷解密:
- 先进行base64解码
- 然后使用异或算法解密,密钥:
InlvnrOXjmrdNjNgR
3.2.3 shellcode加载
使用以下API加载执行shellcode:
VirtualAlloc: 分配可执行内存RtlMoveMemory: 将shellcode复制到分配的内存CreateThread: 创建线程执行shellcode
四、shellcode分析
4.1 shellcode结构
- 大小: 235KB
- 推测功能: 内存中解密释放PE文件
4.2 解密过程
-
解密20字节后续载荷:
- 从shellcode偏移0xB处解密
- 包含循环异或解密算法代码
-
解密0x3A818字节载荷:
- 从shellcode偏移0x28处解密
- 解密算法: 按字节异或0x3
4.3 PE文件头修改
- PE头被修改为"NO"而非标准的"MZ"
- 这是一种常见的免杀技术,用于绕过基于签名的检测
4.4 API动态解析
- 使用
LoadLibrary和GetProcAddress动态获取API - 避免在导入表中留下明显痕迹
4.5 最终载荷执行
- 调用
VirtualAlloc和VirtualProtect分配可执行内存 - 跳转到新分配的代码空间执行
- 行为类似DLL的
DllEntryPoint函数
五、C2通信分析
5.1 C2服务器列表
223.111.24.107,/api/v2/getconfig (中国 江苏省 南京市)
121.29.38.230,/api/v2/getconfig (中国 河北省 石家庄市)
58.218.215.183,/api/v2/getconfig (中国 江苏省 徐州市)
221.178.6.239,/api/v2/getconfig (中国 重庆市)
180.163.146.91,/api/v2/getconfig (中国 上海市)
119.84.72.233,/api/v2/getconfig (中国 重庆市)
182.242.49.114,/api/v2/getconfig (中国 云南省 昆明市)
5.2 HTTP请求特征
- User-Agent:
Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/5.0) - Accept:
*/* - Cookie:
SESSIONID=Cxarhe46onaiZzyjZxgIyQ5ErWqozkwuuO8KlT2EhNXBjOGw284NftrwxnaB0zcyEKMKTudfcS8BweMLBrhcshSi+F1sx+BqltAP1vfPgsW97pyW6YV2XFvBb0b5tGeDXnHY7cVajC3wyWQ8kViIA6kAc21cRegtRmkQuDgWCX4= - Host:
elaber.net
六、样本家族溯源
6.1 Cobalt Strike特征
- 使用yara规则匹配到Cobalt Strike特征字符串
- 使用CobaltStrikeParser工具成功提取配置信息
6.2 免杀技术总结
- 字符串处理: 修改特征字符串
- PE头修改:
- 将"This program cannot be run in DOS mode"修改
- PE头标志改为"NO"
- 节表处理: 修改节表名称
- 多阶段加载: 分多个阶段下载和执行载荷
- 动态API解析: 减少导入表痕迹
- 使用合法程序加载: 通过ftp.exe加载恶意代码
七、防御建议
7.1 检测层面
-
监控异常快捷方式行为:
- 监控lnk文件调用系统程序加载非常规文件
- 特别关注调用ftp.exe、rundll32.exe等加载非标准文件
-
网络流量检测:
- 监控对阿里云OSS等云存储的可疑访问
- 检测特征User-Agent和Cookie模式
- 监控对上述C2 IP的访问
-
进程行为监控:
- 检测多阶段内存分配和执行行为
- 监控VirtualAlloc + CreateThread模式
7.2 防护层面
-
禁用不必要的快捷方式功能:
- 通过组策略限制lnk文件的执行能力
-
应用白名单:
- 限制只有可信程序可以从特定位置执行
-
Python脚本执行控制:
- 监控非常规位置的pyw/py文件执行
-
内存保护:
- 启用防漏洞利用保护(如Windows Defender Exploit Guard)
7.3 应急响应
-
IOC清单:
- 文件哈希
- C2服务器IP和URL
- 网络通信特征
-
取证分析:
- 检查系统快捷方式文件
- 查找隐藏目录中的非常规文件
- 分析内存中的可疑进程
八、技术总结
该样本展示了高级攻击者常用的多种技术:
- 社会工程: 伪装成银联相关文件
- 多阶段加载: 分多个阶段下载和执行恶意代码
- 免杀技术: 修改PE特征、动态API解析、使用系统程序加载
- 隐蔽通信: 使用云存储作为中转,多C2服务器轮询
- 内存驻留: 完全在内存中执行,不落地
防御此类攻击需要多层防护策略,结合行为检测、网络监控和严格的执行控制。