宏病毒之惨痛教训

在未知的道路上越来越菜——2019.10.18

拿到一个新样本,却连最基本的宏病毒都没分析清楚,是真的菜,首先,分析要有一个方向,方向错了,便会浪费很多时间,而从事安全这个行业,时间是异常宝贵的。所以,感觉自己需要写一篇博客来提醒自己......

1、提取宏

首先这是一个宏病毒,多的不说,如果不想观察宏病毒的动态行为,就没必要打开宏病毒,用工具提取。前提是你得先装工具。

宏病毒之惨痛教训_第1张图片

然后查看宏,心里大概有个数。来来来,四级没过的菜鸡翻译下,当Word或Publisher文档打开时运行宏,可能运行的代码来自一个DLL,检测到十六进制编码的字符串,可能是用于混淆字符串(选项——解码到看到所有),检测到base64编码的字符串,可能是用于混淆字符串(选项——解码到看到所有)。

宏病毒之惨痛教训_第2张图片

然后使用另外一个工具来提取宏,oledump.py。输入指令oledump.py  1.doc,然后可以看到带M的字母,表示这段数据中含有VBA宏(Macro)。

宏病毒之惨痛教训_第3张图片

该工具带有许多参数,如果不知道,使用命令oledump.py -m来查看,反正内容太多,我是不想看,记住几个常用的就行。

-s 段号:选择上分析出的某一段来查看内容

-v :解压缩VBA宏

a:所有

有了这几个参数,那么一条命令就可以提取所有宏了:oledump.py -s a -v 1.doc >1.vbs,我重定向到1.vbs了,没事别写成.vbs,怕你直接跑起来,我这么改,只是单纯用notepad++好看写。

宏病毒之惨痛教训_第4张图片

2、分析宏

宏代码多的不说,实践出真知,自己分析代码去,不过要注意的是,调试的时候,像下面这种你是调不到的,因为这属于定义部分,编译器帮你编译过了,所以,该改的别名还是改上。

宏病毒之惨痛教训_第5张图片

一直分析,除了往内存里面写了些shellcode,你都不会找到什么有用的信息(可能是太菜),分析到最后这个函数CreateTimerQueueTimer,查msdn。

宏病毒之惨痛教训_第6张图片

乍一看没什么卵用,在仔细看,发现了一个啥?Callback!!!

宏病毒之惨痛教训_第7张图片

那就找下Callback的函数地址,现学现用,你还别说Debug.print还挺好使,打印下

宏病毒之惨痛教训_第8张图片

得到函数地址,这是十进制的,转换成16进制C8D1090,然后不要关闭WORD,使用OD附加一下,跳转到这个地址。

宏病毒之惨痛教训_第9张图片

3、分析写入的Shellcode

在这个地址,设此处为新的EIP,然后开始分析。前面都是加载一堆DLL,意义不大,不管,找关键函数。突然,看到了一个VirtualAlloc,我就喜欢这种函数。

宏病毒之惨痛教训_第10张图片

到这,循环往申请的内存里面写东西。

宏病毒之惨痛教训_第11张图片

在这又把内容改了

宏病毒之惨痛教训_第12张图片

然后调用0C8D0E4F这个函数,看,解密出来了PE文件。

宏病毒之惨痛教训_第13张图片

继续往下分析,发现搞了一堆创建傀儡进程的函数存起来。然后,看到了下面这个,果然,它还是对C:\Windows\System32\svchost.exe下手了。

宏病毒之惨痛教训_第14张图片

看到这,就知道它把之前哪个PE给注入进去了

宏病毒之惨痛教训_第15张图片

然后,写入,做收尾工作,结束。

宏病毒之惨痛教训_第16张图片4、Dump写入的PE进行分析

首先,日常了解下这个文件,嘿嘿,没壳,开心。

宏病毒之惨痛教训_第17张图片

拖进IDA里面看看,没壳?当我没说,代码段来这种数据,这是没壳吗?

宏病毒之惨痛教训_第18张图片

脱壳,找到OEP,dump。

宏病毒之惨痛教训_第19张图片

脱壳后再拖进IDA,此时可以F5了,开始分析。

宏病毒之惨痛教训_第20张图片

5、样本实现功能

样本实现的功能,我就用考试问题来回答吧!懒得再写一份报告,累!

1、上传了哪些信息

上传信息前肯定要收集信息,先来看看收集了那些信息,GUID、BUILD、INFO电脑名标识,和所属用户名,IP地址,WIN操作系统位数。

宏病毒之惨痛教训_第21张图片

2、C2 服务器地址

发现四处URL,但是调试时只连接了两个,还有两个暂时没用到,明显的一处是http://api.ipify.org。

宏病毒之惨痛教训_第22张图片

其次是调试器解出来的http://robtanrebta.com/4/forum.php,http://ritcahedther.ru/4/forum.php,http://fortadaun.ru/4/forum.php

宏病毒之惨痛教训_第23张图片

其中将收集到的信息回传给http://robtanrebta.com/4/forum.php

宏病毒之惨痛教训_第24张图片

3、服务器会下发几种指令,尝试还原下发的指令和数据及相应功能

下发五种指令,由于C2服务器已经挂了,不能得到下发的数据,控制码‘b’,创建傀儡进程System32\svchost.exe,写入一个PE去执行,控制码‘e’和'l',执行一个下发的PE文件,不过执行的参数不同而已,控制码‘n’,本人太菜,看不出来,控制码‘r’,在临时文件夹下创建一个名称为BN的文件,并执行它。

宏病毒之惨痛教训_第25张图片

PS:讨厌分析C2死了的样本,调试起来什么都拿不到,写报告还得溯源,难受~~~

你可能感兴趣的:(学习笔记)