内容简介: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是一个不同寻常的工具,代码使用多态shellco
概览
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
等)有时是嵌套出现的(P USH x/PUSH y/POP y/ POP x
) (图2)
· 关联跳转(图3 and 4)
· 一些指令使用可选形式,比如为A DD 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。也有一些变种使用 URLDownloadToFile
API这样的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。
这说明随着可利用的有漏洞的机器数量减少,诱使用户启用恶意宏来进行漏洞利用也是一种可行的方式。
图10: 含有恶意宏文档附件的邮件消息
图11: 使用宏来加载LCG Kit shellcode的文档
结论
利用LCG Kit和ThreadKit这样的漏洞利用文档构建器可以很容易的创建垃圾邮件活动中使用的恶意文档。因为LCG Kit支持漏洞利用和宏,因此运营者有许多方法来确保恶意软件payload的传播,比如使受害者在有漏洞的PC上打开文档或使用社会工程方法来启用宏。
以上所述就是小编给大家介绍的《LCG Kit:恶意office文档构建器分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- GodOfWar:可嵌入恶意Payload的JavaWAR构建工具
- Rietspoof恶意软件释放多个恶意有效载荷
- 使用开源代码拼凑出恶意代码:Frankenstein恶意活动分析
- Office 365团队:针对使用恶意InPage文档的恶意活动分析
- 使用Rootkit实现恶意挖矿:CVE-2019-3396漏洞新型恶意利用方式分析
- 全新的恶意攻击技术已出现:针对日本用户的复杂多阶段PowerShell恶意脚本分析
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。