Amadey僵尸网络恶意样本详细分析
字数 1727 2025-08-19 12:40:45

Amadey僵尸网络恶意样本详细分析教学文档

1. 概述

Amadey是一种常见的恶意软件,主要功能包括:

  • 信息窃取(Stealer):从被感染系统窃取敏感信息
  • 僵尸网络(Botnet):连接受害者系统到僵尸网络,接受攻击者远程控制
  • 后续攻击能力:安装其他恶意软件、发送垃圾邮件、发起DDoS攻击等

2. 样本基本信息

2.1 IOC (Indicator of Compromise)

Hash类型
SHA256 449d9e29d49dea9697c9a84bb7cc68b50343014d9e14667875a83cade9adbc60
MD5 26b31e11da1e9fb60b64b91414884eb9
SHA1 0358b52196af9125be76f335a57f2905f400999d

2.2 文件分析

初始文件:

  • 本质是一个ZIP压缩包,解压后得到si684017.exe
  • 32位可执行文件
  • 信息熵分析显示高而平坦的曲线,表明文件已加壳

3. 脱壳过程

3.1 使用x32dbg脱壳

  1. 使用x32dbg载入恶意程序
  2. 设置断点:bp VirtualAlloc(该函数用于分配内存)
  3. F9运行程序,断在VirtualAlloc处
  4. Ctrl+F9执行到函数结束,观察eax寄存器(包含分配内存的基地址)
  5. 跳转到该内存地址
  6. 创建硬件断点
  7. F9运行,Ctrl+F9执行到结束,观察内存填充情况
  8. 如果内存起始不是PE文件标识(如EB开头),则不是有效负载,删除硬件断点继续
  9. 重复上述步骤直到找到有效负载

3.2 Dump内存

  1. 右键内存基地址,查看内存布局
  2. 找到对应模块,右键选择"dump到文件"
  3. 重命名为dump.bin

3.3 脱壳后分析

  • 32位程序
  • 信息熵分析显示无隐藏有效负载
  • 导入表中发现wininet.dll,表明有C2服务器操作
  • 字符串中发现大量疑似Base64编码的字符串(实际可能经过额外混淆)

4. 静态与动态分析结合

4.1 Ghidra与x32dbg同步

  1. 在x32dbg中找到文件基址(如005B0000)
  2. 在Ghidra内存映射中设置相同基址

4.2 定位关键函数

  1. 在Ghidra中搜索字符串
  2. 双击跳转到地址处
  3. 右键选择"Reference -> Show References to Address"
  4. 对未定义的函数按F键定义函数(如FUN_005c4550)

4.3 动态调试解码函数

  1. 在x32dbg中对疑似解码函数下断点(如bp 005c4550)
  2. F9运行程序
  3. 命中字符串后,Ctrl+F9执行到返回
  4. 多次尝试后发现该函数只是Base64混淆的一部分

5. 反调试技术分析

5.1 反调试机制

  1. 入口点存在解码函数
  2. 函数FUN_005b7b70使用CreateMutexA创建互斥锁
  3. 检查错误码0xb7,不符合则退出程序
  4. 检查路径下是否存在oneetx.exe文件

5.2 绕过反调试

  1. 运行恶意软件让其生成副本oneetx.exe
  2. 重新同步地址(基址可能变化)
  3. 在x32dbg中对FUN_005b7b70下断点(bp 005b7b70)
  4. 单步执行(F8)并patch掉反调试检查

6. 恶意行为分析

6.1 持久化机制

  • 创建计划任务实现持久化

6.2 数据窃取

  • 查询和修改注册表
  • 尝试窃取计算机上的敏感数据

6.3 安全检测

  • 检查系统中安装的安全厂商软件

7. C2服务器信息

通过分析最终找到C2域名(报告中未显示具体域名)

8. 分析技巧总结

  1. 脱壳技巧:

    • 关注VirtualAlloc等内存分配函数
    • 通过硬件断点跟踪内存填充
    • 确保内存完全填充后再dump
  2. 反调试绕过:

    • 识别互斥锁检查
    • 允许程序生成必要文件
    • 动态patch关键检查点
  3. 解码分析:

    • 结合静态和动态分析
    • 通过交叉引用定位关键函数
    • 多次尝试不同断点
  4. 行为分析:

    • 关注持久化机制(计划任务等)
    • 监控注册表和文件操作
    • 识别数据收集行为

