观赏某大佬分析病毒后的一次复现分析
字数 1903 2025-08-24 10:10:13

恶意软件分析复现教程:伪装成ESET升级程序的恶意样本

一、样本基本信息

  • 样本哈希: ae986dd436082fb9a7fec397c8b6e717
  • 伪装对象: ESET升级程序
  • 分析平台: app.any.run (任务链接)
  • 所属家族: KimSuky家族(基于代码中使用的动物名称如tiger、wolf等特征)

二、行为分析

1. 主要恶意行为

  • 文件操作:

    • C:\Users\用户\AppData\Roaming\目录下进行自拷贝
    • 将自身复制到启动目录实现持久化
  • 注册表操作:

    • 修改注册表SOFTWARE\Microsoft\Windows\CurrentVersion\Run添加eset_update值实现自启动
    • 修改SOFTWARE\Microsoft\Windows\CurrentVersion\Screensavers\ScreenRibbonsDomain改变屏保属性
  • 网络通信:

    • 与恶意域名general-second.org-help.com交互
    • 特定请求URL: dl_ex1.png?m=701CE78EC02D&NOTE=Ni4xIDogOS45fDV8djEuMAo=
  • 信息收集:

    • 获取网卡配置和IP信息
    • 获取磁盘序列号
    • 获取系统版本和位数信息

2. 行为分析工具推荐

  • 火绒剑
  • Systracer
  • Procmon
  • Sysmon

三、静态分析

1. PE结构分析

  • 加壳情况: 未加壳
  • 加密算法:
    • Base64
    • CRC32

2. IDA逆向分析

