记一次 SideWinder 组织样本分析
字数 3145 2025-08-06 18:08:01

SideWinder组织WarHawk后门样本分析教学文档

一、样本概况

1.1 样本来源

  • 首次发现于巴基斯坦国家电力监管局(nepra.org.pk)官方网站
  • 攻击方式:将恶意组件与诱饵文档捆绑成ISO文件

1.2 样本组成

文件名 MD5 创建时间 性质
33-Advisory-No-33-2022.pdf.iso 63d6d8213d9cc070b2a3dfd3c5866564 2022/9/26 11:28 恶意ISO
33-ADVISORY-NO-33-2022.LNK 1dd72390f35a9a5e207b61e397bc338e 2021/10/6 13:51 恶意快捷方式
33-ADVISORY-NO-33-2022.PDF 26dd72a5dad80756823d6bf1f95350df 2022/9/6 12:09 诱饵文档
MSBUILD.EXE 5cff6896e0505e8d6d98bff35d10c43a 2022/9/26 06:27 恶意载荷

二、攻击流程分析

2.1 初始感染阶段

  1. 受害者打开ISO中的LNK文件
  2. LNK文件执行两个操作:
    • 打开诱饵PDF文档(33-ADVISORY-NO-33-2022.PDF)
    • 通过CMD执行恶意二进制文件(MSBuild.exe)

2.2 恶意载荷分析(MSBuild.exe/WarHawk后门)

2.2.1 动态加载机制

  1. 获取Kernel32基地址

    • 遍历PEB中的InMemoryOrderModuleList链
  2. API解密方法

    • 从预留字符串解密API和DLL名称
    • 解密算法:每个字节减去0x42
  3. 关键解密函数

    • 首先解密"LoadLibraryA"和"GetProcAddress"
    • 使用这两个函数动态加载其他所需API
  4. 解密出的关键API

    • LoadLibraryA
    • GetProcAddress
    • Advapi32
    • GetCurrentHwProfileA
    • GetComputerNameA
    • GetUserNameA

2.2.2 信息收集与回传

  1. 硬件信息收集

    • 调用GetCurrentHwProfileA获取硬件配置GUID
    • 格式化为JSON:{"_hwid":"{GUID}"}
    • 发送到C2服务器
  2. 条件性信息收集

    • 若C2响应为0,则收集以下信息:
      • GetComputerNameA:计算机/NetBios名称
      • GetUserNameA:当前用户名
      • RegQueryValueExA:检索注册表SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName
  3. 完整信息回传格式

{
  "_hwid": "{GUID}",
  "_computer": "computer_name",
  "_username": "user_name",
  "_os": "windows_products"
}
  1. 心跳检测
    • 发送:{"_hwid":{GUID}, "_ping": "true"}
    • 若响应为"del":
      • 退出程序
      • 发送:{"_hwid": {GUID}, "_del": "true"}

三、WarHawk后门功能模块

3.1 下载执行模块

  1. 初始化请求

    • 发送:{"_hwid": {GUID}, "_task": "true"}
  2. 响应处理

    • 响应格式:包含_id_type_url字段的JSON
    • 根据_type值执行不同操作:
_type值 行为 后续操作
1 下载并执行EXE 1. 使用URLDownloadToFileA下载
2. 随机生成文件名
3. 使用ShellExecuteA执行
4. 回传:{"_hwid": {GUID}, "_task_done": "true", "_id": "id"}
2 下载并加载DLL 1. 下载方式同类型1
2. 使用LoadLibraryA加载
3 下载并执行EXE 同类型1

3.2 命令执行模块

  1. 初始化请求

    • 发送:{"_hwid": {GUID}, "_cmd": "true"}
  2. 命令执行流程

    • 拼接命令格式:/c cmd_command > file.bin
    • 使用ShellExecuteExA执行命令
    • 读取结果文件内容
    • 自定义Base64加密结果
    • 回传格式:
{
  "_hwid": "{GUID}",
  "_cmd_done": "true",
  "_response": "base64_encry_infomation"
}

3.3 文件管理模块

  1. 初始化请求

    • 发送:{"_hwid": {GUID}, "_filemgr": "true"}
  2. 功能分支

    • 驱动器枚举(响应为"drive"):

      • 遍历A-Z驱动器
      • 使用PathFileExistsA检查存在性
      • 使用GetDriveTypeA获取类型
      • 回传格式:包含nametype字段的JSON
    • 目录遍历(响应为路径):

      • 遍历指定路径下所有文件和文件夹
      • 收集文件信息:名称、日期、类型、大小
      • 收集文件夹信息:名称、时间