9. 后续分析方向

  1. 详细分析具体的恶意行为实现
  2. 深入分析C2通信协议
  3. 研究样本更新机制
  4. 分析与其他恶意软件的关联性
Amadey僵尸网络恶意样本详细分析教学文档 1. 概述 Amadey是一种常见的恶意软件,主要功能包括: 信息窃取(Stealer):从被感染系统窃取敏感信息 僵尸网络(Botnet):连接受害者系统到僵尸网络,接受攻击者远程控制 后续攻击能力:安装其他恶意软件、发送垃圾邮件、发起DDoS攻击等 2. 样本基本信息 2.1 IOC (Indicator of Compromise) | Hash类型 | 值 | |---------|---| | SHA256 | 449d9e29d49dea9697c9a84bb7cc68b50343014d9e14667875a83cade9adbc60 | | MD5 | 26b31e11da1e9fb60b64b91414884eb9 | | SHA1 | 0358b52196af9125be76f335a57f2905f400999d | 2.2 文件分析 初始文件: 本质是一个ZIP压缩包,解压后得到 si684017.exe 32位可执行文件 信息熵分析显示高而平坦的曲线,表明文件已加壳 3. 脱壳过程 3.1 使用x32dbg脱壳 使用x32dbg载入恶意程序 设置断点: bp VirtualAlloc (该函数用于分配内存) F9运行程序,断在VirtualAlloc处 Ctrl+F9执行到函数结束,观察eax寄存器(包含分配内存的基地址) 跳转到该内存地址 创建硬件断点 F9运行,Ctrl+F9执行到结束,观察内存填充情况 如果内存起始不是PE文件标识(如EB开头),则不是有效负载,删除硬件断点继续 重复上述步骤直到找到有效负载 3.2 Dump内存 右键内存基地址,查看内存布局 找到对应模块,右键选择"dump到文件" 重命名为dump.bin 3.3 脱壳后分析 32位程序 信息熵分析显示无隐藏有效负载 导入表中发现wininet.dll,表明有C2服务器操作 字符串中发现大量疑似Base64编码的字符串(实际可能经过额外混淆) 4. 静态与动态分析结合 4.1 Ghidra与x32dbg同步 在x32dbg中找到文件基址(如005B0000) 在Ghidra内存映射中设置相同基址 4.2 定位关键函数 在Ghidra中搜索字符串 双击跳转到地址处 右键选择"Reference -> Show References to Address" 对未定义的函数按F键定义函数(如FUN_ 005c4550) 4.3 动态调试解码函数 在x32dbg中对疑似解码函数下断点(如bp 005c4550) F9运行程序 命中字符串后,Ctrl+F9执行到返回 多次尝试后发现该函数只是Base64混淆的一部分 5. 反调试技术分析 5.1 反调试机制 入口点存在解码函数 函数FUN_ 005b7b70使用CreateMutexA创建互斥锁 检查错误码0xb7,不符合则退出程序 检查路径下是否存在oneetx.exe文件 5.2 绕过反调试 运行恶意软件让其生成副本oneetx.exe 重新同步地址(基址可能变化) 在x32dbg中对FUN_ 005b7b70下断点(bp 005b7b70) 单步执行(F8)并patch掉反调试检查 6. 恶意行为分析 6.1 持久化机制 创建计划任务实现持久化 6.2 数据窃取 查询和修改注册表 尝试窃取计算机上的敏感数据 6.3 安全检测 检查系统中安装的安全厂商软件 7. C2服务器信息 通过分析最终找到C2域名(报告中未显示具体域名) 8. 分析技巧总结 脱壳技巧: 关注VirtualAlloc等内存分配函数 通过硬件断点跟踪内存填充 确保内存完全填充后再dump 反调试绕过: 识别互斥锁检查 允许程序生成必要文件 动态patch关键检查点 解码分析: 结合静态和动态分析 通过交叉引用定位关键函数 多次尝试不同断点 行为分析: 关注持久化机制(计划任务等) 监控注册表和文件操作 识别数据收集行为 9. 后续分析方向 详细分析具体的恶意行为实现 深入分析C2通信协议 研究样本更新机制 分析与其他恶意软件的关联性