其实,每个病毒木马都写满了故事,从它身上:我们可以读懂它是怎么让我们上当受骗、运行它的?可以读懂它是运用何种奇技淫巧绕过杀毒软件的层层追杀的?可以读懂它扎根在我们电脑里最终目的是什么?是勒索?投放广告弹窗?还是收集隐私?所以,单单判断出一个程序是不是病毒还远远不够,我们还需要走进病毒木马,去看看它背后的故事,因为技术是不会说谎的! 所以,这一期咱们就聊聊如何分析一个病毒木马,需要用到哪些辅助工具和相关技术呢?
话不多说,咱们开始吧!
分析原理
分析一个病毒木马,我们至少需要弄清楚这 4 个问题:
一是它是如何进行伪装,让我们把它启动起来的?
二是启动起来之后,它如何隐藏在我们的电脑,如何实现开机自启动、提升权限的?
三是它驻留在我们电脑的目的是什么?是加密勒索?是投放广告?还是收集信息?
四是它是如何回传数据到远程服务器的?远程的服务器IP地址是什么?进行进行溯源?
我们手上只有病毒木马编译后的二进制文件,没有源码!所以,要想获取上述信息,只能通过逆向技术,反汇编二进制文件,得到汇编代码;然后阅读汇编代码,一点点去理解程序的意图和执行逻辑。逆向其实很简单,就是看汇编代码;但是也很难,因为汇编代码很底层,只用少数的一两百条指令来表示我们程序千千万万不同的语义,所以理解起来会非常的抽象!需要耐心、专注的人才能做到。但,任何事情都是入门时候很难,一旦你熟练、习惯后,看汇编代码就像看高级语言一样通俗易懂!等到这时候,任何程序在你面前,都不再有秘密!
常用的两个逆向工具:一个是静态反汇编工具IDA、一个是动态反汇编工具OllyDbg,静态和动的区别就在于静态不需要运行程序,直接扫描就可以得到反汇编代码,好处就是即使程序有损坏不能运行,也可以进行反汇编;动态是会加载到内存执行,对内存数据进行反汇编,所以这就要求程序必须能够加载运行起来,动态反汇编的好处就是我们能跟着程序执行逻辑并进行调试。
IDA
我们简单演示下静态反汇编工具IDA:随便拖个PE文件进去,它就立马扫描生成相应的汇编代码了;IDA里面还有个比较好用的功能就是可以自动将汇编代码切换为高级语言代码,方便阅读。当然,这个高级语言还是有缺陷,但是相比于直接看汇编代码,分析效率提升很多了。
OllyDbg
再来看下动态反汇编工具OllyDbg,也是打开个PE文件,大家可以看到,现在程序已经被加载到内存运行起来了,这个显示的是它的内存地址,旁边还有相应寄存器的状态,对应的值;我们可以对汇编代码修改内存的值、下断点进行调试等,大大提升逆向分析的效率。
当然,我们还可以利用一些辅助工具来提升我们的分析效率:
CFF Explorer
利用 CFF Explorer 工具,查看下样本文件的PE结构:
看看下导入表信息,检查下是否会加载第三方的DLL;如果加载,还需要继续分析加载的DLL文件
看看下导出表信息,检查其导出函数有哪些?如果存在导出函数,通常我们可以通过导出函数名称大概猜测其功能
eXeScope
使用 eXeScope 工具,查看样本文件的资源情况:
- 检查看看是否存在可疑资源,如果有可疑资源可以使用eXeScope工具将资源导出,另存为本地文件,再进行分析
如果我们捕获到的是一个可以加载运行的病毒样本,那么分析工作就相对来说轻松一些,因为有更多的辅助工具可以利用。
Process Explorer
病毒样本运行起来后,咱们可以使用 Process Explorer 来查看进程的基本信息:
查看下其进程链,是否创建有子进程
查看DLL加载情况,看看是否有第三方可疑DLL
Process Monitor
使用 Process Monitor工具来监视病毒木马的行为:
可以查看文件操作
可以查看注册表操作
可以查看网络操作
进程、线程操作
通过这个辅助工具,不需要进行逆向,就可以大概了解病毒木马的行为特征了。
Autoruns
还有个比较便捷的工具是 Autoruns,借助它就可以查看目前系统上的启动项,很方便地检查病毒的开机自启动方式。
PCHunter
如果病毒木马涉及到驱动级的,可以使用 PCHunter 工具,查看病毒木马的驱动模块、HOOK钩子情况、注册回调情况。
WireShark
使用 WireShark 工具抓取病毒木马对外发送的报文,对报文内容进行分析,找到病毒木马的通信服务器,解读报文内容,进行简单的溯源分析。
总的来说,这些辅助工具可以辅助我们快速分析出病毒木马的行为特征,要想得到更详细的实现细节,没有其他方法,只能通过反汇编,阅读汇编代码,一点点分析。
总结
需要特别注意一点是,最好是在虚拟机,且在断网的境况下进行病毒样本的分析工作,一是因为咱们不清楚病毒样本的攻击危害,以免对主机系统造成不可逆转的损害,虚拟机可以随时重置还原;二是防止样本回传被捕获分析的信息,打草惊蛇。
分析过程是枯燥乏味的,其本质就是一点点地逆向还原攻击碎片,再通过经验、推测、想象拼凑出完整的样子。把简单的事情做到极致,就是不平凡的事情。
视频链接和公众号
视频链接
https://www.bilibili.com/video/BV17Z4y1q7pz