3.4 文件下载模块

  1. 初始化请求

    • 发送:{"_hwid": {GUID}, "_fileupload": "true"}
  2. 下载流程

    • 从C2下载指定文件
    • 本地文件名由响应中_path字段Base64解码得到
    • 回传状态:
{
  "_hwid": "{GUID}",
  "_uploadstatus": "true/false"
}

四、关联样本分析

4.1 关联样本信息

文件名 MD5 创建时间 性质
Snitch.exe ec33c5e1773b510e323bea8f70dcddb0 2022/9/19 5:18 Cobalt Strike加载器
OneDrive.exe d0acccab52778b77c96346194e38b244 2022/9/19 11:46 Cobalt Strike生成

4.2 关键发现

  1. Snitch.exe特征

    • 包含针对巴基斯坦标准时间设置的反调试机制
    • 证实攻击目标为巴基斯坦
  2. OneDrive.exe特征

    • 使用仿冒域名fia-gov.org(模仿巴基斯坦联邦调查局fia.gov.pk)
    • 通过tria.ge沙箱提取的配置确认

五、归属分析

5.1 归因依据

  1. 基础设施重用

    • 历史上SideWinder组织使用过相同域名(fia-gov.org)
  2. 攻击目标一致性

    • 针对巴基斯坦的定向攻击
    • 使用本地化诱饵文档
  3. TTPs相似性

    • 使用ISO文件作为初始载体
    • 使用LNK文件执行多阶段攻击
    • 使用Cobalt Strike作为后续载荷

六、分析技巧总结

6.1 动态分析注意事项

  1. C2交互特性

    • 服务器可能对请求来源有验证机制
    • 构造合法请求可能需要完整的环境信息
  2. 时效性

    • C2服务器可能很快关闭
    • 建议及时从多个样本池获取关联样本

6.2 关键分析点

  1. 字符串解密

    • 识别并实现解密算法(本例中为每个字节减0x42)
  2. API解析

    • 跟踪动态加载的API调用链
  3. 通信协议分析

    • 记录并分析JSON格式的请求/响应
    • 注意字段含义和条件分支

七、IOC清单

7.1 文件HASH

  • 见"样本组成"和"关联样本信息"表格

7.2 网络IOC

  • C2域名:fia-gov.org(仿冒)
  • WarHawk后门C2面板标题:"WarHawk登陆框"

7.3 其他指标

  • 注册表路径:SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName
  • 临时文件格式:随机生成的.bin文件
