利用恶意文档传播安装SSLOAD木马详细分析
字数 1682 2025-08-03 16:43:56

SSLOAD木马通过恶意文档传播的详细分析与防御指南

一、攻击概述

SSLOAD是一种新型的恶意软件加载器(Loader),通过包含恶意宏代码的Word文档进行传播。攻击链如下:

  1. 受害者打开恶意Word文档
  2. 文档关闭时触发恶意宏代码
  3. 宏代码解密并执行JScript.Encode加密的XML内容
  4. 在系统上生成恶意文件并修改注册表
  5. 通过Regsvr32执行恶意代码
  6. 最终下载并安装Cobalt Strike(CS)木马

二、恶意文档分析

1. 恶意宏代码特征

恶意文档包含自动执行的VBA宏代码,主要利用AutoClose()函数在文档关闭时触发:

Sub AutoClose()
    Dim xmlDoc As Object
    Set xmlDoc = CreateObject("MSXML2.DomDocument")
    ' 从UserForm1标签的Caption属性加载XML内容
    xmlDoc.LoadXML(UserForm1.Label1.Caption)
    ' 其他恶意操作...
End Sub

2. JScript.Encode加密内容

宏代码处理的XML内容使用JScript.Encode加密,特征如下:

  • 开头包含特征字符串#@~^
  • 有明显的语言特征标记jscript.encode

三、解密过程分析

1. 第一阶段解密

使用scrdec18工具解密JScript.Encode加密内容后,发现其中包含多层编码:

  1. Unicode编码的字符
  2. UTF-8编码的字符

2. 解密后的关键操作

解密后的脚本执行以下恶意行为:

  1. 文件创建:在指定目录生成app.pln文件
  2. 注册表修改:添加注册表项使.pln文件通过Regsvr32执行
    HKEY_CLASSES_ROOT\.pln\Shell\Open\Command
    
  3. 进程执行:通过Regsvr32执行恶意.pln文件

四、SSLOAD加载器分析

1. 代码混淆技术

恶意DLL的DllRegisterServer函数被高度混淆,主要特点:

  • 使用复杂的控制流
  • 插入大量无用代码
  • 使用多层跳转

2. 解密算法