主要函数分析

  1. WinMain函数流程:

    CreateMutexA → GetLastError → CloseHandle → sub_4011E0 → sub_403600 → sub_401580 → sub_401770 → sub_402790 → CreateThread
    
  2. 关键函数解析:

    • sub_4011E0: DLL加载和字符串解密

      • 使用解密函数sub_401040(简单减5解密)
      • 加载的DLL:
        • WININET.dll
        • urlmon.dll
        • kernel32.dll
      • 获取的API函数:
        InternetOpenA, InternetCloseHandle, InternetConnectA, HttpOpenRequestA
        HttpSendRequestA, URLDownloadToFileA, DeleteUrlCacheEntryA, WinExec
        CreateToolhelp32Snapshot, InternetReadFile, InternetQueryDataAvailable
        
    • sub_403600: 文件自拷贝和自启动设置

      • 使用SHGetFolderPathA获取启动目录
      • 使用GetModuleFileNameA获取当前路径
      • 使用CopyFile进行自拷贝
      • 修改注册表实现自启动
    • sub_401580: 系统信息收集

      • GetAdaptersInfo: 获取网卡信息
      • GetVolumeInformationA: 获取磁盘序列号
      • GetTickCount: 生成随机数
    • sub_401770: 系统版本检测

      • GetVersion: 获取系统版本
      • GetNativeSystemInfo: 获取系统位数信息
    • sub_402790: 注册表修改

      • 解密并拼接注册表键名
      • 将恶意URL写入注册表
    • CreateThread: 创建网络请求线程

      • 设置请求头:
        Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 
        (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36,gzip(gfe),gzip(gfe)
        
  3. StartAddress函数分析:

    • 加载rundll32.exe
    • 操作临时目录文件(C:\Users\用户\AppData\Local\Temp\)
    • 添加动物后缀到文件名
    • 根据后缀执行不同命令(如tiger后缀执行特定命令)

四、动态分析技巧

  1. 关键断点设置:

    • API调用点: CreateMutexA, CopyFile, RegSetValueExA等
    • 字符串解密函数sub_401040
  2. 内存监控重点:

    • 解密后的字符串
    • 临时文件创建
    • 网络请求内容
  3. 调试工具推荐:

    • x64dbg
    • OllyDbg

五、样本行为总结

  1. 持久化机制:

    • 自拷贝到启动目录
    • 注册表自启动项添加
  2. 信息收集:

    • 系统信息
    • 网络配置
    • 磁盘信息
  3. 网络通信:

    • 与C2服务器通信
    • 下载额外恶意组件
  4. 代码特征:

    • 使用动物名称作为标识符
    • 简单的减5解密算法
    • 多阶段加载机制

六、分析心得

  1. 动静态结合:

    • 静态分析确定关键函数
    • 动态验证实际行为
  2. 调试技巧:

    • 注意API调用序列
    • 监控内存和注册表变化
  3. 难点:

    • 字符串解密需要动态调试确认
    • 多线程行为跟踪

七、IoC指标

  • 文件哈希: ae986dd436082fb9a7fec397c8b6e717
  • 恶意域名: general-second.org-help.com
  • 注册表键:
    • SOFTWARE\Microsoft\Windows\CurrentVersion\Run\eset_update
    • SOFTWARE\Microsoft\Windows\CurrentVersion\Screensavers\ScreenRibbonsDomain
  • URL模式: dl_ex1.png?m=参数&NOTE=参数

八、参考资源

  1. 安全客相关分析文章
  2. CSDN相关技术文章
  3. 奇安信威胁情报平台
恶意软件分析复现教程:伪装成ESET升级程序的恶意样本 一、样本基本信息 样本哈希 : ae986dd436082fb9a7fec397c8b6e717 伪装对象 : ESET升级程序 分析平台 : app.any.run ( 任务链接 ) 所属家族 : KimSuky家族(基于代码中使用的动物名称如tiger、wolf等特征) 二、行为分析 1. 主要恶意行为 文件操作 : 在 C:\Users\用户\AppData\Roaming\ 目录下进行自拷贝 将自身复制到启动目录实现持久化 注册表操作 : 修改注册表 SOFTWARE\Microsoft\Windows\CurrentVersion\Run 添加eset_ update值实现自启动 修改 SOFTWARE\Microsoft\Windows\CurrentVersion\Screensavers\ScreenRibbonsDomain 改变屏保属性 网络通信 : 与恶意域名 general-second.org-help.com 交互 特定请求URL: dl_ex1.png?m=701CE78EC02D&NOTE=Ni4xIDogOS45fDV8djEuMAo= 信息收集 : 获取网卡配置和IP信息 获取磁盘序列号 获取系统版本和位数信息 2. 行为分析工具推荐 火绒剑 Systracer Procmon Sysmon 三、静态分析 1. PE结构分析 加壳情况 : 未加壳 加密算法 : Base64 CRC32 2. IDA逆向分析 主要函数分析 WinMain函数流程 : 关键函数解析 : sub_ 4011E0 : DLL加载和字符串解密 使用解密函数sub_ 401040(简单减5解密) 加载的DLL: WININET.dll urlmon.dll kernel32.dll 获取的API函数: sub_ 403600 : 文件自拷贝和自启动设置 使用SHGetFolderPathA获取启动目录 使用GetModuleFileNameA获取当前路径 使用CopyFile进行自拷贝 修改注册表实现自启动 sub_ 401580 : 系统信息收集 GetAdaptersInfo: 获取网卡信息 GetVolumeInformationA: 获取磁盘序列号 GetTickCount: 生成随机数 sub_ 401770 : 系统版本检测 GetVersion: 获取系统版本 GetNativeSystemInfo: 获取系统位数信息 sub_ 402790 : 注册表修改 解密并拼接注册表键名 将恶意URL写入注册表 CreateThread : 创建网络请求线程 设置请求头: StartAddress函数分析 : 加载rundll32.exe 操作临时目录文件( C:\Users\用户\AppData\Local\Temp\ ) 添加动物后缀到文件名 根据后缀执行不同命令(如tiger后缀执行特定命令) 四、动态分析技巧 关键断点设置 : API调用点: CreateMutexA, CopyFile, RegSetValueExA等 字符串解密函数sub_ 401040 内存监控重点 : 解密后的字符串 临时文件创建 网络请求内容 调试工具推荐 : x64dbg OllyDbg 五、样本行为总结 持久化机制 : 自拷贝到启动目录 注册表自启动项添加 信息收集 : 系统信息 网络配置 磁盘信息 网络通信 : 与C2服务器通信 下载额外恶意组件 代码特征 : 使用动物名称作为标识符 简单的减5解密算法 多阶段加载机制 六、分析心得 动静态结合 : 静态分析确定关键函数 动态验证实际行为 调试技巧 : 注意API调用序列 监控内存和注册表变化 难点 : 字符串解密需要动态调试确认 多线程行为跟踪 七、IoC指标 文件哈希 : ae986dd436082fb9a7fec397c8b6e717 恶意域名 : general-second.org-help.com 注册表键 : SOFTWARE\Microsoft\Windows\CurrentVersion\Run\eset_ update SOFTWARE\Microsoft\Windows\CurrentVersion\Screensavers\ScreenRibbonsDomain URL模式 : dl_ex1.png?m=参数&NOTE=参数 八、参考资源 安全客相关分析文章 CSDN相关技术文章 奇安信威胁情报平台