windows样本分析之基础静态分析-二
字数 1432 2025-08-03 16:50:00

Windows样本分析之基础静态分析(二)

目标

  1. 样本鉴定黑白(判断是否为恶意样本)
  2. 样本初步行为的判断
  3. 相关信息收集

原理

鉴黑白

  • 特征码检测:检测已知病毒,杀毒软件将分析过的病毒中的特征部分提取成相应特征码(文件特征、字符特征、指令特征等)
  • 启发检测:检测未知病毒,通过检测病毒运行过程中的API调用行为链

初步行为判断

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

相关信息收集

  • 编译时间:判断样本出现的时间
  • 文件类型:判断是命令行程序、GUI程序还是DLL等
  • 网络行为:是否有网络通信功能
  • 关联文件:是否有其他关联文件
  • 壳情况:是否加壳或混淆

分析流程

鉴黑白

  1. 文件特征检测

    • 使用VirusTotal检测(通过SHA-1搜索)
    • 文件SHA-1/MD5 Google搜索,查看是否有相关检测报告
  2. 字符特征检测

    • 使用strings/pestdio工具打印字符串
    • 根据特征字符串(如IP地址、敏感词句、API符号等)进行Google搜索
  3. 加壳/混淆判断

    • 使用PEID/DIE工具查看文件是否加壳
    • 通过strings判断:如果字符串数量稀少、存在LoadLibrary等少量API符号,可能加壳
  4. 链接检测

    • 恶意样本通常采用LoadLibrary进行运行时链接

样本初步行为判断

  • 使用pestdio查看导入表的API调用和字符串信息
  • 分析关键API和字符串特征

相关信息收集

  • 使用PEStudio查看文件头的时间戳
  • 使用PEStudio查看文件头的文件类型
  • 使用DIE/PEID查壳情况或分析string表和API特征

实践分析(以Lab01-01.dll为例)

鉴黑白结果

  • VirusTotal检出率:33/68,确定为恶意样本

初步行为分析

导入表分析

发现以下关键API:

  • CreateMutexA/OpenMutexA:创建/打开互斥体,防止进程多开
  • socket/send/connect/recv:网络socket通信,可能是后门通信行为
  • CreateProcessA:创建进程,可能用于执行恶意命令

字符串表分析

发现以下关键字符串:

  • IP地址:127.26.152.13(可进一步Google或VT查询)
  • "exec":命令执行字段,结合网络通信API,可能是接收并执行命令的后门

相关信息收集

  1. 编译时间

    • Mon Dec 20 00:16:38 2010
    • 小技巧:根据多个文件的编译时间可以推测是否来自同一代码包
  2. 文件类型

    • DLL动态链接库
  3. 壳信息

    • 从导入表暴露的网络操作API可以看出未加壳
    • 可用工具进一步确认

分析结论

  1. 该DLL具有明显的后门操作特征:

    • 与127.26.152.13进行网络通信
    • 能够接收并执行命令
    • 具有进程创建能力
  2. 推测配套的exe文件可能用于启动和隐藏该DLL

  3. 注意点:

    • CreateProcessSleep函数也是后门常用API
    • 建议编写demo版后门程序来巩固对这些API的理解

关键工具总结

  1. VirusTotal:样本黑白鉴定
  2. PEStudio:查看文件头信息、导入表、字符串等
  3. PEID/DIE:查壳和分析文件类型
  4. strings:提取和分析文件中的字符串
  5. pestdio:综合静态分析工具

扩展思考

  • 如何通过静态分析识别更多类型的恶意行为?
  • 如何结合动态分析验证静态分析的结论?
  • 如何编写检测规则来识别此类后门程序?
Windows样本分析之基础静态分析(二) 目标 样本鉴定黑白(判断是否为恶意样本) 样本初步行为的判断 相关信息收集 原理 鉴黑白 特征码检测 :检测已知病毒,杀毒软件将分析过的病毒中的特征部分提取成相应特征码(文件特征、字符特征、指令特征等) 启发检测 :检测未知病毒,通过检测病毒运行过程中的API调用行为链 初步行为判断 特征API :不同种类的病毒样本根据其特性总会调用一些特定的API函数 相关信息收集 编译时间:判断样本出现的时间 文件类型:判断是命令行程序、GUI程序还是DLL等 网络行为:是否有网络通信功能 关联文件:是否有其他关联文件 壳情况:是否加壳或混淆 分析流程 鉴黑白 文件特征检测 : 使用VirusTotal检测(通过SHA-1搜索) 文件SHA-1/MD5 Google搜索,查看是否有相关检测报告 字符特征检测 : 使用strings/pestdio工具打印字符串 根据特征字符串(如IP地址、敏感词句、API符号等)进行Google搜索 加壳/混淆判断 : 使用PEID/DIE工具查看文件是否加壳 通过strings判断:如果字符串数量稀少、存在LoadLibrary等少量API符号,可能加壳 链接检测 : 恶意样本通常采用LoadLibrary进行运行时链接 样本初步行为判断 使用pestdio查看导入表的API调用和字符串信息 分析关键API和字符串特征 相关信息收集 使用PEStudio查看文件头的时间戳 使用PEStudio查看文件头的文件类型 使用DIE/PEID查壳情况或分析string表和API特征 实践分析(以Lab01-01.dll为例) 鉴黑白结果 VirusTotal检出率:33/68,确定为恶意样本 初步行为分析 导入表分析 发现以下关键API: CreateMutexA / OpenMutexA :创建/打开互斥体,防止进程多开 socket / send / connect / recv :网络socket通信,可能是后门通信行为 CreateProcessA :创建进程,可能用于执行恶意命令 字符串表分析 发现以下关键字符串: IP地址:127.26.152.13(可进一步Google或VT查询) "exec":命令执行字段,结合网络通信API,可能是接收并执行命令的后门 相关信息收集 编译时间 : Mon Dec 20 00:16:38 2010 小技巧:根据多个文件的编译时间可以推测是否来自同一代码包 文件类型 : DLL动态链接库 壳信息 : 从导入表暴露的网络操作API可以看出未加壳 可用工具进一步确认 分析结论 该DLL具有明显的后门操作特征: 与127.26.152.13进行网络通信 能够接收并执行命令 具有进程创建能力 推测配套的exe文件可能用于启动和隐藏该DLL 注意点: CreateProcess 和 Sleep 函数也是后门常用API 建议编写demo版后门程序来巩固对这些API的理解 关键工具总结 VirusTotal :样本黑白鉴定 PEStudio :查看文件头信息、导入表、字符串等 PEID/DIE :查壳和分析文件类型 strings :提取和分析文件中的字符串 pestdio :综合静态分析工具 扩展思考 如何通过静态分析识别更多类型的恶意行为? 如何结合动态分析验证静态分析的结论? 如何编写检测规则来识别此类后门程序?