windows样本分析之基础静态分析-三
字数 1632 2025-08-25 22:59:09

Windows样本分析之基础静态分析

一、分析目标

  1. 样本鉴定黑白:确定样本是恶意软件还是正常文件
  2. 样本行为粗略判断:初步了解样本可能的行为
  3. 相关信息收集:收集样本的基本信息和特征

二、分析原理

1. 鉴定黑白的方法

(1) 特征码检测(检测已知病毒)

  • 杀毒软件将分析过的病毒中的特征部分提取成相应特征码
  • 特征码类型包括:
    • 文件特征
    • 字符特征
    • 指令特征等

(2) 启发检测(检测未知病毒)

  • 检测病毒运行过程中的API调用行为链

2. 相关信息收集内容

  • 编译时间:判断样本的出现时间
  • 文件类型:命令行程序、GUI程序或其他类型
  • 网络行为:是否有网络连接行为
  • 关联文件:是否有其他关联文件
  • 壳情况:是否加壳,加什么壳

3. 初步行为判断依据

  • 特征API:不同种类的病毒样本根据其特性总会调用一些特定的API函数

三、分析算法流程

使用常用逆向工具实现上述原理的检测:

1. 鉴黑白流程

(1) 文件特征检测

  • 使用VirusTotal检测(通过SHA-1搜索)
    • 查看已有厂商的黑白判断结果
  • 使用文件SHA-1/MD5进行Google扫描
    • 查看是否有相关检测报告

(2) 字符特征检测

  • 使用strings/pestdio工具打印字符串
  • 根据特征字符串进行Google搜索:
    • IP地址
    • 敏感词句
    • API符号等

(3) 加壳/混淆判断

  • 使用PEID/DIE工具查看文件是否加壳
  • 使用strings判断:
    • 如果字符串数量稀少
    • 存在LoadLibrary等少量API符号
  • 运行时链接检测:
    • 恶意样本通常采用LoadLibrary来运行时链接

2. 信息收集流程

  • 使用PEStudio查看:
    • 文件头的时间戳
    • 文件头的文件类型
  • 使用DIE/PEID查看:
    • 壳情况
    • 字符串表和API的一些特征

3. 样本初步行为判断

  • 使用pestdio查看:
    • 导入表的API调用
    • 字符串信息

四、实践案例分析(Lab01-02.exe)

1. 鉴黑白结果

  • VirusTotal检出率:46/68
  • 确定为病毒
  • 根据检测结果可能是下载者类型恶意软件

2. 信息收集结果

(1) 时间戳

  • 老样本

(2) 文件类型

  • 32位命令行型可执行文件

(3) 壳信息

  • 导入函数很少
  • 存在LoadLibrary函数
  • 有主机感染类函数和网络感染函数
  • 字符串中出现"UPX"字样
  • UPX壳通常有自己独特的段
  • 结论:样本使用了UPX加壳

(4) 脱壳处理

  • 使用网上UPX脱壳器直接脱壳
  • 得到原始EXE文件后进行分析

3. 样本初步行为判断

(1) 主机行为

  • 有创建服务的API
  • 字符串中有敏感字段"MalService"
    • 可能是服务名称
    • 目的可能是实现长期驻留

(2) 网络行为

  • 明显的网络访问请求
  • 字符串信息显示可能访问:
    • http://www.malwareanalysisbook.com

五、分析流程总结

  1. 鉴定黑白:首先确定样本性质
  2. 如果是黑样本
    • 先进行信息收集
    • 根据信息对样本形成大致概念
    • 进行简单分析前的准备(如脱壳)
    • 开始简单行为分析

六、关键工具列表

  1. 特征检测工具

    • VirusTotal
    • Google搜索(使用哈希值)
  2. 字符串分析工具

    • strings
    • pestdio
  3. 加壳检测工具

    • PEID
    • DIE(Detect It Easy)
  4. PE文件分析工具

    • PEStudio
  5. 脱壳工具

    • UPX官方脱壳工具(针对UPX壳)

