记一次(反虚拟+反监测+域名前置)钓鱼样本分析及思考
字数 2031 2025-08-19 12:40:57

高级钓鱼样本分析技术文档:反虚拟化、反监测与域前置对抗

0x01 样本基本信息

  • 文件名:汪涵-上海交大硕士-应聘系统安全岗20240722转换pdf.exe
  • MD5:aeae584563bb8bf0961bd99aaeb41cf0
  • 伪装方式:EXE伪装为PDF文件,添加PDF图标资源

0x02 样本行为分析

一、基础行为特征

  1. 快速退出行为:进程启动后1秒内自动退出
  2. 可疑操作
    • 读取桌面文件目录
    • 读取特殊注册表键值(与虚拟机检测相关)

二、反虚拟化技术分析

  1. 注册表检测

    • HKEY_CLASSES_ROOT\Applications\VMwareHostOpen.exe - 检测VMware环境
    • HKLM\SOFTWARE\Oracle\VirtualBox Guest Additions - 检测VirtualBox环境
  2. 文件系统检测

    • 通过SHGetFolderPathW获取桌面路径(CSIDL 0x11),检查文件数量是否>10
    • 通过SHGetKnownFolderPath获取"最近使用"文件夹路径,检查文件数量是否>10
  3. 软件环境检测

    • 检查注册表HKCU\Software\Tencent\bugreport\WechatWindows判断微信安装情况
  4. 反制措施

    • 检测到虚拟机环境时弹窗显示"错误"并退出