恶意代码使用异或算法解密payload:

  • 密钥:%^GQMJBDwBdXLAFWu(!Fag2$4FG
  • 解密过程:
    1. 分配内存空间
    2. 逐字节异或解密
    3. 跳转到解密后的代码执行

3. 解密后的payload功能

解密出的恶意payload包含以下功能:

  1. 与远程Telegram服务器通信
  2. 下载SSLoad恶意软件
  3. 加载其他恶意模块

五、网络通信分析

1. C2服务器通信

恶意软件与以下服务器通信:

  • 主C2:通过Telegram API
  • 备用C2:多个IP地址轮询

2. 流量特征

恶意流量特征包括:

  1. 特定User-Agent字符串
  2. 不规则HTTP请求路径
  3. 加密的POST数据
  4. 使用非标准端口通信

3. 下载过程

  1. 从C2服务器获取压缩包
  2. 本地解压执行
  3. 加载Cobalt Strike等后续payload

六、防御建议

1. 预防措施

  1. 宏安全设置

    • 禁用所有Office宏执行
    • 或设置为"仅允许受信任位置的宏"
  2. 文件执行限制

    • 阻止.pln等非常见扩展名的文件执行
    • 限制Regsvr32等工具的使用
  3. 系统加固

    • 启用ASLR和DEP
    • 限制脚本执行权限

2. 检测方法

  1. 行为检测

    • 监控异常进程创建(如Regsvr32执行.pln文件)
    • 检测异常的注册表修改
  2. 网络检测

    • 监控与Telegram API的异常通信
    • 检测非常规HTTP请求模式
  3. 静态检测

    • 检测文档中的JScript.Encode特征
    • 查找已知的异或密钥

3. 应急响应

发现感染后应立即:

  1. 隔离受感染主机
  2. 检查以下位置:
    • 临时目录中的.pln文件
    • 注册表中.pln文件关联
    • 异常的进程树
  3. 收集网络日志分析C2通信
  4. 全盘扫描查找其他恶意组件

七、IOC指标

1. 文件相关

  • 恶意文档MD5: [需补充]
  • app.pln文件路径: %TEMP%<随机名称>.pln

2. 注册表相关

HKEY_CLASSES_ROOT\.pln\Shell\Open\Command

3. 网络相关

  • C2服务器IP: [需补充]
  • Telegram API地址: api.telegram.org

4. 加密相关

  • 异或密钥: %^GQMJBDwBdXLAFWu(!Fag2$4FG

八、总结

SSLOAD木马通过精心设计的攻击链,利用文档宏、多层编码、注册表劫持和进程注入等技术实现隐蔽传播。防御此类攻击需要:

  1. 加强终端防护,特别是Office宏安全
  2. 实施严格的应用程序控制策略
  3. 部署多层次的检测机制
  4. 保持威胁情报更新,及时获取最新IOC
SSLOAD木马通过恶意文档传播的详细分析与防御指南 一、攻击概述 SSLOAD是一种新型的恶意软件加载器(Loader),通过包含恶意宏代码的Word文档进行传播。攻击链如下: 受害者打开恶意Word文档 文档关闭时触发恶意宏代码 宏代码解密并执行JScript.Encode加密的XML内容 在系统上生成恶意文件并修改注册表 通过Regsvr32执行恶意代码 最终下载并安装Cobalt Strike(CS)木马 二、恶意文档分析 1. 恶意宏代码特征 恶意文档包含自动执行的VBA宏代码,主要利用 AutoClose() 函数在文档关闭时触发: 2. JScript.Encode加密内容 宏代码处理的XML内容使用JScript.Encode加密,特征如下: 开头包含特征字符串 #@~^ 有明显的语言特征标记 jscript.encode 三、解密过程分析 1. 第一阶段解密 使用 scrdec18 工具解密JScript.Encode加密内容后,发现其中包含多层编码: Unicode编码的字符 UTF-8编码的字符 2. 解密后的关键操作 解密后的脚本执行以下恶意行为: 文件创建 :在指定目录生成 app.pln 文件 注册表修改 :添加注册表项使.pln文件通过Regsvr32执行 进程执行 :通过Regsvr32执行恶意.pln文件 四、SSLOAD加载器分析 1. 代码混淆技术 恶意DLL的 DllRegisterServer 函数被高度混淆,主要特点: 使用复杂的控制流 插入大量无用代码 使用多层跳转 2. 解密算法 恶意代码使用异或算法解密payload: 密钥: %^GQMJBDwBdXLAFWu(!Fag2$4FG 解密过程: 分配内存空间 逐字节异或解密 跳转到解密后的代码执行 3. 解密后的payload功能 解密出的恶意payload包含以下功能: 与远程Telegram服务器通信 下载SSLoad恶意软件 加载其他恶意模块 五、网络通信分析 1. C2服务器通信 恶意软件与以下服务器通信: 主C2:通过Telegram API 备用C2:多个IP地址轮询 2. 流量特征 恶意流量特征包括: 特定User-Agent字符串 不规则HTTP请求路径 加密的POST数据 使用非标准端口通信 3. 下载过程 从C2服务器获取压缩包 本地解压执行 加载Cobalt Strike等后续payload 六、防御建议 1. 预防措施 宏安全设置 : 禁用所有Office宏执行 或设置为"仅允许受信任位置的宏" 文件执行限制 : 阻止.pln等非常见扩展名的文件执行 限制Regsvr32等工具的使用 系统加固 : 启用ASLR和DEP 限制脚本执行权限 2. 检测方法 行为检测 : 监控异常进程创建(如Regsvr32执行.pln文件) 检测异常的注册表修改 网络检测 : 监控与Telegram API的异常通信 检测非常规HTTP请求模式 静态检测 : 检测文档中的JScript.Encode特征 查找已知的异或密钥 3. 应急响应 发现感染后应立即: 隔离受感染主机 检查以下位置: 临时目录中的.pln文件 注册表中.pln文件关联 异常的进程树 收集网络日志分析C2通信 全盘扫描查找其他恶意组件 七、IOC指标 1. 文件相关 恶意文档MD5: [ 需补充 ] app.pln文件路径: %TEMP%\<随机名称>.pln 2. 注册表相关 3. 网络相关 C2服务器IP: [ 需补充 ] Telegram API地址: api.telegram.org 4. 加密相关 异或密钥: %^GQMJBDwBdXLAFWu(!Fag2$4FG 八、总结 SSLOAD木马通过精心设计的攻击链,利用文档宏、多层编码、注册表劫持和进程注入等技术实现隐蔽传播。防御此类攻击需要: 加强终端防护,特别是Office宏安全 实施严格的应用程序控制策略 部署多层次的检测机制 保持威胁情报更新,及时获取最新IOC