欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

LCG Kit:恶意office文档构建器分析

来源:本站整理 作者:佚名 时间:2018-12-29 TAG: 我要投稿

Proofpoint研究人员于2018年3月发现一个武器化的文档构建服务LCG Kit。研究人员通过追踪LCG Kit发现,它以不同的形式利用了微软office公式编辑器的CVE-2017-11882漏洞[1]。最近,恶意软件作者又将VB脚本漏洞CVE-2018-8174 [2]利用融入,该漏洞在许多邮件攻击活动中被广泛使用。11月底,LCG kit加入了使用微软office word宏来加载安装恶意软件payload的shellcode的能力。
LCG Kit是一个不同寻常的工具,代码使用多态shellcode和线性同余发生器(Linear Congruential Generator, LCG)来加密最后一阶段代码及payload的位置,LCG是生成伪随机数序列的算法。因为使用LCG这一特征,研究人员将其命名为LCG kit。
因为LCG kit工具创建的恶意附件在邮件攻击活动中被广泛传播,因此研究人员猜测该工具已经在暗网论坛出售了。LCG kit被小型犯罪组织用于传播RAT、窃取器,包括Loki Bot, FormBook, Agent Tesla, Remcos, AZORult, Revcode RAT, Quasar RAT。
历史活动
LCG kit有许多可能的目标文档:
· RTF文档
· 含有公式编辑器代码的OLE对象的微软Word/Excel 2007+文档
· 含有加载嵌入RTF文档的JavaScript的PDF文档
· 含有漏洞利用的嵌入远程RTF对象的微软Word/Excel 2007+文档
研究人员最早发现kit时,主要的攻击目标为RTF文档。之后,excel文档也被广泛使用。目前,研究人员发现了使用LCG kit创建的恶意RTF和excel文档。
Shellcode分析
LCG[3]算法是用来生成伪随机序列X0, X1, X2, … 的算法,使用的是递归关系:
X0 = seedX(n+1) =  (m * X[n]) + c mod M
M是2^8,2^16,2^32或2^64。在LCG Kit中,seed值X0是0,M是2^32。乘数m和常数c是随机选择的。然后LCG Kit会用伪随机的32位值来解密代码中的payload区,代码使用的是XOR。解混淆后,LCG路径是这样的:

图1: 反混淆的LCG Kit shellcode中的LCG routine
LCG Kit shellcode会用一些特征的结合使分析和逆向变得很难:
· 不同文档样本的Shellcode在不同的寄存器中保存LCG参数
· 垃圾代码(NOP, PUSH/POP pairs等)有时是嵌套出现的(PUSH x/PUSH y/POP y/ POP x) (图2)
· 关联跳转(图3 and 4)
· 一些指令使用可选形式,比如为ADD EAX,n使用两种不同形式的操作代码,用XOR x, [y+0x0]代替XOR x, [y]
最有效的反分析特征就是使用垃圾代码,这些垃圾代码最终会使混淆分析人员,导致逆向工具产生错误的结果。如下图所示,加密payload的起始位置保存在ESI寄存器中,当前XOR seed保存在EDX中,加密payload的结束位置保存在EAX中。代码段中包含5种无用的NOP, PUSH, POP汇编指令。

图2: 5个误用的NOP, PUSH, POP汇编指令
下一个汇编代码段是LCG Kit在其他指令部分使用跳转指令来混淆反汇编程序。比如其中一个反汇编程序在JMP 0x1108指令后就给出了错误的指令:

图3: 混淆反编译器使用其在JUMP指令后产生错误代码的代码段
下面是jump指令后正确的指令:

图4: 这是JMP 0x1108指令后正确的汇编指令
下图是LCG Kit shellcode解密路径中有效代码的图像表示:

图5: 有用代码的区块表示
解密后,生成的shellcode是与位置无关的代码,它使用Windows API来下载和执行payload。也有一些变种使用 URLDownloadToFileAPI这样的API,如下图所示:

图6:用URLDownloadToFile API来下载payload的解密指令
另一个final解密的shellcode变种是用WinHTTP API来下载payload:

图7:用WinHTTP* API来下载payload的解密指令
结合CVE-2018-8174
2018年9月底,研究人员发现一个使用不同漏洞利用的LCG kit邮件攻击活动。附件的微软Excel文档会下载一个含有VBScript和实现CVE-2018-8174漏洞的HTML文件。VBScript中的shellcode是正常的LCG Kit shellcode,会下载Agent Tesla。
HTML文件名为test4.html,说明这是一个测试的实现。

图8:含有使用CVE-2018-8174的Excel文档的邮件消息

图9:消息中包含的诱饵PDF文档
微软Word宏中的实现
11月底,研究人员又发现一起使用Word附件的垃圾邮件攻击活动,其中附件中含有可以加载LCG Kit shellcode到内存中的宏,最终安装Loki Bot stealer。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载