前两次随笔我介绍了手动查杀病毒的步骤,然而仅通过手动查杀根本无法仔细了解病毒样本的行为,这次我们结合Process Monitor进行动态的行为分析。

Process Monitor

Process Monitor一款系统进程监视软件,总体来说,Process Monitor相当于Filemon+Regmon,其中的Filemon专门用来监视系统 中的任何文件操作过程,而Regmon用来监视注册表的读写操作过程。 有了Process Monitor,使用者就可以对系统中的任何文件和 注册表操作同时进行监视和记录,通过注册表和文件读写的变化, 对于帮助诊断系统故障或是发现恶意软件、病毒或木马来说,非常有用。

步骤

1.首先打开Process Monitor,打开Process Tree 然后运行病毒样本,即setup.exe程序,可发现已经检测到该进程,如图

可以观察到该进程又创建了一个spoclsv.exe,且运行了三个cmd命令,这几条命令分别是:

cmd.exe /c net share C$ /del /y            //删除C盘的网络共享,因为我们知道该病毒会感染所有盘,而我的虚拟机中只有一个C盘,所以只删除C盘中网络共享
cmd.exe /c net share admin$ /del /y //删除系统根目录下的网络共享

到此我们可以判断出两条病毒行为

①该病毒样本运行后会创建新的进程spoclsv.exe。

②该病毒样本会删除C盘以及根目录下的网络共享。

2.接着我们使用Process Monitor 的过滤器功能对行为进行进一步分析

一般来说,对一个病毒样本的行为检测可分为三大类:注册表,文件,网络,分别对该三种方向进行分析,可具体的有条理的获取分析结果。

首先我们来分析文件

设置过滤器,对spoclsv.exe 进行监控

我们可以发现该进程通过CreateFile在C盘根目录下创建了setup.exe 和autorun.inf文件,说明可能是让setup.exe自动启动。于是我们又得到两个病毒行为

③病毒样本生成的spoclsv.exe程序可能会自身复制到C盘的根目录下改名为setup.exe。

④还产生了一个autorun.inf 文件使setup.exe自启动

3.接下来我们对注册表进行分析

首先可以查看一下RegDeleteValue这个操作

这些删除键值的操作是删除所有杀毒软件的自启动项,防止病毒被查杀

接下来设置过滤条件为RegCreateKey与RegSetValue,如图

上图在注册表自启动键里面添加了新的键值,即svcshare,所以每次启动计算机时,spoclsv.exe都会自启动,进行病毒行为

上述操作指的是将文件设置为隐藏属性,无法被找到,即将Check Value的值设为0,于是我们可以推断出该病毒可能会将后生成的setup.exe和autorn.inf文件设置为隐藏属性,无法显示,经过上次手动查杀验证,的确如此

病毒行为:

⑦删除安全类软件在注册表中的启动项。

⑧在注册表HKCU\Software\Microsoft\Windows\CurrentVersion\Run中创建svcshare,用于在开机时启动位于“C:\WINDOWS\system32\drivers\spoclsv.exe”的病毒程序。

⑨将spoclsv.exe生成的文件设置为隐藏属性,不被计算机用户发现。

最后,我们来分析网络行为

可以发现,该程序不断的想172.16.11.xx这个局域网进行尝试连接,可能意图是感染该局域网内的其他计算机。

整个熊猫烧香病毒的行为分析的流程已经完毕,我们可以发现,通过行为分析获得的病毒行为特征比手动查杀要丰富的多,这启示我们在对一个样本进行分析时,要多方面结合进行分析,不能片面,病毒分析是一个缓慢而有趣的事情,当然要进一步了解样本的话,还需要更高的逆向分析技术,本小白争取下一周进行完整的逆向分析。

