MSI 包通过 Windows Installer 的 CustomAction 功能来执行恶意代码。CustomAction 允许在安装过程中的特定阶段执行自定义的操作,这通常被攻击者利用来执行恶意代码。下面是详细的底层原理解释:

MSI 包通过 Windows Installer 的 CustomAction 功能来执行恶意代码。CustomAction 允许在安装过程中的特定阶段执行自定义的操作,这通常被攻击者利用来执行恶意代码。下面是详细的底层原理解释:

1. MSI 包与 CustomAction

  • MSI (Microsoft Installer) 包是用于软件安装的标准格式。它通常包含应用程序的安装文件和其他资源。

    MSI (Microsoft Installer) 是一种标准的文件格式和安装技术,用于在 Windows 操作系统上安装、维护和卸载应用程序。MSI 包的底层原理包括它的结构、工作流程以及如何与 Windows 安装服务交互。

    MSI 包的结构

    MSI 包(文件扩展名为 .msi)是一个数据库文件,包含多个表格和资源,用于描述应用程序的安装过程。主要的结构组件如下:

    1. 数据库表格:

      • File 表: 包含所有要安装的文件的信息,包括文件名、文件路径等。
      • Component 表: 定义了文件、注册表项或其他安装元素的组件。
      • Feature 表: 定义了应用程序中的功能(如不同模块或部分)。
      • Directory 表: 描述安装过程中使用的目标文件夹和路径。
      • CustomAction 表: 定义自定义操作,这些操作在安装过程中可以执行脚本或程序,通常用于执行特定的操作(如配置系统、解压文件等)。
      • InstallExecuteSequence 和 InstallUISequence 表: 定义安装过程的执行顺序,确保安装、卸载、升级等操作的正确顺序。
    2. 安装资源:

      • 文件资源: 包括所有实际的应用程序文件,通常在 MSI 包的 File 表中列出。
      • 注册表设置: 包含在 MSI 包内的注册表项,通常用于配置应用程序。
      • 自定义操作(Custom Actions): 用于执行定制的脚本或程序,在安装过程中可以启动其他操作(例如调用外部脚本、执行 DLL)。

    工作流程与执行原理

    MSI 包的安装过程是通过 Windows Installer 服务msiexec.exe)来管理的,具体工作原理如下:

    1. 启动安装:

      • 用户或系统通过执行 msiexec.exe 来启动 MSI 安装过程,命令行参数可以指定安装包的位置、安装模式(如静默安装、图形界面安装)等。
      • Windows Installer 会解析 MSI 文件,读取其中的表格内容并按顺序执行相应的操作。
    2. 提取文件:

      • 安装程序会将 MSI 包中的文件提取到目标目录,通常是通过 File 表中定义的路径和文件信息。
      • 文件安装过程中,可能还会处理文件的版本控制、权限设置等。
    3. 执行自定义操作:

      • CustomAction 表定义的自定义操作可以在安装过程中执行。常见的自定义操作包括执行批处理脚本、运行外部应用程序、修改注册表、设置环境变量等。
      • 自定义操作可以根据安装过程的进度分为不同的阶段:安装前、安装中、安装后等。
    4. 注册表和配置:

      • MSI 包通常会通过 Registry 或 Component 表设置应用程序所需的注册表项,确保应用程序能够正确运行。
      • 这些设置可能包括安装目录路径、依赖库路径、用户配置文件等。
    5. 验证与回滚:

      • 在安装过程中,Windows Installer 会进行完整性检查,确保安装过程中的文件和设置都是正确的。
      • 如果某个步骤失败,Windows Installer 会根据预定义的回滚机制恢复系统到安装前的状态,确保系统的一致性和稳定性。
    6. 卸载与维护:

      • MSI 包不仅用于安装,还提供卸载功能。Windows Installer 会记录已安装应用的所有信息(如安装的文件、注册表项等),以便在卸载时能够恢复系统到原始状态。
      • 通过 msiexec 命令可以执行卸载、修复或更新操作。

    MSI 包的安全性与攻击利用

    尽管 MSI 包是一种强大的安装工具,但它也有潜在的安全隐患:

    • 自定义操作的恶意利用: 攻击者可能会通过自定义操作注入恶意脚本、病毒或木马程序。例如,恶意的 CustomAction 可以执行恶意代码或将恶意 DLL 文件加载到系统中。
    • 代码注入: 攻击者可能通过修改 MSI 包的某些表(如 File 或 CustomAction 表)来使安装过程加载恶意组件或执行未授权的操作。
    • DLL 劫持: 如果 MSI 包配置不当,恶意 DLL 可能会被安装到系统的关键位置,进一步导致系统被攻陷。

    总结

    MSI 包的底层原理依赖于其数据库结构,通过表格存储安装文件、组件、配置和操作指令。安装过程由 Windows Installer 服务管理,通常包括文件提取、注册表修改、文件配置和执行自定义操作。尽管 MSI 包是一种强大且灵活的安装方式,但也可以被恶意利用进行攻击。

  • CustomAction 是 Windows Installer 提供的一种机制,允许在安装过程中执行自定义脚本或程序代码。攻击者通过利用这一机制来执行恶意操作。

    CustomAction 是 Windows Installer 提供的一种机制,允许在安装过程中执行自定义脚本或程序代码。这一机制通常用于执行特定的配置、操作或动态任务。然而,这个特性也可能被恶意软件利用来执行恶意操作,影响系统的安全性。下面我们来探讨 CustomAction 的底层原理,以及它可能带来的安全隐患。

    1. CustomAction 的底层原理

    CustomAction 是 Windows Installer 包(MSI 文件)中的一项功能,它允许在安装过程中的特定步骤执行自定义操作。它的工作流程通常如下:

    • 定义阶段: 在 MSI 包的构建过程中,开发者可以通过安装程序创建自定义操作。自定义操作可以是:

      • 执行脚本(如批处理文件、PowerShell 脚本等)。
      • 运行外部程序(如 .exe 文件)。
      • 调用 DLL 函数或 COM 组件。
    • 执行阶段: 在实际安装过程中,CustomAction 会按照安装顺序表(InstallExecuteSequenceInstallUISequence)中的位置执行。可以选择在安装前、安装中或安装后执行。

    • 执行方式: CustomAction 可以以多种方式执行:

      • 同步执行: 安装程序会等待自定义操作完成后再继续执行安装过程。
      • 异步执行: 自定义操作在后台运行,安装过程不必等待其完成。
    • 自定义操作的类型:

      • 执行脚本: 通过执行 .bat.cmd 或 .ps1 等脚本来自动化某些任务。
      • 调用 DLL 或 COM 组件: 通过调用 Windows 系统库或第三方组件的功能,进行更多自定义的操作。
      • 执行外部程序: 可以启动其他独立的程序来处理某些操作,例如配置系统、解压文件或执行特定任务。

    2. CustomAction 安全隐患与攻击利用

    虽然 CustomAction 是一个强大的工具,用于扩展和定制安装过程,但它也可能被恶意利用来进行攻击。具体的安全风险包括:

    2.1 恶意脚本执行

    攻击者可能会通过 CustomAction 注入恶意脚本(如批处理文件、PowerShell 脚本等),并在安装过程中执行这些脚本。这些脚本可能执行以下恶意操作:

    • 下载并执行恶意软件: 通过脚本下载并执行病毒、木马等恶意程序。
    • 修改系统设置: 恶意脚本可以修改系统配置、禁用安全功能、删除重要文件等。
    • 窃取用户信息: 通过脚本执行系统命令或网络请求,窃取用户的敏感信息(如凭据、文件)。

    2.2 DLL 劫持

    攻击者可能通过 CustomAction 调用恶意 DLL 文件,利用 Windows 的 DLL 加载机制执行恶意代码。通过在系统路径中放置一个恶意 DLL 文件,攻击者可以诱使安装程序加载这个 DLL,并执行其中的恶意代码。这种攻击方式通常称为 DLL 劫持

    2.3 利用 COM 组件

    Windows Installer 允许通过 CustomAction 调用 COM 组件,攻击者可以通过这种方式利用已注册的恶意 COM 对象执行操作。通过伪造和注册恶意 COM 组件,攻击者能够在安装过程中执行特定的恶意操作,如远程执行代码或删除文件。

    2.4 未验证的外部程序执行

    如果安装程序配置不当,攻击者可能利用 CustomAction 启动外部恶意程序。例如,攻击者可以将恶意程序作为外部执行文件并通过 CustomAction 运行它,这个程序可能试图绕过安全机制或感染其他系统。

    2.5 滥用权限

    CustomAction 在执行时通常具有安装程序的权限,这些权限可能包括管理员权限或系统级权限。攻击者可以通过精心设计的 CustomAction 来获取更高的权限,进一步控制目标系统。

    3. 防止 CustomAction 被滥用的措施

    为了避免 CustomAction 被滥用,采取适当的安全措施是非常重要的。以下是几种常见的防范方法:

    • 验证 MSI 文件来源: 仅使用来自可信来源的 MSI 包,并避免下载和运行未知或不受信任的安装程序。
    • 签名和验证: 通过对 MSI 包进行数字签名,确保其未被篡改。操作系统和防病毒软件可以使用签名来验证 MSI 文件的完整性。
    • 限制自定义操作: 尽量避免使用 CustomAction 来执行敏感操作,尤其是在生产环境中。使用它时,确保自定义操作的代码安全并经过严格审核。
    • 使用防病毒软件: 部署并保持更新的防病毒软件,帮助检测和阻止恶意的 MSI 包或自定义操作。
    • 最低权限原则: 在安装过程中限制 CustomAction 执行的权限,避免给予过高的权限。

    4. 总结

    CustomAction 是 Windows Installer 的强大功能,但如果不加以防范,它也可能成为攻击者利用的一个漏洞。攻击者可以通过注入恶意脚本、DLL 劫持或调用恶意程序来进行攻击。因此,了解其工作原理并采取适当的安全措施对防止潜在的安全风险至关重要。

