病毒分析工具
-
PEid 侦察程序信息工具
-
SystemSafety Monitor(SSM) 系统监控软件
-
FileMon 文件监控
-
RegMon 注册表监控
-
TcpView网络连接监控
-
Smsniff 网络数据监控
-
WireShark 网络数据采集分析
-
OllyDbg 动态分析工具
-
IDA 静态分析工具
-
WinDbg 内核态调试器
-
eXeScope 资源查看编辑
-
WinHex 十六进制编辑工具
-
LoadPE手动脱壳工具
动态分析
- 查看文件信息,是否加壳,是由何种语言编写的;
- 如果加壳则需要脱壳;
- 寻找Main函数,一般病毒行为都在Main函数里,也就是自己写的代码;
- 单步调试分析,OD中按F8单步过每条指令,遇到Call函数则F7步入;
- 记录每个关键行为,如创建文件,拷贝文件,创建服务,启动服务,连接网络等;
- 如果有释放出来的文件,则需要采集出来进一步分析;
- 直至Main函数结束,才分析结束。
静态分析
有些病毒样本没法动态分析,例如dll。
大致步骤:
- 用IDA打开要分析的文件,让它自动加载并分析完成;
- 如果是exe程序,则从Main函数开始分析,遇到Call按回车进入;
- 如果是dll程序,则按Ctrl+E查看导出函数入口;
- 对每个导出函数进行分析;
- 按Shift+F12查看字符串,对敏感的字符串双击进去,按X键可以查看哪里在调用;
- 查看导入函数,对一些敏感的API函数,查看API调用地方的上下文,分析进行了哪些操作;
- 如果安装F5插件,可以按F5让IDA把汇编还原成源代码,这样查看就明了多了;
病毒的行为
写文件:
- 拷贝自身文件到系统目录下,如system目录,system32目录,windows目录等;2)释放*.DLL文件到系统目录下;
- 释放物的取名与系统文件名类似,如svch0st.exe,winlogin.exe等;
- 替换系统文件;
- 感染可执行文件;
- 创建很隐蔽的路径释放病毒文件。
- 释放驱动.sys文件篡改系统IDT表等;
- 修改HOST文件;
进程相关:
- 设置键盘钩子或鼠标钩子,监视正常用户的操作;
- 连接远程地址,下载恶意文件并执行;
- 开启本地端口,接受来自远程的控制;
服务类:
- 创建服务,服务的执行路径为病毒文件,大多用来作为自启动;
- 设置注册表键值,自启动或隐藏;
- 注入进系统进程,如svchost.exe,explorer.exe,iexplore.exe等;
自身:
- 修改病毒本身后缀名,如cc3,jpg,tmp等;
- 病毒文件被设置为隐藏属性;
注意事项
虚拟机断网;
虚拟机中不能只有C盘;
样本不要以.exe形式保存在本机;
释放出来的文件也很重要;
不要遗漏.doc,.pdf,.xls等后缀的文件
挖掘的方法
web挖掘
网络数据包挖掘可以安装防火墙软件,如comodo。
未知程序是否连接了远程的某个IP地址,重点查看svchost.exe进程的连接;
是否(有规律地)访问异常域名;
本地系统挖掘
可以借助ARK工具查看进程,如XueTr。
- 检测程序的数字签名;
- 检测程序所属厂家;
- 检测进程路径是否正确;
- 检测程序的加载模块,是否有异常的加载项;
- 检测系统驱动程序是否有异常,重点检测没有数字签名的程序。
- 检测系统环境变量是否被篡改;
系统启动项相关(还是借助ARK工具):
- 查看注册表启动项;
- 查看随机启动的服务项目;
- 查看自启动目录下的文件;
- 查看计划任务;
启动项相对比较难判断,尽量将不熟悉或未知的启动项禁止。
提取方式
解锁提取
内存提取,用WinHex获取系统内存数据,复制内存中的文件镜像。
提取出来的样本,不要用.exe后缀存放,一般改后缀为.v。这样是防止因为误操作双击了样本,导致本机被感染。
提取出来的样本可以通过杀毒软件来检测,或者一些网站工具。