windows样本分析之基础静态分析-三
字数 1632 2025-08-25 22:59:09
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等
-
分析流程可根据实际情况调整,但基本逻辑应保持:
- 先鉴定后分析
- 先静态后动态
- 由浅入深逐步分析