2. 硬编码密码和解密

  • 在该攻击流程中,恶意 MSI 包可能包含一个硬编码的密码(通常是静态的字符串或密钥)。这个密码用来解密某些加密的文件(例如 DLL 文件、PNG 图像等)。

    在攻击过程中,恶意 MSI 包包含一个硬编码的密码并用于解密某些加密的文件(如 DLL 文件、PNG 图像等)是一个常见的恶意行为。这类攻击利用了 MSI 包的 CustomAction 功能,结合加密技术,使恶意代码在用户的系统上静默运行。下面将详细描述其底层原理及攻击流程。

    1. 攻击流程概述

    恶意 MSI 包通常会经过以下步骤来执行攻击:

    1. 恶意 MSI 包的生成: 攻击者创建一个恶意的 MSI 文件,利用 CustomAction 插入恶意代码。这个 MSI 文件通常被伪装成正常的安装包,如软件更新或工具的安装文件。

    2. 硬编码密码: 在这个 MSI 文件中,攻击者硬编码一个密码(或密钥)。这个密码一般是静态的,攻击者设计其算法使得它很难被发现。

    3. 加密的文件: 恶意 MSI 包中可能包含被加密的文件,这些文件可能是 DLL 文件、可执行文件或其他有害资源(如 PNG 图像),这些加密的文件本身通常无法直接执行或使用,需要密码解密后才能发挥恶意作用。

    4. 自定义操作(CustomAction): 在安装过程中的某个步骤,CustomAction 将会使用硬编码的密码对加密文件进行解密。解密后的文件可能是恶意的 DLL、EXE 文件或其他类型的恶意软件。

    5. 解密并执行: CustomAction 执行解密操作后,可能通过 Windows 的 DLL 注入技术或者直接执行解密出来的恶意文件,进一步进行攻击。

    2. 底层技术分析

    2.1 硬编码密码的使用

    硬编码密码是攻击者为解密加密文件所预设的静态字符串或密钥。攻击者通常将这个密码放入 MSI 安装包中,确保在安装过程中可以用这个密码对加密内容进行解密。攻击者选择使用硬编码密码的原因是它简化了加密/解密流程,并且降低了实现难度,但这也意味着密码一旦被提取出来,攻击者的加密保护就失效。

    2.2 加密文件的存储和执行

    恶意 MSI 包中的加密文件通常不会直接暴露给用户,而是作为隐藏内容或嵌入式资源存储在 MSI 包内。这些文件通过加密算法(如 AES、RC4 或自定义加密算法)进行加密,只有通过硬编码密码才能正确解密。常见的加密文件包括:

    • 恶意 DLL 文件: 这些文件可能包含恶意代码,当解密后加载到系统中时,它们可能会执行如键盘记录、网络攻击或信息窃取等操作。
    • 恶意可执行文件(EXE): 加密的 EXE 文件在被解密后会执行恶意程序,可能会被用于安装病毒、木马或勒索软件。
    • 恶意图片(如 PNG): 恶意代码可能被隐藏在图片文件中,通过特定的技术(如文件隐写)实现。当图片被解密时,隐藏的恶意代码也会被释放。

    2.3 CustomAction 中的解密过程

    在 MSI 安装包中,CustomAction 会触发解密过程。这一过程通常包括以下几个步骤:

    • 提取硬编码密码: 安装程序会从 MSI 包的资源中提取硬编码的密码。
    • 解密文件: 使用该密码解密预先加密的恶意文件。常见的解密操作包括使用对称加密算法(如 AES)或流加密算法(如 RC4)来恢复原始文件。
    • 文件操作: 解密后的文件可能会被保存到磁盘某个位置,或直接加载到内存中。
    • 执行恶意操作: 解密后得到的文件可以被直接执行,例如通过调用 CreateProcess 启动恶意 EXE 文件,或通过 LoadLibrary 加载恶意 DLL 文件。

    2.4 执行恶意代码

    一旦恶意文件被解密并成功执行,攻击者可以利用这些恶意文件执行一系列的恶意操作。例如:

    • 远程控制: 恶意软件可能建立与攻击者的远程连接,允许远程控制受害者的计算机。
    • 信息窃取: 恶意程序可以在受害者计算机上窃取敏感信息,如用户凭据、银行账户信息等。
    • 病毒传播: 恶意程序还可以作为病毒,在网络中传播,感染更多的计算机。

    3. 防御措施

    为防止此类攻击,可以采取以下防御措施:

    1. 验证 MSI 文件来源: 不要从不信任的来源下载和运行 MSI 安装包。使用数字签名验证安装包的来源和完整性。

    2. 检测加密文件: 防病毒软件和安全检测工具可以扫描 MSI 包中的加密文件,检测是否存在可疑的加密和解密行为。

    3. 监控和阻止 CustomAction 的恶意行为: 安装过程中使用的 CustomAction 可以被监控,防止恶意的解密和执行操作。对安装过程中的脚本、DLL 加载和进程执行进行审计。

    4. 限制权限: 最小化 MSI 安装包执行时的权限,避免授予安装程序过高的系统权限,减少攻击者通过 MSI 包进行系统篡改的可能性。

    5. 使用沙箱技术: 在隔离环境中执行 MSI 包,防止恶意行为影响到主系统。

    4. 总结

    恶意 MSI 包利用硬编码密码解密恶意文件的攻击流程涉及到自定义操作(CustomAction)与加密技术的结合,通过密码解密隐藏的恶意文件并执行它们。攻击者通过这种方式在目标系统上植入恶意代码,窃取信息或执行其他恶意操作。为了防范此类攻击,用户应注意 MSI 包的来源,并采取适当的安全防护措施,如使用防病毒软件、数字签名和权限控制等。

  • 解密的 DLL 文件(例如 libcef.dll)可能包含了恶意代码,通常是木马程序或者后门工具,利用解密后的 DLL 来加载并执行恶意负载。

    当提到解密后的 DLL 文件(如 libcef.dll)包含恶意代码时,攻击者通常利用此文件在受害系统中植入木马程序、后门工具或其他形式的恶意负载。其底层原理可以分为几个关键步骤:如何通过解密获得恶意 DLL 文件,如何通过 DLL 加载执行恶意负载,及如何利用后门维持对系统的控制。

    1. 恶意 DLL 文件的生成与加密

    恶意 DLL 文件通常包含恶意程序代码,如木马、后门程序、勒索软件等。这些恶意程序代码经过加密处理后嵌入到恶意安装包中。攻击者通常使用加密技术来保护恶意代码不被检测或立即发现,从而增加攻击的隐蔽性。

    加密过程:

    • 加密算法: 攻击者通常会使用对称加密算法(如 AES、RC4)或非对称加密算法来加密恶意 DLL 文件。加密后,这些 DLL 文件变得无法直接被执行,只有通过正确的解密过程,恶意代码才能被恢复并执行。
    • 硬编码的解密密钥: 恶意 MSI 或其他安装包通常会硬编码解密密钥,攻击者将密钥嵌入到安装程序中或 CustomAction 中。通过该密钥,安装程序能够在安装过程中对加密的 DLL 文件进行解密。

    2. 解密过程与 DLL 加载

    解密过程:

    • CustomAction 解密: 在安装程序中,CustomAction 脚本会被触发,用来解密加密的 DLL 文件。通常,CustomAction 会提取硬编码的解密密钥,并通过某种加密算法(如 AES)对 DLL 文件进行解密。
    • 动态解密: 解密后的 DLL 文件可能被直接存储在磁盘上的某个临时位置,或加载到内存中。此时,恶意 DLL 文件恢复了原始的恶意功能。

    DLL 加载:

    • 动态加载 DLL 文件: 一旦解密完成,安装程序通常会通过 LoadLibrary 或 CreateProcess 等 Windows API 来加载解密后的 DLL 文件。LoadLibrary 函数用于将 DLL 文件加载到进程的内存空间中,并执行其初始化函数(如 DllMain)。
    • 恶意代码执行: 被加载的 DLL 文件通常包含恶意代码,这些代码会在 DLL 加载时自动执行。例如,恶意 DLL 可能会注入到已有进程的地址空间,执行键盘记录、捕获屏幕截图、进行网络监听等操作。

    3. 木马或后门功能的实现

    木马程序:

    • 远程控制: 恶意 DLL 文件常常会实现一个木马程序,这样攻击者可以通过网络与受害者计算机进行远程交互。攻击者能够执行任意命令、窃取数据、获取用户凭据,甚至利用计算机资源来进行 DDoS 攻击。
    • 隐蔽性: 木马程序通过 DLL 注入或 DLL 劫持技术,隐藏在合法进程中,避免被用户发现。攻击者可能会让木马运行在后台,避免明显的外部行为,降低被安全软件检测的风险。

    后门工具:

    • 维持持久性: 恶意 DLL 可以实现持久性机制,即使受害者重启计算机后,恶意负载依然能够重新加载并继续执行。后门程序通常会修改注册表、添加计划任务,或者通过其他方式确保在系统重启后继续运行。
    • 信息窃取: 后门工具可以监控用户行为、窃取敏感信息,如用户名、密码、银行账户信息等。恶意代码可以偷偷地向攻击者的服务器发送这些信息,甚至通过捕获屏幕截图或记录键盘输入来获取更多数据。

    4. 后门的维护与拓展

    自我更新:

    • 通过网络更新: 恶意 DLL 文件通常会内置一个更新机制,使得木马或后门可以与远程服务器进行通信,并从中下载更新版本的恶意代码。这样,攻击者可以更新恶意负载,以躲避安全软件的检测。
    • 多阶段攻击: 恶意 DLL 可以在解密后不仅执行初步的攻击,还可以下载额外的恶意组件,例如勒索软件、病毒或更复杂的木马程序。这种多阶段攻击通过逐步提升攻击的复杂性和隐蔽性来增加成功率。

    控制与监控:

    • 反沙箱技术: 恶意代码通常具有反沙箱机制,可以检测是否在虚拟机或沙箱环境中执行。如果检测到沙箱环境,恶意 DLL 可能会选择不执行恶意代码,或者以不同的方式运行,以避免被分析。
    • 自我隐藏: 恶意 DLL 还可能通过修改系统设置或系统文件,使其难以被检测。例如,它可能通过修改任务管理器、隐藏文件、注入到其他进程中来隐藏自己的存在。

    5. 防御与检测

    防御措施:

    • 完整性检查: 安全软件应能够检查文件的完整性,对比文件哈希值或通过行为分析检测是否存在异常的解密操作或 DLL 加载行为。
    • 动态分析: 在安装过程中,可以通过动态行为分析工具来监控解密后的 DLL 文件是否存在可疑行为,例如自我复制、网络通信或其他恶意活动。
    • 网络流量监控: 检测系统是否向外部恶意 IP 地址发送数据,尤其是加密的流量或数据流,可以帮助识别木马程序或后门工具的活动。

    安全策略:

    • 最小权限原则: 安装程序和应用程序应始终以最小权限运行,限制恶意代码的潜在操作范围。通过设置适当的权限,可以减少恶意 DLL 文件执行的危害。
    • 用户教育与意识: 用户应避免下载和安装来自不明来源的软件,尤其是通过电子邮件附件或可疑链接传播的 MSI 或 EXE 文件。

    6. 总结

    恶意 DLL 文件(如 libcef.dll)通过加密后嵌入到安装包中,安装程序在运行时通过 CustomAction 解密这些文件并加载到内存中。解密后的 DLL 文件通常包含恶意负载,如木马程序或后门工具,这些负载能够在受害系统上执行恶意操作,包括远程控制、信息窃取和持续性攻击。为了防范这类攻击,用户和组织应采取必要的安全防护措施,如完整性检查、动态行为监测、权限管理和用户教育等。