SideWinder组织WarHawk后门样本分析教学文档 一、样本概况 1.1 样本来源 首次发现于巴基斯坦国家电力监管局(nepra.org.pk)官方网站 攻击方式:将恶意组件与诱饵文档捆绑成ISO文件 1.2 样本组成 | 文件名 | MD5 | 创建时间 | 性质 | |--------|-----|----------|------| | 33-Advisory-No-33-2022.pdf.iso | 63d6d8213d9cc070b2a3dfd3c5866564 | 2022/9/26 11:28 | 恶意ISO | | 33-ADVISORY-NO-33-2022.LNK | 1dd72390f35a9a5e207b61e397bc338e | 2021/10/6 13:51 | 恶意快捷方式 | | 33-ADVISORY-NO-33-2022.PDF | 26dd72a5dad80756823d6bf1f95350df | 2022/9/6 12:09 | 诱饵文档 | | MSBUILD.EXE | 5cff6896e0505e8d6d98bff35d10c43a | 2022/9/26 06:27 | 恶意载荷 | 二、攻击流程分析 2.1 初始感染阶段 受害者打开ISO中的LNK文件 LNK文件执行两个操作: 打开诱饵PDF文档(33-ADVISORY-NO-33-2022.PDF) 通过CMD执行恶意二进制文件(MSBuild.exe) 2.2 恶意载荷分析(MSBuild.exe/WarHawk后门) 2.2.1 动态加载机制 获取Kernel32基地址 : 遍历PEB中的InMemoryOrderModuleList链 API解密方法 : 从预留字符串解密API和DLL名称 解密算法:每个字节减去0x42 关键解密函数 : 首先解密"LoadLibraryA"和"GetProcAddress" 使用这两个函数动态加载其他所需API 解密出的关键API : LoadLibraryA GetProcAddress Advapi32 GetCurrentHwProfileA GetComputerNameA GetUserNameA 2.2.2 信息收集与回传 硬件信息收集 : 调用GetCurrentHwProfileA获取硬件配置GUID 格式化为JSON: {"_hwid":"{GUID}"} 发送到C2服务器 条件性信息收集 : 若C2响应为0,则收集以下信息: GetComputerNameA:计算机/NetBios名称 GetUserNameA:当前用户名 RegQueryValueExA:检索注册表 SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName 完整信息回传格式 : 心跳检测 : 发送: {"_hwid":{GUID}, "_ping": "true"} 若响应为"del": 退出程序 发送: {"_hwid": {GUID}, "_del": "true"} 三、WarHawk后门功能模块 3.1 下载执行模块 初始化请求 : 发送: {"_hwid": {GUID}, "_task": "true"} 响应处理 : 响应格式:包含 _id 、 _type 、 _url 字段的JSON 根据 _type 值执行不同操作: | _ type值 | 行为 | 后续操作 | |---------|------|----------| | 1 | 下载并执行EXE | 1. 使用URLDownloadToFileA下载 2. 随机生成文件名 3. 使用ShellExecuteA执行 4. 回传: {"_hwid": {GUID}, "_task_done": "true", "_id": "id"} | | 2 | 下载并加载DLL | 1. 下载方式同类型1 2. 使用LoadLibraryA加载 | | 3 | 下载并执行EXE | 同类型1 | 3.2 命令执行模块 初始化请求 : 发送: {"_hwid": {GUID}, "_cmd": "true"} 命令执行流程 : 拼接命令格式: /c cmd_command > file.bin 使用ShellExecuteExA执行命令 读取结果文件内容 自定义Base64加密结果 回传格式: 3.3 文件管理模块 初始化请求 : 发送: {"_hwid": {GUID}, "_filemgr": "true"} 功能分支 : 驱动器枚举 (响应为"drive"): 遍历A-Z驱动器 使用PathFileExistsA检查存在性 使用GetDriveTypeA获取类型 回传格式:包含 name 和 type 字段的JSON 目录遍历 (响应为路径): 遍历指定路径下所有文件和文件夹 收集文件信息:名称、日期、类型、大小 收集文件夹信息:名称、时间 3.4 文件下载模块 初始化请求 : 发送: {"_hwid": {GUID}, "_fileupload": "true"} 下载流程 : 从C2下载指定文件 本地文件名由响应中 _path 字段Base64解码得到 回传状态: 四、关联样本分析 4.1 关联样本信息 | 文件名 | MD5 | 创建时间 | 性质 | |--------|-----|----------|------| | Snitch.exe | ec33c5e1773b510e323bea8f70dcddb0 | 2022/9/19 5:18 | Cobalt Strike加载器 | | OneDrive.exe | d0acccab52778b77c96346194e38b244 | 2022/9/19 11:46 | Cobalt Strike生成 | 4.2 关键发现 Snitch.exe特征 : 包含针对巴基斯坦标准时间设置的反调试机制 证实攻击目标为巴基斯坦 OneDrive.exe特征 : 使用仿冒域名fia-gov.org(模仿巴基斯坦联邦调查局fia.gov.pk) 通过tria.ge沙箱提取的配置确认 五、归属分析 5.1 归因依据 基础设施重用 : 历史上SideWinder组织使用过相同域名(fia-gov.org) 攻击目标一致性 : 针对巴基斯坦的定向攻击 使用本地化诱饵文档 TTPs相似性 : 使用ISO文件作为初始载体 使用LNK文件执行多阶段攻击 使用Cobalt Strike作为后续载荷 六、分析技巧总结 6.1 动态分析注意事项 C2交互特性 : 服务器可能对请求来源有验证机制 构造合法请求可能需要完整的环境信息 时效性 : C2服务器可能很快关闭 建议及时从多个样本池获取关联样本 6.2 关键分析点 字符串解密 : 识别并实现解密算法(本例中为每个字节减0x42) API解析 : 跟踪动态加载的API调用链 通信协议分析 : 记录并分析JSON格式的请求/响应 注意字段含义和条件分支 七、IOC清单 7.1 文件HASH 见"样本组成"和"关联样本信息"表格 7.2 网络IOC C2域名:fia-gov.org(仿冒) WarHawk后门C2面板标题:"WarHawk登陆框" 7.3 其他指标 注册表路径: SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName 临时文件格式:随机生成的.bin文件