七、注意事项

  1. 加壳样本的特征:

    • 导入函数数量少
    • 存在LoadLibrary等动态加载函数
    • 字符串数量稀少
    • 可能有明显的壳标识字符串
  2. 常见恶意行为API:

    • 创建服务:CreateService
    • 网络访问:InternetOpen, InternetOpenUrl等
    • 文件操作:CreateFile, WriteFile等
    • 进程操作:CreateProcess等
  3. 分析流程可根据实际情况调整,但基本逻辑应保持:

    • 先鉴定后分析
    • 先静态后动态
    • 由浅入深逐步分析
Windows样本分析之基础静态分析 一、分析目标 样本鉴定黑白 :确定样本是恶意软件还是正常文件 样本行为粗略判断 :初步了解样本可能的行为 相关信息收集 :收集样本的基本信息和特征 二、分析原理 1. 鉴定黑白的方法 (1) 特征码检测(检测已知病毒) 杀毒软件将分析过的病毒中的特征部分提取成相应特征码 特征码类型包括: 文件特征 字符特征 指令特征等 (2) 启发检测(检测未知病毒) 检测病毒运行过程中的API调用行为链 2. 相关信息收集内容 编译时间 :判断样本的出现时间 文件类型 :命令行程序、GUI程序或其他类型 网络行为 :是否有网络连接行为 关联文件 :是否有其他关联文件 壳情况 :是否加壳,加什么壳 3. 初步行为判断依据 特征API :不同种类的病毒样本根据其特性总会调用一些特定的API函数 三、分析算法流程 使用常用逆向工具实现上述原理的检测: 1. 鉴黑白流程 (1) 文件特征检测 使用VirusTotal检测(通过SHA-1搜索) 查看已有厂商的黑白判断结果 使用文件SHA-1/MD5进行Google扫描 查看是否有相关检测报告 (2) 字符特征检测 使用strings/pestdio工具打印字符串 根据特征字符串进行Google搜索: IP地址 敏感词句 API符号等 (3) 加壳/混淆判断 使用PEID/DIE工具查看文件是否加壳 使用strings判断: 如果字符串数量稀少 存在LoadLibrary等少量API符号 运行时链接检测: 恶意样本通常采用LoadLibrary来运行时链接 2. 信息收集流程 使用PEStudio查看: 文件头的时间戳 文件头的文件类型 使用DIE/PEID查看: 壳情况 字符串表和API的一些特征 3. 样本初步行为判断 使用pestdio查看: 导入表的API调用 字符串信息 四、实践案例分析(Lab01-02.exe) 1. 鉴黑白结果 VirusTotal检出率:46/68 确定为病毒 根据检测结果可能是下载者类型恶意软件 2. 信息收集结果 (1) 时间戳 老样本 (2) 文件类型 32位命令行型可执行文件 (3) 壳信息 导入函数很少 存在LoadLibrary函数 有主机感染类函数和网络感染函数 字符串中出现"UPX"字样 UPX壳通常有自己独特的段 结论 :样本使用了UPX加壳 (4) 脱壳处理 使用网上UPX脱壳器直接脱壳 得到原始EXE文件后进行分析 3. 样本初步行为判断 (1) 主机行为 有创建服务的API 字符串中有敏感字段"MalService" 可能是服务名称 目的可能是实现长期驻留 (2) 网络行为 明显的网络访问请求 字符串信息显示可能访问: http://www.malwareanalysisbook.com 五、分析流程总结 鉴定黑白 :首先确定样本性质 如果是黑样本 : 先进行信息收集 根据信息对样本形成大致概念 进行简单分析前的准备(如脱壳) 开始简单行为分析 六、关键工具列表 特征检测工具 : VirusTotal Google搜索(使用哈希值) 字符串分析工具 : strings pestdio 加壳检测工具 : PEID DIE(Detect It Easy) PE文件分析工具 : PEStudio 脱壳工具 : UPX官方脱壳工具(针对UPX壳) 七、注意事项 加壳样本的特征: 导入函数数量少 存在LoadLibrary等动态加载函数 字符串数量稀少 可能有明显的壳标识字符串 常见恶意行为API: 创建服务:CreateService 网络访问:InternetOpen, InternetOpenUrl等 文件操作:CreateFile, WriteFile等 进程操作:CreateProcess等 分析流程可根据实际情况调整,但基本逻辑应保持: 先鉴定后分析 先静态后动态 由浅入深逐步分析