病毒分析

病毒分析第一讲,分析病毒注意事项,以及简单分析主要功能

一丶认识木马和病毒的区别

木马和病毒是两个不一样的,有人会把木马认为是病毒,但其实不是

说下区别

 

木马:

  木马没有破坏性,木马主要功能是收集用户信息,控制机器等等.

病毒:

  病毒一般带有破坏性的行为,比如格式化盘符,修改电脑的文件,传染....

二丶分析病毒的前提准备

1.在分析病毒样本之前,首先要把病毒的名字修改一下.

比如:

  ,加上.v后缀

2.使用虚拟机进行分析(当然你可以用真机分析,^_^),并且建立虚拟机快照

虚拟机软件

3.建立快照

 建立快照之前,建议把所以该用到的工具进行配置.配置好了一切就可以开始正常操作了.

-

4.观察病毒行为

  1.第一种分析方式

      关键API下断点

    CreateFile  CreateProcess  OpenProcess, WriteProcessMemory  VirtualAllocEx,服务相关,注册表相关,网络相关,因为只要是病毒,肯定会操作的.

  2.第二种分析方式

    使用一种观察其行为的工具,在虚拟机中看看在怎么做.

    工具:

工具会打包上传

安装好之后的界面:

设置:

  工具-选项-保护-设置保护模式

 

  1.学习模式, 可以检测特定程序的使用的关键API,比如: 创建文件,修改内存...但是不阻止

  2.正常模式,正常模式则会在调用这些关键API之后,则会问你是否允许操作

  3.安静模式,安静模式则不操作,不提示.

三丶在学习模式下,观看病毒行为

一丶分析病毒的基本行为

此时,我们可以把我们的病毒样本放到虚拟机中运行了,如果建立了快照,则可以运行起来了,到时候恢复快照即可.

病毒样本:

  

拖放到虚拟机中运行,先打开Mal病毒分析工具

并运行.

第一步初次分析得到

 

 

  可以得出

  1. 主体样本会释放 SampleSrv.exe子体

  2.主体创建进行,运行SampleSrv.exe

  3.主体不断的修改其他进程内存

  4.子体SamPleSrv.exe释放DestToplayer.exe

  5.字体SamPleSrv.exe创建进行运行了DestToplayer.exe

  6.Desttoplayer.exe运行iexplore.exe

  7.Iexplore.exe修改注册表的值

  8.Iexplore.exe不断的修改文件

由此得出流程图

  

 

 二丶根据第一次分析,分析具体怎么做.

  根据第一次的分析,我们发现Iexipore.exe (也就是IE浏览器)不断的修改文件(感染文件)

1.附加感染文件

那么此时,我们OD附加一下,然后在CreateFile下断点,因为感染文件肯定会打开文件.

OD附加进程是存在的,因为创建进程的时候,窗口已经隐藏了.

2.打开模块,关键api下断点

ALT + E打开

CTRL + N 查看CreateFile

3.关键API下断点

4.栈回溯看其谁调用

5.查看节,看下属于哪个节

属于一个堆内存

节区开始是

2001000

大小是 D000

我们跳转到这个节地址

在内存中看到,它是一个EXE? MZ开头

我们查看下OEP,然后在内存中DUM这块内存下来.

B0开始是我们的PE头,那么 OEP的入口点是7C79

直接DUp内存

6.Dup内存

首先用的这个工具是OD插件中带的.网上可以查到很多.(工具会打包)

7.IDA分析dump出来的文件

7.1,分析导入表,查看CreateFile被谁引用

按X键看被谁引用

一步一步往上跟

第一次跟到这里,我们点击上面的注释哪里,可以继续网上跟,看谁引用了.

注意,上面的注释没有我这么多我们要设置一下 

中文:设置 - > 常规 - > 显示交叉参考 - > 设置你喜欢的数目

英文: Options - > General - > Cross-references -> disassembly(Non-Graph) -> 设置你喜欢的

