WikiLoader最新攻击样本加载执行过程详细分析
字数 1678 2025-08-03 16:48:51

WikiLoader恶意软件攻击样本分析教学文档


一、恶意软件概述

  1. 基本信息

    • 名称:WikiLoader
    • 首次曝光时间:2022年12月
    • 关联组织:TA544(针对意大利组织的攻击活动)
    • 功能:多层ShellCode下载器,通过修改系统DLL模块加载恶意代码,最终加载Ursnif银行木马。
  2. 攻击链流程

    PDF文档 → 压缩包(JS脚本) → 嵌套JS下载 → ZIP压缩包(Notepad++插件) → 恶意DLL加载 → ShellCode执行
    

二、攻击样本详细分析

1. 初始感染阶段
  • 载体:恶意PDF文档,诱导用户点击下载按钮。
  • 下载文件:解压后得到混淆的JS脚本(script.js)。
  • JS脚本功能
    • 通过WScript.Shell执行命令。
    • 从C2服务器下载下一阶段JS脚本(二次混淆)。
2. 第二阶段JS脚本
  • 去混淆后关键行为
    • 下载ZIP压缩包(伪装为Notepad++安装包)。
    • 压缩包内容:
      • 合法Notepad++程序(掩盖恶意行为)。
      • 恶意插件:plugins/mimeTools.dll(Notepad++默认加载路径)。
3. 恶意DLL加载(mimeTools.dll)
  • 执行流程
    1. 调用VirtualAlloc分配内存。
    2. 读取同目录下certificate.pem文件(实际为加密的ShellCode)。
    3. 加载加密库Crypt32.dllbcrypt.dll,使用AES解密数据(密钥:9rY6YT5dDI9LInMD8Ht2i0wZlS5k2Flg)。
    4. 解密后得到第一阶段ShellCode,设置内存属性为可执行(PAGE_EXECUTE_READWRITE)。
4. ShellCode执行与DLL注入
  • 关键步骤
    1. 动态加载系统DLL:bingmaps.dll(合法模块)。
    2. 修改bingmaps.dll入口点代码,注入恶意ShellCode。
    3. 劫持导出函数GetBingsMapFactory,将其替换为ShellCode跳转指令。
    4. 执行最终Payload(Ursnif恶意软件)。

三、技术亮点与对抗手段

  1. 多阶段加载
    • 通过PDF→JS→ZIP→DLL的链式加载规避静态检测。
  2. DLL劫持与代码注入
    • 利用合法DLL(如bingmaps.dll)的加载机制,修改内存代码实现持久化。
  3. 加密与混淆
    • 使用AES加密ShellCode,密钥硬编码在二进制中。
    • JS脚本多层混淆(如变量名替换、垃圾代码插入)。

四、威胁情报与防御建议

  1. IoC指标

    • 文件:mimeTools.dllcertificate.pem
    • 网络请求:C2域名(需从动态分析中提取)。
    • 密钥:9rY6YT5dDI9LInMD8Ht2i0wZlS5k2Flg(AES解密)。
  2. 检测与防御

    • 行为监控
      • 异常DLL模块修改(如bingmaps.dll的代码段写入)。
      • VirtualAlloc + PAGE_EXECUTE_READWRITE组合告警。
    • 静态分析
      • 检测JS脚本中的WScript.ShellADODB.Stream调用。
    • 网络层
      • 拦截对可疑域名的ZIP/JS下载请求。

五、复现与调试指南

  1. 所需工具

    • 调试器:x64dbg/OllyDbg。
    • 分析工具:IDA Pro、Process Monitor。
    • 样本来源:MalwareBazaar(SHA256需自行获取)。
  2. 调试重点

    • 跟踪mimeTools.dllCryptStringToBinaryA调用,定位解密逻辑。
    • 断点设置在GetBingsMapFactory注入后的跳转指令。

六、总结

WikiLoader通过复杂的加载链和DLL注入技术,实现高隐蔽性攻击。防御需结合行为检测与静态分析,重点关注:

  • 异常DLL加载行为。
  • 内存权限修改(如可执行内存申请)。
  • 多阶段文件下载(PDF→JS→ZIP)。

