在上一篇博客中,我学习了利用静态分析工具对恶意代码进行分析,这里我学习了使用Process monitor、Process Explorer以及Regshot对恶意代码运行先后快照对比对恶意代码进行动态分析,经过查看相关进程操做、查看有关dll文件、对比分析快照数据,了解恶意代码在主机上的感染目的和恶意操做是什么。html
Process monitor介绍java
Process Monitor是一款拥有功能强大的监视和过滤的高级Windows进程监视器工具,可实时显示文件系统、注册表、进程/线程的活动。它结合了两个 Sysinternals 的旧版工具 Filemon 和 Regmon 的功能,并添加了一个包含丰富的和非破坏性的普遍加强过滤功能列表,全面的事件属性(例如会话 ID 和用户名称),可靠的进程信息,每一个操做的完整线程、堆栈与集成符号支持,同时记录到一个文件中,以及更多。其独一无二的强大功能将使 Process Monitor 在您的系统故障排除和恶意软件检测中发挥重要的做用。它监控全部能捕获的系统调用 -> 容易耗尽内存;一般不用于记录网络行为。git
Process Explorer介绍网络
Process Explorer汉化版是一款加强型的任务管理器,你可使用它方便地管理你的 程序进程,能强行关闭任何程序(包括系统级别的不容许随便终止的”顽固”进程)。除此以外,它还详尽地显示计算机信息:CPU、内存使用状况,DLL、句柄信息,很酷的曲线图。函数
Regshot介绍工具
Regshot是个简单,实用的注册表比较工具,它经过两次抓取注册表而快速地比较出答案。能够将注册表以纯文本方式记录下来,便于浏览;还能够监察 Win.ini,System.ini 中的键值;还能够监察您Windows 目录和 System 目录中文件的变化,为手工卸载某些软件创造条件。学习
恶意代码示例在这里哦~~~线程
首先先静态分析一下,用PEID分析Lab03-01,发现它已经被加了壳3d
用PEVIEW查看它的导入名字表,发现只有一个导入函数ExitProcescode
分析这里咱们能够看到一个相似于路径的东西,还有一个网址,下面是一个.exe文件,最后是注册表的键值。这就代表,这个恶意代码可能可能有联网下载的操做,在某个路径下安装了一些东西,也存在着对注册表的修改。
以后就能够开启监视工具并运行Lab01-03.exe进行简单的动态分析啦。
使用Process monitor时,要只查看Lab03-01的进程行为,就在过滤中选择进程名称——is——lab03-01。而后能够看到它执行了不少操做
还看到它在C:\WINDOWS\system32下写入了一个新程序vmx32to64.exe(就是以前看到的那个exe字符串)。
发现这个文件的大小和属性都和Lab03-01是同样的,咱们推测是恶意代码把自身复制了一份,放到了system32文件夹下
接下来用Process Explorer看看。
在进程Lab03-01中,咱们能看到与他关联的dll文件有不少,其中ws2_32.dll、ws2help、等都是跟网络链接相关的。所以能够肯定,有网络相关的操做。
这是它的字符串信息,和咱们在PEVIEW上看的差很少
在运行Lab03-01.exe以前进行一次注册表快照,运行以后在进行一次,并进行比较
经过快照,也能发现它对注册表进行了修改。
既然有网络链接,咱们用wireshark抓下包看看。
发现这个程序有一个向www.practicalmalwareanalysis.com链接的包,以后与这个ip(192.0.78.25)有数据传递的包。
因此,这个恶意代码的行为就是,在system32文件夹下自身复制到vmx32to64.exe,而后经过修改注册表键值来达成自启动,以后也会与www.practicalmalwareanalysis.com进行网络链接。
咱们先用PE-ID来对它进行静态分析,发现没有加壳
用PE-VIEW查看他的导出函数。从servicemain中能够看出多是跟某个服务有关
对于exe文件,咱们能够直接双击运行。
那么对于dll文件该怎么办呢?
rundll32.exe程序是全部的Windows中包含的程序,提供了运行dll的平台。
C:\rundll32.exe DLL name, Export arguments(须要先将dll文件放到C盘目录下)
由于恶意的DLL文件一般在DLLMain(DLL入口点)执行他们的代码,由于不管何时被加载,DLLMain函数总会被执行,因此就能够经过rundll32.exe来加载DLL,动态的获取信息。
而后咱们将运行dll文件先后的快照进行对比(左边为运行前的快照,右边为运行后的快照)
发现运行dll文件后,新添加了两个键,是建立了一个IPRIP服务。
这个服务是经过哪一个宿主程序来运行的呢?咱们在process exporer中用搜索一下。
原来宿主进程是svchost.exe,还知道了它的进程号是1180
知道了PID,那么在ProcessMonitor中咱们就能够根据这个PID来进行过滤啦~~~
固然,也存在网络特征码。
那么这个病毒代码感染的迹象就是在注册表中建立了一个IPRIP服务,而后把服务经过svchost.exe来运行。
经过抓包能够发现,访问的网址还是practicalmalwareanalysis.com,向其请求了一个serve.html的网页。
先对Lab03-03进行静态分析。用PEID观察到这个恶意代码没有被加壳。
用PEVIEW分析恶意代码,看到里面有字符串svchost.exe,下面可能用获得
打开process explorer对其进行动态分析:
打开lab03-03,能看到先出现绿色,而后瞬间出现红色,以后lab03-03.exe消失,预留下来程序,孤儿进程svchost.exe
对比一下磁盘镜像中的字符串和内存中的字符串,发现内存字符串存在写入的文件名和一些键盘值以及进程的PID,而磁盘镜像中没有。
而后经过过滤进程号来观察。
发现这个进程执行了不少写操做,并且都是写在practicalmalwareanalysis.log文件下。
并且发现,每进行一次输入操做,他就多加入了一个进程。由此判断应该是记录了咱们键盘的输入。
经过Process monitor、Process Explorer以及对恶意代码运行先后快照对比,咱们逐渐掌握了这三个恶意代码的当心思,大多都存在网络行为、修改键值等一系列不易察觉的行为,因此咱们更要提升自身的警觉意识,不要打开奇怪的连接、下载不是官网的软件~~~