在未知的道路上越来越菜——2019.10.18
拿到一个新样本,却连最基本的宏病毒都没分析清楚,是真的菜,首先,分析要有一个方向,方向错了,便会浪费很多时间,而从事安全这个行业,时间是异常宝贵的。所以,感觉自己需要写一篇博客来提醒自己......
首先这是一个宏病毒,多的不说,如果不想观察宏病毒的动态行为,就没必要打开宏病毒,用工具提取。前提是你得先装工具。
然后查看宏,心里大概有个数。来来来,四级没过的菜鸡翻译下,当Word或Publisher文档打开时运行宏,可能运行的代码来自一个DLL,检测到十六进制编码的字符串,可能是用于混淆字符串(选项——解码到看到所有),检测到base64编码的字符串,可能是用于混淆字符串(选项——解码到看到所有)。
然后使用另外一个工具来提取宏,oledump.py。输入指令oledump.py 1.doc,然后可以看到带M的字母,表示这段数据中含有VBA宏(Macro)。
该工具带有许多参数,如果不知道,使用命令oledump.py -m来查看,反正内容太多,我是不想看,记住几个常用的就行。
-s 段号:选择上分析出的某一段来查看内容
-v :解压缩VBA宏
a:所有
有了这几个参数,那么一条命令就可以提取所有宏了:oledump.py -s a -v 1.doc >1.vbs,我重定向到1.vbs了,没事别写成.vbs,怕你直接跑起来,我这么改,只是单纯用notepad++好看写。
宏代码多的不说,实践出真知,自己分析代码去,不过要注意的是,调试的时候,像下面这种你是调不到的,因为这属于定义部分,编译器帮你编译过了,所以,该改的别名还是改上。
一直分析,除了往内存里面写了些shellcode,你都不会找到什么有用的信息(可能是太菜),分析到最后这个函数CreateTimerQueueTimer,查msdn。
乍一看没什么卵用,在仔细看,发现了一个啥?Callback!!!
那就找下Callback的函数地址,现学现用,你还别说Debug.print还挺好使,打印下
得到函数地址,这是十进制的,转换成16进制C8D1090,然后不要关闭WORD,使用OD附加一下,跳转到这个地址。
在这个地址,设此处为新的EIP,然后开始分析。前面都是加载一堆DLL,意义不大,不管,找关键函数。突然,看到了一个VirtualAlloc,我就喜欢这种函数。
到这,循环往申请的内存里面写东西。
在这又把内容改了
然后调用0C8D0E4F这个函数,看,解密出来了PE文件。
继续往下分析,发现搞了一堆创建傀儡进程的函数存起来。然后,看到了下面这个,果然,它还是对C:\Windows\System32\svchost.exe下手了。
看到这,就知道它把之前哪个PE给注入进去了
然后,写入,做收尾工作,结束。
首先,日常了解下这个文件,嘿嘿,没壳,开心。
拖进IDA里面看看,没壳?当我没说,代码段来这种数据,这是没壳吗?
脱壳,找到OEP,dump。
脱壳后再拖进IDA,此时可以F5了,开始分析。
样本实现的功能,我就用考试问题来回答吧!懒得再写一份报告,累!
1、上传了哪些信息
上传信息前肯定要收集信息,先来看看收集了那些信息,GUID、BUILD、INFO电脑名标识,和所属用户名,IP地址,WIN操作系统位数。
2、C2 服务器地址
发现四处URL,但是调试时只连接了两个,还有两个暂时没用到,明显的一处是http://api.ipify.org。
其次是调试器解出来的http://robtanrebta.com/4/forum.php,http://ritcahedther.ru/4/forum.php,http://fortadaun.ru/4/forum.php
其中将收集到的信息回传给http://robtanrebta.com/4/forum.php
3、服务器会下发几种指令,尝试还原下发的指令和数据及相应功能
下发五种指令,由于C2服务器已经挂了,不能得到下发的数据,控制码‘b’,创建傀儡进程System32\svchost.exe,写入一个PE去执行,控制码‘e’和'l',执行一个下发的PE文件,不过执行的参数不同而已,控制码‘n’,本人太菜,看不出来,控制码‘r’,在临时文件夹下创建一个名称为BN的文件,并执行它。
PS:讨厌分析C2死了的样本,调试起来什么都拿不到,写报告还得溯源,难受~~~