恶意软件分析最令人兴奋的方面之一是遇到一个对于逆向社区来说是新的或罕见的家族。确定恶意软件的功能、谁创建了它以及其背后的原因成为了一个需要解决的谜团。我们最近发现的前所未见的 dropper 变种名为 MidgeDropper,它具有复杂的感染链,其中包括代码混淆和侧面加载,这使其成为一个有趣的用例。尽管我们无法获得最终的有效负载,但本博客仍将探讨是什么让这个投放器发挥作用。
受影响的平台: Windows
受影响的用户: Windows 用户
影响:可能出于其他目的部署其他恶意软件
严重级别:中
!PENTING_LIST OF OFFICERS.rar
!PENTING_LIST OF OFFICERS.rar 存档中包含两个文件:“Notice to Work-From-Home groups.pdf”和“062023_PENTING_LIST OF SUPERVISORY OFFICERS WHO STILL HAVE NOT REPORT.pdf.exe”(图 1)。
图 1:“!PENTING_LIST OF OFFICERS.rar”的内容
Notice to Work-From-Home groups.pdf
“Notice to Work-From-Home groups.pdf”文件正是它看起来的样子:一个 PDF 文件。它包含错误消息的图像,错误地指示 PDF 文档加载失败。它旨在充当诱饵,将收件人的注意力转移到单击并执行“062023_PENTING_LIST OF SUPERVISORY OFFICERS WHO STILL HAVE NOT REPORT.pdf.exe”文件。由于 Windows 默认情况下隐藏文件扩展名,因此查看内容的任何人都不太可能看到“.exe”,而会认为他们正在打开另一个 PDF 文件。
图 2:诱饵文档“Notice to Work-From-Home groups.pdf”
062023_PENTING_LIST OF SUPERVISORY OFFICERS WHO STILL HAVE NOT REPORT.pdf.exe
“062023_PENTING_LIST OF SUPERVISORY OFFICERS WHO STILL HAVE NOT REPORT.pdf.exe”文件大小为 6.7MB,按照恶意软件交付标准来看是很大的。该可执行文件主要用作以下感染阶段的滴管。
该可执行文件会释放文件“Microsoft Office.doc”、“IC.exe”、“power.exe”和“power.xml”。它还联系“hxxp://185[.]225[.]68[.]37/jay/nl/seAgnt.exe”来下载文件“seAgnt.exe”。
图 3:下载“seAgnt.exe”的 HTTP GET 请求
Microsoft Office.doc
该文件将从“C:Users\AppDataLocalTempMicrosoftOffice”中删除并打开。它也是一个诱饵。它在某些版本的植入程序中被填充,但在 FortiGuard 实验室分析的版本中它是空的且良性的。
图 4:拖放的“Microsoft Office.doc”的位置
图 5:“Microsoft Office.doc”的少量内容的十六进制表示形式
执行程序
“IC.exe”被“062023_PENTING_LIST OF SUPERVISORY OFFICERS WHO STILL HAVE NOT REPORT.pdf.exe”删除并存放到“C:ProgramDataEmisoftMicrosoftStreamIC.exe”。它负责获得下一阶段的感染。
图 6:IC.exe 正在执行
“IC.exe”访问“185[.]225[.]68[.]37”处的 URL 以下载附加文件“VCRUNTIME140_1.dll”。
图 7:IC.exe 显示其下载“VCRUNTIME140_1.dll”的意图
图 8:下载“VCRUNTIME140_1.dll”的 HTTP GET 请求
从文件名可以猜到,“VCRUNTIME140_1.dll”应该显示为与 Microsoft Visual C++ Redistributable Package 相关的文件。
power.exe 和 power.xml
“power.exe”与“power.xml”一起被“062023_PENTING_LIST OF SUPERVISORY OFFICERS WHO THILL HAVE NOT REPORT.pdf.exe”删除。“power.exe”只有一项工作:解码和处理“power.xml”。
图9:美化前的原生power.xml
图 9 显示其本机格式的“power.xml”已被混淆且不易读取。通过删除用于混淆的垃圾字符可以轻松纠正此问题。
图 10:美化后的“power.xml”,突出显示其用途
消除混淆后,XML 文档仍然存在。除了“操作”标签下的最后部分之外,许多信息都是无关紧要的。这对文件的主要目的是启动“seAgnt.exe”。
执行程序
“seAgnt.exe”是“GameBarFTServer.exe”的重命名副本,“GameBarFTServer.exe”是 Microsoft 发布的应用程序“Xbox Game Bar Full Trust COM Server”。它是在 Windows 上运行的 Xbox Game Bar 的后台进程。
图 11:“seAgnt.exe”进程的属性
尽管“seAgnt.exe”本身是良性的,但它确实依赖于“VCRUNTIME140_1.dll”。这种依赖关系允许 DLL 内的恶意代码执行。
图 12:突出显示“VCRUNTIME140_1.dll”的“seAgnt.exe”依赖项
VCRUNTIME140_1.dll
“VCRUNTIME140_1.dll”是一个合法的 DLL,是 Microsoft Visual C++ 运行时包的一部分。不幸的是,这里使用的特定版本是恶意的。
由于“VCRUNTIME140_1.dll”是动态链接库,因此它不作为单独的可执行文件存在。它必须通过另一个应用程序来帮助将其代码加载到内存中并执行。“seAgnt.exe”就是该应用程序。这种技术称为旁加载(https://attack.mitre.org/techniques/T1574/002/),因为合法应用程序的依赖项被劫持以允许恶意代码加载。
图 13:“VCRUNTIME140_1.dll”文件部分列表,包含一些非标准添加内容
该文件被严重混淆,旨在使分析变得更加困难。例如,下图显示了试图隐藏代码用途的大量函数跳转。
图 14:“VCRUNTIME140_1.dll”执行树的部分视图,显示大量函数和跳转,旨在混淆代码的用途
代码的其余部分使得在反汇编程序中执行起来同样困难。
该代码的主要目的似乎是联系“hXXp://185[.]225[.]68[.]37/jay/nl/35g3498734gkb.dat”来获取文件“35g3498734gkb.dat”。
图 15:排队下载“35g3498734gkb.dat”
35g3498734gkb.dat
奇怪的是,“35g3498734gkb.dat”在文件哈希方面与“VCRUNTIME140_1.dll”相同,因此尚不清楚为什么威胁行为者选择再次从 C2 节点将其拉下。
图 16:“VCRUNTIME140_1.dll”和“35g3498734gkb.dat”是相同的文件
不幸的是,当我们的分析开始时,感染链上的进一步链接被删除,从而阻止了对任何潜在的最终有效负载的进一步分析。
结论
尽管在 FortiGuard 实验室分析之前无法获得最终的有效负载,但该投放器进行了一个有趣的案例研究,并提供了一个值得关注的主题。
IOCs
基于文件的 IOC:
基于网络的 IOC:
转载来源:https://www.fortinet.com/blog/threat-research/new-midgedropper-variant
图片来源网络侵权可联系删除