3. 恶意软件组件的提取

  • 在安装过程中,恶意 MSI 包可能包含多个嵌入的恶意组件,这些组件通常被加密或隐藏以避免被检测。
  • 加载器(例如 libcef.dll 可能是一个恶意的 DLL 文件,它在解密后被加载到系统中。该 DLL 文件可以执行进一步的恶意活动,如通过 API 调用操控系统或网络。
  • PNG 文件的编码恶意负载:有时,恶意软件会将恶意负载(例如二进制数据或脚本)编码到看似无害的文件中,如 PNG 图像。PNG 图像本身被用作容器,将恶意代码隐藏在图像数据的非可见部分(如元数据、扩展数据块)中。

    PNG 文件的编码恶意负载通常利用了文件格式的特性,使恶意代码能够嵌入到图像的非可见部分中。理解这一过程需要深入了解 PNG 格式及其各个组成部分,尤其是其中可以嵌入数据的地方。以下是这一过程的底层原理:

    1. PNG 文件结构

    PNG 文件由多个不同类型的“块”(chunk)组成,每个块包含图像数据或与图像相关的元数据。主要的块包括:

    • IHDR 块:包含图像的基本信息,如宽度、高度、色深等。
    • IDAT 块:包含实际的图像数据,经过压缩处理。
    • IEND 块:表示文件的结束。
    • tEXtzTXtiTXt 块:用于存储文本信息,可以包含与图像相关的描述或其他数据。
    • 其他扩展块:用户可以在这些扩展块中嵌入任意数据。

    2. 恶意负载的隐藏

    恶意代码通常不会直接嵌入到图像数据部分(如 IDAT 块中),因为图像数据是压缩的,并且经过解码后可能会被拒绝或被清除。相反,恶意负载通常隐藏在以下几种地方:

    • 元数据(tEXt、iTXt 块等):PNG 文件允许用户将任意文本信息存储在特定的块中。攻击者可以将恶意脚本(如 JavaScript 或其他二进制代码)嵌入到这些文本块中,通常利用不安全的图像处理程序或浏览器来执行这些脚本。
    • 扩展数据块(私有块):一些 PNG 文件使用私有块来存储额外的数据,这些数据不一定是图像处理程序需要的。恶意软件可以利用这些块隐藏代码或二进制负载。通过设计特定的扩展块,攻击者可以将二进制数据(如恶意代码)嵌入图像中,并通过某些漏洞(如图像解码器)触发执行。

    3. 代码执行的触发

    PNG 文件本身不会直接执行恶意代码,但通过特定的应用程序(如浏览器、图像查看器或其他解析 PNG 格式的工具)加载图像时,攻击者可以利用漏洞来触发代码执行。这些漏洞可能存在于:

    • 图像解析库:某些图像解析库在处理 PNG 文件时可能存在漏洞,例如缓冲区溢出、内存错误等。攻击者可以精心构造 PNG 文件,使得当图像解析时,嵌入的恶意代码被加载并执行。
    • Web 应用程序:在浏览器中打开 PNG 图像时,嵌入的恶意脚本或负载可能会通过图像查看器或 Web 浏览器的 JavaScript 引擎被触发,造成跨站脚本(XSS)攻击或其他恶意操作。

    4. 防御措施

    为了防范这种攻击,用户和开发者可以采取以下防御措施:

    • 安全图像处理:确保使用经过验证和更新的图像处理库,修复已知的漏洞。
    • 限制元数据的处理:避免在不受信任的环境中处理含有可疑元数据的 PNG 图像,或对图像的元数据进行严格的清理。
    • 沙箱环境:在浏览器和应用程序中使用沙箱技术,限制恶意代码的执行权限。
    • 输入验证和编码:对图像文件中的所有数据进行严格验证和消毒,防止恶意脚本的注入。

    总结来说,PNG 文件的编码恶意负载依赖于文件格式的灵活性,使得攻击者能够将恶意代码嵌入到图像的元数据、扩展块等不明显的部分,并通过图像解析过程中的漏洞触发执行。因此,确保图像解析工具的安全性并加强数据验证是防止这类攻击的关键。

4. 加载恶意负载

  • PNG 文件:虽然 PNG 文件通常是图片格式,但它们也可以通过特殊技术进行编码,隐藏恶意负载。在安装过程中,恶意 MSI 包通过提取这些编码的 PNG 文件,将其解码,并将其作为恶意组件的一部分加载到系统中。
  • 这些恶意负载通常会与其他恶意组件(如下载器、键盘记录器或其他后门程序)协作,进一步控制受感染的系统。

5. 执行恶意代码

  • 解密后的 DLL 文件 可能会被安装到系统中,并通过 CustomAction 被加载到运行环境中。该恶意代码可能会进行以下活动:
    • 劫持系统进程。
    • 向攻击者的远程服务器发送敏感数据。
    • 在后台执行更多恶意操作,如安装其他恶意软件、攻击网络等。

总结

该过程的底层原理可以概括为以下几点:

  • 利用 MSI 包 和 CustomAction 执行恶意操作。
  • 使用硬编码密码 解密恶意 DLL 文件,并将其加载到系统中。
  • 恶意软件通过解密的文件提取并执行恶意负载,通常包括 PNG 文件 中隐藏的编码数据。
  • 恶意 DLL 可能会在安装后执行,进一步操控系统或进行数据泄露等恶意行为。

这种攻击方式利用了常规软件安装过程中的信任机制,将恶意代码隐藏在看似无害的文件中,利用安装过程中的自定义操作进行触发执行。


 

posted @ 2025-02-05 04:58  suv789  阅读(164)  评论(0)    收藏  举报