三、反监测技术

  1. NTDLL重置技术

    • 通过K32GetModuleInformation获取ntdll基址
    • 定位.text节区
    • 从文件系统加载原始ntdll.dll覆盖内存中的.text节
    • 目的:解除杀软的inline hook
  2. API动态获取

    • 通过PEB遍历获取模块基址
    • 手动解析PE结构获取API地址
    • 使用非常规API替代常见API(如用RtlCopyMemory代替memcpy

0x03 加载机制分析

一、资源提取与解密

  1. 资源结构

    • 前0x90字节:配置信息(包含反虚拟化检测逻辑)
    • 0xB0偏移开始:核心payload
  2. 双层解密机制

    • 第一层:疑似AES解密(使用128位分组)
    • 第二层:异或解密
      • 密钥生成:网络适配器GUID首字符{ + 0x313131 = 0x3131AC作为随机种子
      • 使用伪随机数作为异或密钥

二、执行机制

  1. 纤程(Fiber)加载
    • 使用纤程机制执行解密后的shellcode
    • 创建互斥量防止多实例运行(命名风格类似GUID但第三部分占6位)

0x04 C2通信分析

  1. 域名前置技术

    • 前置域名:static.aliyuncs.com.dsa.dnsv1.com
    • 真实域名:static.aliyuncs.com
    • 端口:443
  2. 通信特征

    • HTTP GET请求:/link/Members/C90RDRN279YK.js
    • 请求头特征:
      • Host头设置为static.aliyuncs.com
      • 特殊Cookie格式:SESSIONID_P9041TWNDWNT53JA4LTXGEJNZNE3=...
      • 特定Accept-Language:pt-br

0x05 威胁狩猎特征提取

一、静态特征

  1. 反虚拟化检测

    • 注册表检测路径
    • 文件数量阈值检测(桌面和最近文件夹>10个文件)
  2. 代码特征

    • NTDLL重置代码模式
    • 特定随机种子生成算法(GUID首字符+0x313131)
    • 互斥量命名风格(类GUID但第三部分6位)

二、动态特征

  1. 网络行为

    • 域名前置模式
    • 特定URL路径模式
    • 特殊Cookie字段
  2. 进程行为

    • 快速退出模式
    • 纤程使用模式
    • WinInet通信模块

0x06 对抗技术思考

一、攻击者视角

  1. 技术选择原则

    • 避免"吕布骑狗"效应 - 技术组合要协调,避免良莠不齐
    • 每个对抗技术应有明确目的和足够强度
    • 减少不必要操作,避免增加暴露风险
  2. 有效对抗手段

    • 使用冷门API替代常见API
    • 多环境检测手段组合
    • 多层加密与动态密钥生成

二、防御者视角

  1. 分析方法

    • 关注"短板效应" - 寻找最薄弱的对抗环节
    • 动态调试与静态分析结合
    • 关注非常规API使用
  2. 狩猎策略

    • 提取攻击者特有技术组合特征
    • 关注shellcode特有实现方式
    • 建立行为模式库而非单一特征库

0x07 分析技巧总结

  1. 快速定位关键点

    • 通过火绒剑/Procmon快速定位可疑行为
    • 关注注册表、文件系统和网络操作
  2. 调试技巧

    • 基址对齐(IDA与调试器)
    • 关键函数断点设置(如反虚拟化函数)
    • 跳过反调试代码(如修改EIP跳过检测)
  3. 网络行为捕获

    • WinInet关键函数断点(InternetConnect、HttpOpenRequest等)
    • 全流量捕获分析

附录:参考资源

  1. 样本对抗-反虚拟机技术
  2. 域前置技术分析文档
  3. Windows SDK KnownFolders.h
  4. Microsoft文档:SHGetKnownFolderPath函数
高级钓鱼样本分析技术文档:反虚拟化、反监测与域前置对抗 0x01 样本基本信息 文件名 :汪涵-上海交大硕士-应聘系统安全岗20240722转换pdf.exe MD5 :aeae584563bb8bf0961bd99aaeb41cf0 伪装方式 :EXE伪装为PDF文件,添加PDF图标资源 0x02 样本行为分析 一、基础行为特征 快速退出行为 :进程启动后1秒内自动退出 可疑操作 : 读取桌面文件目录 读取特殊注册表键值(与虚拟机检测相关) 二、反虚拟化技术分析 注册表检测 : HKEY_CLASSES_ROOT\Applications\VMwareHostOpen.exe - 检测VMware环境 HKLM\SOFTWARE\Oracle\VirtualBox Guest Additions - 检测VirtualBox环境 文件系统检测 : 通过 SHGetFolderPathW 获取桌面路径(CSIDL 0x11),检查文件数量是否>10 通过 SHGetKnownFolderPath 获取"最近使用"文件夹路径,检查文件数量是否>10 软件环境检测 : 检查注册表 HKCU\Software\Tencent\bugreport\WechatWindows 判断微信安装情况 反制措施 : 检测到虚拟机环境时弹窗显示"错误"并退出 三、反监测技术 NTDLL重置技术 : 通过 K32GetModuleInformation 获取ntdll基址 定位.text节区 从文件系统加载原始ntdll.dll覆盖内存中的.text节 目的 :解除杀软的inline hook API动态获取 : 通过PEB遍历获取模块基址 手动解析PE结构获取API地址 使用非常规API替代常见API(如用 RtlCopyMemory 代替 memcpy ) 0x03 加载机制分析 一、资源提取与解密 资源结构 : 前0x90字节:配置信息(包含反虚拟化检测逻辑) 0xB0偏移开始:核心payload 双层解密机制 : 第一层 :疑似AES解密(使用128位分组) 第二层 :异或解密 密钥生成:网络适配器GUID首字符 { + 0x313131 = 0x3131AC作为随机种子 使用伪随机数作为异或密钥 二、执行机制 纤程(Fiber)加载 : 使用纤程机制执行解密后的shellcode 创建互斥量防止多实例运行(命名风格类似GUID但第三部分占6位) 0x04 C2通信分析 域名前置技术 : 前置域名 :static.aliyuncs.com.dsa.dnsv1.com 真实域名 :static.aliyuncs.com 端口 :443 通信特征 : HTTP GET请求:/link/Members/C90RDRN279YK.js 请求头特征: Host头设置为static.aliyuncs.com 特殊Cookie格式:SESSIONID_ P9041TWNDWNT53JA4LTXGEJNZNE3=... 特定Accept-Language:pt-br 0x05 威胁狩猎特征提取 一、静态特征 反虚拟化检测 : 注册表检测路径 文件数量阈值检测(桌面和最近文件夹>10个文件) 代码特征 : NTDLL重置代码模式 特定随机种子生成算法(GUID首字符+0x313131) 互斥量命名风格(类GUID但第三部分6位) 二、动态特征 网络行为 : 域名前置模式 特定URL路径模式 特殊Cookie字段 进程行为 : 快速退出模式 纤程使用模式 WinInet通信模块 0x06 对抗技术思考 一、攻击者视角 技术选择原则 : 避免"吕布骑狗"效应 - 技术组合要协调,避免良莠不齐 每个对抗技术应有明确目的和足够强度 减少不必要操作,避免增加暴露风险 有效对抗手段 : 使用冷门API替代常见API 多环境检测手段组合 多层加密与动态密钥生成 二、防御者视角 分析方法 : 关注"短板效应" - 寻找最薄弱的对抗环节 动态调试与静态分析结合 关注非常规API使用 狩猎策略 : 提取攻击者特有技术组合特征 关注shellcode特有实现方式 建立行为模式库而非单一特征库 0x07 分析技巧总结 快速定位关键点 : 通过火绒剑/Procmon快速定位可疑行为 关注注册表、文件系统和网络操作 调试技巧 : 基址对齐(IDA与调试器) 关键函数断点设置(如反虚拟化函数) 跳过反调试代码(如修改EIP跳过检测) 网络行为捕获 : WinInet关键函数断点(InternetConnect、HttpOpenRequest等) 全流量捕获分析 附录:参考资源 样本对抗-反虚拟机技术 域前置技术分析文档 Windows SDK KnownFolders.h Microsoft文档:SHGetKnownFolderPath函数