请选择 进入手机版 | 继续访问电脑版

[专栏] 释放性病毒分析

[复制链接]
查看: 1646|回复: 0

3

主题

3

帖子

32

积分

文库官方

Rank: 7Rank: 7Rank: 7

积分
32
发表于 2017-3-30 22:39:36 | 显示全部楼层 |阅读模式

分析报告
最近因为在生活和学习上的问题,没有足够的时间给大家写分析文章,正好今天我们运营的飘飘美少女给我发了一个病毒,还给了大红包,说让我分析分析,我心想,红包就不用了,到时候见面请我吃饭就可以,废话不多说,我们先来看病毒文件格式:

1

1
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png
哇区,这么简单粗暴,直接呈现了,我们来查壳:

2

2
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png
可以发现它是没有加壳的,这里顺便可以告诉大家,这软件是用VS写的,因为在平常的情况下,c++8.0的都是VS(以后各个软件的ESP我都会详细的告诉大家),我当时心中有一万匹曹尼玛路过,你这个病毒至少要加个壳子啊,这病毒的作者我个人怀疑智商应该是在60以下吧。
来,我们一步一步分析它,完全去掌握它,就好像掌握女人一样。
首先,拖进OD:

3

3
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
发现它的界面是这样的,不用多说,这个就是它的ESP,我们之前查过壳,证明了它没有被加上壳,这时候我们可以来到它的程序入口处(00401000),图:

4

4
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg
这时候我们在它的段尾下一个断点,再运行:

5

5
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg
发现它应该被成功的断下了,在右下角的窗口中,我们可以发现它是在哪里被显示调用的,这时候我们右键返回反汇编窗口查看:

6

6
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image009.png
说到这里,大家可能会问:你怎么知道是哪个地方显示了调用的呢?我在这里就告诉大家吧,

7

7
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image010.png
这里显示的是调用的程序(大家都知道),然而在底下的两个返回中,大家可以看到ntdll和kernel32,在堆栈窗口中,数据都是从下往上进行排列和组合的,意思就是程序是从下面往上面运行的,而第一个的ntdll中又多出了一个大概是函数的一个名称,这时我们当然要去查看那个函数(原谅我语言组织能力不是很好),其实大概来说:就是遇到有像函数名的跟上去。这时候我们跟到这:

8

8
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg
段首下断,再次运行(记住前面下的断点要删除),运行后发现断下了:

9

9
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg
单步向下走,在这个过程中ESP中有数据的存入,右键数据窗口中查看:

10

10
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg
发现它在找执行的程序,继续单步,当我们遇到CALL时,直接进入查看:

11

11
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image017.png
发现都在使用edx中的的数据,我们再F8;

12

12
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image018.png
跳出了CALL,测试EAX中的值,在右边我们可以看到,EAX的值为0的

13

13
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image020.jpg
这时候不会向下跳转,既然它不向下跳转,下面有什么呢?谁都有这个好奇心,既然有好奇心当然要去看看,把这里改成jmp跟随:

14

14
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image022.jpg
来到这:

15

15
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image024.jpg
我们可以看到这里是switch 和case的结构,我们再F8单步向下走发现:

16

16
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image025.png我们又回到了jl下面的位置,我们再单步走:

17

17
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image026.png
这里是初始化程序,同时判断程序是否存在,如果不存在就直接跳转,图片中第二个jmp是返回到起始位置,重新去判断程序是否还存在路径下,我们走出段程序后,发现到这:

18

18
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image027.png
这个是最后一步检查程序是否存在,当这段代码完成,就进行下一段代码的执行:

19

19
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image028.png
当我们来到这里,继续F8的时候,就来到了这里:

20

20
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image029.png
可以看出这里有一段新的进程段,这里是有两个1的,不知道是用来干什么,我们先把这两个1搞明白,第一个1的下面是一个CALL,一般在下面的CALL就是这个的输出,我们先单步到第一个CALL,F7进去看看:

21

21
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image030.png
上面先是给一个局部变量进行赋值F,F在十进制表示15,但是在二进制是表示第16,说到有16位的东西,第一个想到的就是MD5,因为软件的MD5值一般都是16比较多,但是不排除不一样,第二个局部变量是给了0,此时我们的edx是为0:

22

22
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image032.jpg
继续单步向下走,来到这个地方,发现EBX是有变化的,我们在数据窗口中查看:

23

23
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image034.jpg
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image036.jpg
不难看出它这里是释放的一些病毒文件,段地址EDX是释放病毒的地址,到了下面一步,把这个释放病毒的值给了cl寄存器,然后进行+1,再比较cl和dl的值是否相等,zero不相等则跳转,然而cl是有地址的,从而下面的跳转是需要跳,继续循环这个语句,第二次来到这里的时候可以看出Z标志寄存器的是为1的:

24

24
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image038.jpg
跳转当然不会实现,之后进行清零(sub eax,ebx)。
出了第一个1之后,对edx进行了异或(再次去进行清空数据)

25

25
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image039.png
继续执行下面的1;

26

26
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image041.jpg
由此可以看出来,这个1也是对软件的MD5值进行比较。

27

27
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image043.jpg
完成MD5值的校验后:

28

28
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image045.jpg
P->A,O->A,由此可以看出来,A的这个地方就是释放文件

29

29
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image046.png
接下来就是在C:\program files\的目录下创建一个名字为DbSecuritySpt的文件夹

30

30
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image047.png
然后在这个文件夹下创建文件,分别是:

31

31
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image048.png
DbSecuritySpt为名称的exe文件

32

32
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image049.png
Nps.sys文件、Packet.dll文件、svch0st.exe文件

33

33
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image051.jpg
这里是对你的系统进行判断的,如果你的是32位的,则为上一个,否则的话为下一个。

34

34
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image053.jpg
在C:\program files\Windows Media Player创建

35

35
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image054.png
DNSSupport.exe

36

36
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image055.png
DNSProtection.exe

37

37
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image057.jpg
Agony.sys文件

38

38
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image058.png
Agony.exe

39

39
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image059.png
Svch0st.exe

40

40
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image061.jpg
老样子还是判断你的系统

41

41
在DNSSupport.exe中开启了DNS服务,同时进行了劫持

42

42
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image063.jpg
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image065.jpg
画框框的地方就是对exe后缀名字进行了比较,直到为exe为止。

43

43
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image067.jpg
Agony这个是判断系统版本
43.png
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image069.jpg
用sch0st.exe冒充系统文件,继续向下走:

45

45
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image070.png
到这里开始释放了病毒文件

46

46
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image071.png
检查系统的信息

47

47
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image072.png
寻找资源,判断以上的文件是否存在

48

48
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image073.png
之后进行了1500毫秒的循环查找因为一直的查找所以CPU都是很高的使用率:

49

49
file:///C:/Users/12345/AppData/Local/Temp/msohtmlclip1/01/clip_image074.png
总之,中了这个病毒之后,先释放病毒文件,劫持你的DNS,再进行1500毫秒一次的持续循环。市场上常用的杀毒软件都可以查杀到此病毒。
分析人:AhRMo
2017年3月30日

回复 印象

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩图文
在线客服(工作时间:9:00-22:00)
400-600-6565
安全文库公众号

Copyright   ©2015-2016  安全文库应急响应中心  Powered by©上海盾客网络科技有限公司  技术支持:安全文库    ( 闽ICP备15007866号-2 )