一层一层的交叉引用展开,粗略的按下F5键看一下,其中一个是修改PE文件的,暂时可以将这个引用修改为 修改PE 节(ChangePE Sections)

 

一层一层的往上跟可以看到遍历文件,所以我们修改一下函数名字

继续网上跟可以看出获得磁盘驱动器的函数

按下x,看下此函数谁调用的.我们发现它是一个线程开辟去做的事情,那么这个线程看下是谁用的.

那么继续往下追则是DLLEntry了,也就是 DLL main DLL的入口点了.

由此得出,这个是DLL,被注入的IE中的,然后执行程序,不断循环遍历文件,进行感染exe文件的.

那么我们要知道怎么注入的,在上面的沙箱中也没看到,明天讲解.

病毒分析第二讲,分析病毒的主要功能

经过昨天病毒分析第一讲,得出一个被注入的DLL

开始分析DLL主要功能

PS: IDA中,DLL会有各种初始化的代码,和释放资源,所以不再看,只看重要的API

一丶行为分析(创建命名互斥体,防止病毒多开)

进入函数去看,从DLLmain入口点分析.

得出,第一步,病毒为了防止重复注入IE,创建命名互斥体.

名字是:  "KyUffThOkYwRRtgPP"

 

 二丶拼接字符串,创建文件,写入系统当前时间

进入DLLmain第二个函数查看.

PS:分析到哪里都已经改名字了,原名字不是Init,这个是根据分析里面的函数调用的出来的.

点击进入,查看具体怎么做了

 

 

 根据分析,可以分为四部分去看

1.初始化各种数据

2.经过一些列自己写的算法运算

3.获取磁盘和驱动器的信息,并且处理文件

4.写入系统时间(需要跟随大里面去看)

虚拟机动态调试查看.

第一次,通过动态分析,得出会拼接一个字符串,为

当前的: C:Documents and settings\Administrator\桌面\xxxx\dmiconf.data

 第二此分析,得出,在目录下面创建这个文件

写入的内容是时间

得出第二次行为:

创建文件dmlconf.dat在当前目录,并且写入文件内容为当前时间

三丶分析行为三,写入注册表,实现开机自启动

继续分析DLLmain下面的API

点击API进去查看.

 

里面还有一层,进去查看.没有命名的函数都是无关紧要的,这些都是实现命名过了.

进去一层则看到

1.打开注册表

2.遍历注册表的值

3.修改注册表的值

4.关闭注册表

此时我们需要动态查看是进入是修改的那个注册表了.

1.找到线程回调

2.线程回调进入下段点,并设置为新的EIP

设置的快捷键是 Ctrl + * 键

3.进入Call查看 

 

 4.查看注册表操作

得出了要操作注册表

HEEY_LOCAL_MACHINE Software\Microsoft\Windows NT\CurrentVersion\Winlogon

这个正好是开机启动项

经过上面和下面的分析,得出先获取注册表的值,然后申请内存

写入我们的内容

时间关系,不一步一不的跟了.

其实跟进去看的话她会设置自己的子体到里面,这样就会开机自启动了.

四丶网络相关

 此病毒还涉及到网络相关,但是现在这个病毒现在也链接不了服务器了.所以网络相关的掠过

如果想明白原理,建议自己跟一下看下也可以.

五丶修改PE文件,修改Html

此功能昨天已经快速定位到了.

鉴于时间关系不一步一步的分析了.此次样本分析完毕.

 

得出行为:

  1.使用命名互斥体,防止多开

  2.创建文件在dmlconf.dat在C盘目录下,并写入时间

  3.写入注册表开机自动启动

  4.链接服务器,发送和接受数据

  5.修改PE,以及html

 

坚持两字,简单,轻便,但是真正的执行起来确实需要很长很长时间.当你把坚持两字当做你要走的路,那么你总会成功