windows样本分析之基础静态分析-二
字数 1432 2025-08-03 16:50:00
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:综合静态分析工具
扩展思考
- 如何通过静态分析识别更多类型的恶意行为?
- 如何结合动态分析验证静态分析的结论?
- 如何编写检测规则来识别此类后门程序?