病毒分析(三)-利用Process Monitor对熊猫烧香病毒进行行为分析的更多相关文章

  1. 利用 Process Monitor 找出某个 Windows 选项所对应的注册表值

    多 时候我们要调整一项 Windows 的功能时只需更改一下注册表即可实现.而很多大家眼中所谓的高手,对 Windows 注册表更是玩得出神入化.难道这些高手把 Windows 注册表都记下来了?答案 ...

  2. 文档翻译第001篇:Process Monitor帮助文档(Part 1)

    [译者注] Process Monitor是一款非常著名的系统进程监视软件.总体来说,Process Monitor相当于Filemon+Regmon,其中的Filemon专门用来监视系统中所有文件的 ...

  3. Pascal “熊猫烧香”(骗人的)

    Pascal仿熊猫烧香病毒,慎用 program japussy;useswindows, sysutils, classes, graphics, shellapi{, registry};cons ...

  4. 文档翻译第003篇:Process Monitor帮助文档(Part 3,附Process Monitor的简单演示)

    [导入与导出配置] 一旦您配置了一个筛选器,您能够使用"工具(Tools)"菜单中的"保存筛选器(SaveFilters)"菜单项将其保存.Process Mo ...

  5. 连肝三个通宵,JVM77道高频面试题详细分析,就这?

    为方便大家记忆,记得收藏加关注哦 ,需要下载PDF版本请在公众号[程序员空间]回复"资料"即可获取下载方式,你也可以 点在文末微信扫描二维码关注! 1.java 中会存在内存泄漏吗 ...

  6. 文件翻译002片:Process Monitor帮助文档(Part 2)

    [筛选亮点] Process Monitor提供了一些方式来配置筛选器和高亮显示.         筛选器的包括与排除 您能够在筛选器中指定事件的属性,这样就能够令Process Monitor仅显示 ...

  7. process monitor教程汇总

          这是只一个简单的例子,当然还有更复杂的规则说明,可以参考一下列表里的规则. 最后说下 process monitor 到底有什么用? 除了那些电脑高手喜欢分析程序运行情况外, 还有那些编程 ...

  8. 使用react全家桶制作博客后台管理系统 网站PWA升级 移动端常见问题处理 循序渐进学.Net Core Web Api开发系列【4】:前端访问WebApi [Abp 源码分析]四、模块配置 [Abp 源码分析]三、依赖注入

    使用react全家桶制作博客后台管理系统   前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用react全家桶制作的博客后台管理系统 概述 该项目是基 ...

  9. 文档翻译第002篇:Process Monitor帮助文档(Part 2)

    [筛选与高亮显示] Process Monitor提供了一些方式来配置筛选器和高亮显示.         筛选器的包含与排除 您可以在筛选器中指定事件的属性,这样就可以令Process Monitor ...

随机推荐

  1. django之路由层(反向解析)总结

    表关系的建立方式 表与表之间的关系就三种 一对一 OneToOne(to='') # to后面可以跟字符串的表名 也可以直接跟变量名表名(该表名必须在上面提前定义出来) 一对多 ForeignKey( ...

  2. 如何让一个sprite绕一个点旋转,同时又可以实现指定旋转角度并慢慢停下的效果

    如何让一个sprite绕一个点旋转,同时又可以实现指定旋转角度并慢慢停下的效果 首先列出sprite围绕一个点旋转的公式,这个可以自己推导,假设sprite的起始位置为(x1,y1),围绕旋转的中心点 ...

  3. 无法将 DBNull.Value 强制转换为类型“System.DateTime”。请使用可空类型

    取数据库中的数据时,数据库中的字段有可能是空值,虽然Linq中的Field方法和SetField方法都可以处理可以为 null 的类型,不必像前面的示例那样检查 Null 值,我们再用Field将一些 ...

  4. iOS检测QQ是否安装

    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"mqq://"]]) {     ...

  5. Springboot集成Swagger操作步骤

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  6. oracle存储过程及sql优化-(一)

             本篇主要介绍存储过程的结构 先简单介绍下: oracle存储过程与函数不同,oracle函数和存储过程都可以有多个输入,但是函数一般只有一个输出,而oracle可以有多个输出且与输入 ...

  7. webConfig的使用

    <sessionState mode="Off|InProc|StateServer|SQLServer" cookieless="true|false" ...

  8. Mysql 基础操作命令

    1,查看mysql的建表语句 show create table tableName; #tableName 库中已存在的表名

  9. java多线程系列3:悲观锁和乐观锁

    1.悲观锁和乐观锁的基本概念 悲观锁: 总是认为当前想要获取的资源存在竞争(很悲观的想法),因此获取资源后会立刻加锁,于是其他线程想要获取该资源的时候就会一直阻塞直到能够获取到锁: 在传统的关系型数据 ...

  10. track-by的使用

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...