0717-7821348
关于我们

欢乐彩票首页

您现在的位置: 首页 > 关于我们 > 欢乐彩票首页
看萌新怎么剖析一款开源东西
2019-05-11 22:39:21

原创: 萌新 合天智汇

0x01

最近发现老师傅发了一篇介绍宏病毒检测的文章,摩拳擦掌,也来照本宣科地剖析一把。

0x02

先介绍下什么是宏病毒。

现在的大部分文字处理程序,电子表格和数据库都包含功用强大的程序言语,答应在文档中运用指令序列。这些指令序列或小程序就被叫做宏。因而数据文件(或称文档)不能感染病毒的定理已不再树立,因为每一个文档现在都或许含有可履行指看萌新怎么剖析一款开源东西令。许多应用程序如MicrosoftWord,都答应树立宏。它在某操作发作时可主动运转。具有这些条件,歹意程序——宏病毒的生成不过是一个时间的问题。宏病毒编制极端看萌新怎么剖析一款开源东西简略,微软的宏言语都是BASIC言语的子集。BASIC是很多病毒制作者宠爱的编程言语,它比汇编言语简略许多。所以本质上任何人都能制作宏病毒,因而不难理解宏病毒如此之多且日趋杂乱化。

宏病毒运用宏言语外部的例程的调用才能如运用WindowsAPI函数,能进行任何操作。与传统的病毒比较,宏病毒的最新特征是它们不依赖操作体系。只需有应用程序支撑解说,宏病毒无需改动可在许多平台上运转。例如MicrosoftWord宏病毒能在任何装置过MicrosoftWord的体系中运转(Windows3.1x,Windows95,Windows NT,MAC等)。

0x03

和其他言语相同,宏病毒一被杀软盯上还想活命就得变身了,最简略的办法便是混杂咯。针对混杂的宏病毒,该怎么检测?老师傅引荐了ViperMonkey。

ViperMonkey是一个用Python编写的VBA仿真引擎,用于剖析和反混杂MicrosoftOffice文件(Word,Excel,PowerPoint,Publisher等)中包看萌新怎么剖析一款开源东西含的歹意VBA宏。首要是经过VBA解析和仿真的办法来进行剖析。

可是因为VBA言语、微软office全家桶以及一切能够从VBA调用的动态链接库和动态链接库目标的一切特性,VBA仿真既困难又杂乱,所以功率不是十分高,不过用于日常剖秋名山析也够了。

本文首要便是简略剖析下ViperMonkey的原理。

0x04

装置十分简略,这儿不再逐个截图细说了。


装置完Vip看萌新怎么剖析一款开源东西erMonkey后,输入vmonkey.exe[file_name]就能对宏病毒进行剖析。咱们以某宏病毒样本进行实验。

看下图第二个红框,便是提取出来的宏代码,可是咱们看到经过了高强度的混杂,底子不知道它在干什么,接下来便是展示ViperMonkey虚拟履行的时分了


ViperMonkey会先查找,寻觅进口函数,这儿只要一个函数AutoOpen,就从AutoOpen开端模仿

大约过了一分钟,虚拟履行完成了,咱们能够看到如下红框中的代码,便是终究解密出来的VBA代码,ViperMonkey成功对该宏病毒代码进行了反混杂,并提示发现了InterestingFunction Call。


0x05

老样子,仍是先定位到main函数


首要便是打印个banner以及承受参数


开端剖析作业的是在下图


调用的process_file

看看是在哪儿声明的


Emm,找到了


1330处调用ViperMonkey创建了一个模仿器vm

去找ViperMonkey在哪儿声明的



在类ViperMonkey中界说了entry_point进口点和callback_suffixes回调函数

咱们现已创建了一个vm,在后续过程中,程序就会从vba中查找是否存在上图界说的entry_point,callback_suffix中的一些函数,来找到进口点。

初始化vm之后,接下来调用vba_parser,看着姓名是用于解析的


找一下VBA_Parser


Emm,没有自界说,是从oletools库中导出的

去查一下这是做什么用的


从介绍中咱们知道,levba用于解析OLE和OpenXML文件,如MSOffice文档(例如Word,Excel),检测VBA宏,以明文提取源代码,以及检测安全相关形式,如主动履行宏,可疑VBA歹意软件,反沙箱和反虚拟化技能运用的关键字,以及潜在的IOC(IP地址,URL,可履行文件名等)。它还检测和解码几种常见的混杂办法,包含十六进制编码,StrReverse,Base64,Dridex,VBA表达式,并从解码的字符串中提取IOC。

那也便是说ViperMonkey是直接把olevba拿到用于解析,提取宏代码了

依照关键词Parse去查一下吧


找到解析宏的部分了



注释里现已说明晰,首要是文件格局解析的操作。

解析的操作一直到1530行

接下来是trace()


找到trace声明处



在下图能够看到其遍历函数来获取进口点


如下红框中,显现了该VBA代码中调用的一切函数,可是真实有意义的函数只要Run、GetObject、Shapes,其他函数都是作混杂用的。


遍历进口点,只要一个AutoOpen。


遍历变量名,都是些随机名。


依据函数名,进入到对应的函数模仿


作者这儿相当于自己写了一套VBA代码,用于模仿完成VBA函数的功用


并不是每一个VBA函数都需求模仿,只模仿那些用于字符串混杂的函数,如:StrReverse、Replace、Join、Split等。



如下,ViperMonkey成功模仿出了,

Shapes("AtwGUaJHEhkMnR").TextFrame.TextRange.Text履行后的代码,如下图右边红框所示,也是该宏病毒最终要履行的powershell歹意代码。


0x06

文末仍是称谢老师傅,文中一些图片从老师傅那儿直接拿来用了,可是因为老师傅原文为内部共享,所以不方便指出参阅来历及作者,还请老师傅见谅~

相关操作学习

宏病毒:把握宏病毒的原理。


本文为合天原创,未经答应,禁止转载。