附录:样本哈希(示例)

  • mimeTools.dll:SHA256: a1b2c3...(需从MalwareBazaar获取实际值)

(注:实际分析中需替换为真实IoC数据,并确保在隔离环境中操作。)

WikiLoader恶意软件攻击样本分析教学文档 一、恶意软件概述 基本信息 名称:WikiLoader 首次曝光时间:2022年12月 关联组织:TA544(针对意大利组织的攻击活动) 功能:多层ShellCode下载器,通过修改系统DLL模块加载恶意代码,最终加载Ursnif银行木马。 攻击链流程 二、攻击样本详细分析 1. 初始感染阶段 载体 :恶意PDF文档,诱导用户点击下载按钮。 下载文件 :解压后得到混淆的JS脚本( script.js )。 JS脚本功能 : 通过 WScript.Shell 执行命令。 从C2服务器下载下一阶段JS脚本(二次混淆)。 2. 第二阶段JS脚本 去混淆后关键行为 : 下载ZIP压缩包(伪装为Notepad++安装包)。 压缩包内容: 合法Notepad++程序(掩盖恶意行为)。 恶意插件: plugins/mimeTools.dll (Notepad++默认加载路径)。 3. 恶意DLL加载(mimeTools.dll) 执行流程 : 调用 VirtualAlloc 分配内存。 读取同目录下 certificate.pem 文件(实际为加密的ShellCode)。 加载加密库 Crypt32.dll 和 bcrypt.dll ,使用AES解密数据(密钥: 9rY6YT5dDI9LInMD8Ht2i0wZlS5k2Flg )。 解密后得到第一阶段ShellCode,设置内存属性为可执行( PAGE_EXECUTE_READWRITE )。 4. ShellCode执行与DLL注入 关键步骤 : 动态加载系统DLL: bingmaps.dll (合法模块)。 修改 bingmaps.dll 入口点代码,注入恶意ShellCode。 劫持导出函数 GetBingsMapFactory ,将其替换为ShellCode跳转指令。 执行最终Payload(Ursnif恶意软件)。 三、技术亮点与对抗手段 多阶段加载 通过PDF→JS→ZIP→DLL的链式加载规避静态检测。 DLL劫持与代码注入 利用合法DLL(如 bingmaps.dll )的加载机制,修改内存代码实现持久化。 加密与混淆 使用AES加密ShellCode,密钥硬编码在二进制中。 JS脚本多层混淆(如变量名替换、垃圾代码插入)。 四、威胁情报与防御建议 IoC指标 文件: mimeTools.dll 、 certificate.pem 。 网络请求:C2域名(需从动态分析中提取)。 密钥: 9rY6YT5dDI9LInMD8Ht2i0wZlS5k2Flg (AES解密)。 检测与防御 行为监控 : 异常DLL模块修改(如 bingmaps.dll 的代码段写入)。 VirtualAlloc + PAGE_EXECUTE_READWRITE 组合告警。 静态分析 : 检测JS脚本中的 WScript.Shell 和 ADODB.Stream 调用。 网络层 : 拦截对可疑域名的ZIP/JS下载请求。 五、复现与调试指南 所需工具 调试器:x64dbg/OllyDbg。 分析工具:IDA Pro、Process Monitor。 样本来源:MalwareBazaar(SHA256需自行获取)。 调试重点 跟踪 mimeTools.dll 的 CryptStringToBinaryA 调用,定位解密逻辑。 断点设置在 GetBingsMapFactory 注入后的跳转指令。 六、总结 WikiLoader通过复杂的加载链和DLL注入技术,实现高隐蔽性攻击。防御需结合行为检测与静态分析,重点关注: 异常DLL加载行为。 内存权限修改(如可执行内存申请)。 多阶段文件下载(PDF→JS→ZIP)。 附录 :样本哈希(示例) mimeTools.dll :SHA256: a1b2c3... (需从MalwareBazaar获取实际值) (注:实际分析中需替换为真实IoC数据,并确保在隔离环境中操作。)