ATTCK v10版本战术介绍—持久化(二)

news2024/12/27 12:45:50

一、引言

在前几期文章中我们介绍了ATT&CK中侦察、资源开发、初始访问、执行战术、持久化战术(一)知识,本期我们为大家介绍ATT&CK 14项战术中持久化战术(二)涉及的6项子技术,后续会陆续介绍其他战术内容,敬请关注。

二、ATT&CK v10简介

MITRE ATT&CK 是一个全球可访问的基于现实世界观察的对手战术和技术知识库。ATT&CK 知识库被用作在私营部门、政府以及网络安全产品和服务社区中开发特定威胁模型和方法的基础。

ATT&CK v10更新了适用于企业、移动设备和 ICS(工业控制系统)框架的技术、组和软件。最大的变化是在企业 ATT&CK 中增加了一组新的数据源和数据组件对象,这是对 ATT&CK v9 中发布的 ATT&CK 数据源名称更改的补充。在 ATT&CK v10 中更新的内容汇总了有关数据源的这些信息,同时将它们构建为新的 ATT&CK 数据源对象。

ATT&CK v10 for Enterprise包含14个战术、188个技术、379个子技术、129个组织、638个软件,一共包括38类数据源。数据源对象具有数据源的名称以及关键细节和元数据,包括 ID、定义、可以收集它的位置(收集层)、可以在什么平台上找到它,突出显示构成数据源的相关值/属性的组件。ATT&CK v10 中的数据组件分析每个亮点映射到各种(子)技术,这些技术可以用该特定数据检测到。在个别(子)技术上,数据源和组件已从页面顶部的元数据框重新定位,以与检测内容并置。这些数据源可用于 Enterprise ATT&CK 的所有平台,包括最新添加的涵盖映射到 PRE 平台技术的开源情报 (OSINT) 相关数据源。

ATT&CK战术全景图(红框为持久化战术)

三、持久化战术

3.1 概述

持久化包括攻击者用来在重新启动、更改凭据和其他中断期间保持对系统的访问的技术,例如替换或劫持合法代码或添加启动代码。

持久化战术包括19种技术,上期给大家介绍了前6项技术,本期为大家逐一介绍中间6项技术。

3.2 创建账户(T1136)

攻击者可以创建一个帐户以维持对受害者系统的访问。攻击者可以在本地系统或云租户内创建帐户,在云环境中,攻击者可能会创建只能访问特定服务的帐户,减少被检测的风险。

创建账户技术包含3项子技术,介绍如下:

3.2.1 本地账户(T1136.001)

攻击者可以创建一个本地帐户,以维持对受害者系统的访问。本地帐户可用于建立不需要在系统上部署持久性远程访问工具的辅助凭据访问。

3.2.2 域账户(T1136.002)

攻击者可以创建一个域帐户来保持对受害系统的访问,域帐户可以涵盖用户、管理员和服务帐户。

3.2.3 云账户(T1136.003)

攻击者可以创建一个云帐户来保持对受害者系统的访问,创建仅有权访问特定云服务的帐户,这可以减少被检测的风险。

3.2.4 缓解措施

ID

缓解措施

描述

M1032

多因素认证

对用户和特权帐户使用多重身份验证。

M1030

网络分割

配置访问控制和防火墙以限制对域控制器和系统的访问。

M1028

操作系统配置

通过确保关键服务器的正确安全配置来保护域控制器。

M1026

特权账户管理

不要用域管理员帐户进行日常操作,可能会增加账户泄露风险。

3.2.5 检测

ID

数据源

数据组件

检测

DS0017

命令

命令执行

监控与账户创建相关联操作的执行命令和参数。

DS0009

进程

进程创建

监控与账户创建相关联的新建的进程。

DS0002

用户账号

用户账号修改

监控新建的用户帐户,收集有关在网络或Windows事件ID为4720中创建帐户的数据。

3.3 创建或修改系统进程(T1543)

攻击者可以创建或修改系统级进程,通过重复执行恶意有效载荷保持持久性。当操作系统启动时,它们可以启动执行后台系统功能的进程。在Windows和Linux上,这些系统进程称为服务。

攻击者可以安装新的服务、守护进程或代理程序,这些服务、守护进程或代理程序可以配置为在启动时或定时执行,以建立持久性。同样,攻击者可以修改现有的服务、守护进程或代理以达到相同的效果。

创建或修改系统进程技术包含4项子技术,介绍如下:

3.3.1 启动代理(T1543.001)

攻击者可以创建或修改启动代理,通过重复执行恶意有效载荷以保持持久性。通常安装启动代理来执行程序更新、在登录时启动用户指定的程序或执行其他任务。

启动代理名称可以通过使用相关操作系统或合法软件中的名称来伪装,启动代理使用用户级别权限创建并执行。

3.3.2 Systemd服务(T1543.002)

攻击者可以创建或修改systemd服务,以重复执行恶意有效载荷以保持持久性。Systemd服务管理器通常用于管理后台守护进程和其他系统资源。Systemd利用服务单元配置文件来控制服务如何启动以及在什么条件下启动。

3.3.3 Windows服务(T1543.003)

攻击者可以创建或修改Windows服务,通过重复执行恶意有效载荷保持持久性。当Windows启动时,它会启动执行服务程序或应用程序。Windows注册表中存储了Windows服务配置信息,包括服务可执行或恢复程序/命令的文件路径。

攻击者可以安装新服务或修改现有服务以在启动时执行, 可以使用系统程序设置、修改服务配置、修改注册表或者直接与Windows API交互方式。

攻击者可使用服务来安装和执行恶意驱动程序。攻击者会利用这些驱动程序作为Rootkit来隐藏系统上恶意活动的存在。攻击者还可以将已签名但易受攻击的驱动程序加载到受损的计算机上实现特权升级。

3.3.4 启动守护进程(T1543.004)

攻击者可以创建或修改启动守护进程,以执行恶意有效载荷。启动守护进程通常用于提供共享资源,软件更新或执行自动化任务的访问。

攻击者可以通过使用参数设置在启动时执行启动守护进程,并将程序参数设置为恶意可执行路径。守护程序名称可以伪装成操作系统或合法软件名称来规避检测风险。

3.3.5 缓解措施

ID

缓解措施

描述

M1047

审计

使用能够检测系统的特权和服务滥用的审计工具。

M1040

预防端点行为

在Windows10上,启用攻击面减少(ASR)规则以防止应用程序将易受攻击的驱动程序写入系统。在Windows10和11上,启用易受攻击的驱动程序阻止列表,以加固第三方开发的驱动程序。

M1045

代码签名

强制注册和执行仅合法签名的服务驱动程序。

M1033

限制软件安装

将软件安装限制在受信任的存储库中,注意孤立软件包。

M1028

操作系统配置

启用驱动程序签名以限制安装未签名的驱动程序。

M1022

限制文件和目录权限

限制对系统级进程文件的读写访问权限,仅授权需要管理系统服务的合法特权用户访问。

M1018

用户帐户管理

限制用户帐户和组的权限,只有授权的管理员才能进行系统级的流程更改和服务配置。

3.3.6 检测

ID

数据源

数据组件

检测

DS0017

命令

命令执行

监控来自已知服务的异常过程调用命令。

DS0027

驱动程序

驱动程序负载

监控新的服务驱动程序(例如:SYSMON事件ID 6),这些驱动程序不是已知的软件更新或补丁。

DS0022

文件

创建文件

监控新创建的文件。

文件修改

监控与系统级进程关联的文件的更改。

DS0009

进程

OS API执行

监控可能创建或修改系统级进程的API调用。

进程创建

监控新创建的进程。

DS0019

服务

服务创建

监控新建的服务。

服务修改

监控未知的服务更改。

DS0024

Windows注册表

Windows注册表项创建

监控新建的Windows注册表项。

Windows注册表项修改

监控对Windows注册表项的修改。

3.4 事件触发执行(T1546)

攻击者可以使用基于特定事件触发执行的系统机制来建立持久性或提升特权。操作系统具有监控如登录或其他用户活动(例如运行特定应用程序/二进制文件)等事件的方法。

攻击者利用这些机制,通过反复执行恶意代码来保持持久化。在获得受害者系统的访问权限之后,攻击者可能会创建或修改事件触发器,以执行恶意代码。

事件触发执行技术包含16项子技术,介绍如下:

3.4.1 更改默认文件关联(T1546.001)

攻击者可以通过执行由文件类型关联触发的恶意代码来建立持久性。打开文件时,将检查文件关联程序,文件关联存储在Windows注册表中,可以由具有注册表访问权限的用户、管理员或程序编辑,也可以由管理员使用内置assoc程序编辑。应用程序可以修改给定文件扩展名的文件关联,以便调用任意程序。

3.4.2 屏幕保护程序(T1546.002)

屏幕保护程序是在可配置的用户无效时间后执行的程序,由带有.scr文件扩展名的便携式可执行文件(PE)文件组成。屏幕保护程序设置存储在注册表中,可以操纵以实现持久性:

scrnsave.exe-设置为恶意PE路径

屏幕屏蔽 - 设置为“ 1”以启用屏幕保护程序

ScreenSaverissecure-设置为“ 0”以不需要密码来解锁

ScreenSaveTimeOut - 在执行屏幕保护程序之前设置用户无效超时

攻击者可以使用屏幕保护程序设置来通过将屏幕保护程序设置为在用户不活动的一定时间范围后运行恶意软件来保持持久性。

3.4.3 WMI事件订阅(T1546.003)

攻击者可以使用WMI的功能订阅事件并在事件发生时执行任意代码,从而在系统上提供持久性。攻击者也可以将WMI脚本编译为Windows管理对象文件,可用于创建恶意订阅。

3.4.4 Unix Shell配置修改(T1546.004)

攻击者可通过执行由用户的shell触发的恶意命令来建立持久性,也可通过将命令插入shell自动执行的脚本来建立持久性。

3.4.5 Trap(T1546.005)

Trap命令允许程序和shell指定将在接收中断信号时执行的命令,例如终止和处理常见的键盘中断,如ctrl+c和ctrl+d。攻击者可以使用Trap来注册当shell遇到特定中断时要执行的代码来建立持久性。

3.4.6 LC_LOAD_DYLIB添加(T1546.006)

攻击者可以通过执行恶意二进制文件来建立持久性。MACH-O二进制文件中的LC_LOAD_DYLIB标头告诉macOS和OS X在执行期间加载哪些动态库(dylib)。只要对其余字段和依赖项进行调整,就可以将它们临时添加到已编译的二进制文件中。攻击者可以修改mach-O二进制标头,以便在每次执行二进制文件时加载并执行恶意dylib。

3.4.7 Netsh Helper DLL进程注入(T1546.007)

攻击者可以通过执行由Netsh Helper DLL触发的恶意代码来建立持久性。Netsh.exe是一种命令行脚本程序,用于与系统的网络配置进行交互。

3.4.8 辅助功能(T1546.008)

攻击者可以通过执行由辅助功能触发的恶意代码来建立持久性或提升权限。Windows包含可在用户登录之前使用组合键启动的辅助功能。攻击者可以修改这些程序的启动方式,以获得命令提示符或后门,而无需登录系统。攻击者常在注册表中替换辅助功能二进制文件。

两个常见的辅助程序是C:\ Windows \ System32 \ sethc.exe,在按下移位键五次时启动,C:\ Windows \ System32 \ utilman.exe在按下Windows + U键组合时启动。sethc.exe程序通常称为“粘滞键"”,被攻击者利用远程桌面登录屏幕用于未经身份验证的访问。

3.4.9 AppCert DLLs进程注入(T1546.009)

攻击者可以通过执行加载到进程中的AppCert Dll触发的恶意代码来建立持久性或提升特权。

恶意AppCert DLL还可以通过API活动持续触发来提供持久性。

3.4.10 AppInit DLLs进程注入(T1546.010)

攻击者可以通过执行加载到进程中的AppInit Dll触发的恶意代码来建立持久性或提升特权。AppInit_DLL值中指定的动态链接库由user32.dll加载。恶意AppInit Dll也可能通过API活动持续触发来提供持久性。

启用安全启动时,AppInit DLL功能在Windows8及更高版本中被禁用。

3.4.11 应用兼容程序(T1546.011)

攻击者可以通过执行应用兼容程序触发的恶意代码来建立持久性或提升特权。创建应用兼容程序是为了在操作系统代码库随时间变化时允许软件的向后兼容性,充当程序和Windows操作系统之间的缓冲区。

为了保证应用兼容程序的安全,Windows将它们设计为在用户模式下运行,这样它们就不能修改内核,必须具有管理员权限才能安装应用兼容程序。但是,某些兼容程序可用于绕过用户帐户控制(UAC和RedirectEXE),将Dll注入进程(InjectDLL)等,利用这些应用兼容程序可能允许攻击者执行一些恶意行为,例如提升特权,安装后门,禁用windows Defender等防御措施。

3.4.12 映像劫持(T1546.012)

攻击者可以通过执行由映像文件执行选项(IFEO)调试器触发的恶意代码来建立持久性或提升权限。IFEOs使开发人员能够将调试器附加到应用程序。创建进程时,应用程序的IFEO中存在的调试器将被添加到应用程序的名称前面,从而有效地在调试器下启动新进程。

恶意软件还可能使用IFEO通过注册无效的调试器来破坏防御,这些调试器重定向并有效地禁用各种系统和安全应用程序。

3.4.13 PowerShell配置文件(T1546.013)

攻击者可以通过执行PowerShell配置文件触发的恶意代码来建立持久性和提升权限。PowerShell配置文件(profile.ps1)是在PowerShell启动时运行的脚本,可用作自定义用户环境的登录脚本。

攻击者可以修改这些配置文件,包含任意命令、函数、模块或PowerShell驱动器等,当用户打开PowerShell会话时,修改后的脚本将被执行。

3.4.14 事件监视器守护程序Emond(T1546.014)

攻击者可以通过执行事件监视器守护程序(emond)触发的恶意代码来获得持久性和提升特权。Emond是一个启动守护程序,它接受来自各种服务的事件,通过简单的规则引擎运行它们并采取行动。规则文件采用plist格式,并定义要执行的名称、事件类型和操作,包括系统启动,用户身份验证,运行系统命令或发送电子邮件等。

攻击者可能会通过编写规则来利用此服务,以便在发生定义的事件(例如系统启动或用户身份验证)时执行命令。当Emond服务由启动守护程序服务以root权限执行时,攻击者也可以将权限从管理员升级到root。

3.4.15 组件对象模型劫持(T1546.015)

攻击者可以通过执行由对组件对象模型(COM)的劫持引用触发的恶意代码来建立持久性。COM是Windows中的一个系统,通过操作系统启用软件组件之间的交互,对各种COM对象的引用存储在注册表中。

攻击者可以使用COM系统插入恶意代码,这些恶意代码可以通过劫持COM引用和关系来代替合法软件,作为持久性的手段。劫持COM对象需要更改注册表以替换对合法系统组件的引用。

3.4.16 安装程序软件包(T1546.016)

攻击者可以通过使用安装程序来触发恶意代码的执行来建立持久性和提升权限。安装程序包包含操作系统在系统上安装应用程序所需的资源,包括在安装之前以及安装完成之后运行的脚本。开发人员经常使用这些脚本来准备安装环境,检查需求,下载依赖关系,并在安装后删除文件。

攻击者在应用程序中修改了安装程序脚本,以执行恶意代码。用户安装应用程序时,可能需要授予管理权限以允许安装。攻击者可以使用这些脚本执行恶意文件或安装其他恶意组件(如启动守护程序)以提升权限。

3.4.17 检测

ID

数据源

数据组件

检测

DS0025

云服务

云服务修改

监控云资源的创建和修改

DS0017

命令

命令执行

监控执行的命令和参数

DS0022

文件

创建文件

监控新创建的文件。

文件元数据

监控文件的上下文数据,包括名称、内容、用户、权限等信息。

文件修改

监控修改的文件

DS0011

模块

模块加载

通过进程监控DLL加载,查找无法识别或通常未加载到进程中的Dll,监控由于加载恶意DLL的进程导致的异常进程行为。

DS0009

进程

进程创建

Sysinternals Autoruns等工具可用于检测执行触发器的更改及异常进程调用。

DS0024

Windows注册表

Windows注册表项修改

监控对windows注册表项做的修改

DS0005

WMI

WMI创建

监控新建的WMI对象

3.5 利用外部远程服务(T1133)

攻击者可以利用面向外部的远程服务来初始访问或在网络中持久化。Vpn、Citrix和其他访问机制等远程服务允许用户从外部位置连接到内部企业网络资源。Windows远程管理和VNC等服务也可以在外部使用。

访问也可以通过不需要身份验证的公开服务获得。在容器化环境中,这可能包括公开的Docker API、Kubernetes API服务器、kubelet或Web应用程序(如Kubernetes dashboard)。

3.5.1 缓解措施

ID

缓解措施

描述

M1042

禁用或删除功能或程序

禁用或阻止不必要的远程服务。

M1035

限制通过网络访问资源

通过集中管理的集中器(如Vpn和其他托管远程访问系统)限制对远程服务的访问。

M1032

多因素认证

对远程服务帐户使用多因素身份验证,以减轻攻击者利用被盗凭据的能力

M1030

网络分割

通过使用网络代理、网关和防火墙拒绝直接远程访问内部系统。

3.5.2 检测

ID

数据源

数据组件

检测

DS0015

应用日志

应用日志内容

当访问公开的远程服务不需要身份验证时,需监控后续活动,例如公开的API或应用程序的异常外部使用。

DS0028

登录会话

登录会话元数据

收集身份验证日志并分析异常访问,包括异常时间、异常地点等维度。

DS0029

网络流量

网络连接创建

监控新建的网络连接。

网络流量内容

监控未遵循预期协议标准的流量数据包,监控异常进程执行和命令行参数。

未知的网络流量

监控未知硬件设备的网络流量。

3.6 执行流程劫持(T1574)

攻击者可通过劫持操作系统运行程序的方式来执行自己的恶意代码。攻击者可利用这些机制来提升特权或逃避防御,例如应用程序控制或其他执行限制。

攻击者可以通过多种方式劫持执行流程,包括操纵操作系统定位要执行的程序。操作系统定位程序要使用的库也可以被拦截,文件目录或注册表等都可以被恶意篡改。

执行流程劫持技术包含12项子技术,介绍如下:

3.6.1 DLL搜索顺序劫持(T1574.001)

攻击者可通过劫持加载Dll的搜索顺序来执行恶意代码,以建立持久性或提升权限。

攻击者可通过多种方式劫持DLL加载。攻击者可能会在程序将要请求的合法库的位置之前搜索的目录中放置特洛伊木马动态链接库文件,导致windows在受害者程序调用时加载其恶意库。攻击者还可以执行DLL预加载,也称为二进制植入攻击,将一个恶意DLL放在Windows在合法DLL之前搜索的位置,通常这个位置是程序的当前工作目录。当程序在加载DLL之前将其当前目录设置为远程位置时,就会发生远程DLL预加载攻击。攻击者也可通过DLL重定向直接修改搜索顺序。

3.6.2 DLL侧加载(T1574.002)

攻击者可以通过侧加载Dll来执行恶意代码。侧加载利用加载程序使用的DLL搜索顺序,将受害应用程序和恶意载荷彼此定位。攻击者可能使用侧加载掩盖他们在合法、可信的系统或软件进程下执行的动作。用于侧加载载荷的良性可执行文件在执行期间可能不会被标记。攻击者载荷也可以被加密或以其他方式混淆,直到加载到可信进程的内存中为止。

3.6.3 Dylib劫持(T1574.004)

攻击者可以通过在应用程序运行时搜索的路径中放置恶意动态库(dylib)来攻击。动态加载器将尝试根据搜索路径的顺序查找Dylibs。Dylibs的路径可以以@rpath作为前缀,@RPath允许开发人员使用相对路径根据可执行文件的位置指定运行时使用的搜索路径数组。

攻击者可通过在识别的路径中插入带有缺失dylib名称的恶意dylib来执行。Dylib被加载到应用程序的地址空间中,允许恶意dylib继承应用程序的特权级别和资源。

3.6.4 可执行安装程序文件权限弱点(T1574.005)

攻击者可以通过劫持安装程序使用的二进制文件来执行恶意代码。如果二进制文件本身或上级目录权限设置不正确,则可能会被另一个二进制文件覆盖,并由原始进程执行。

在安装过程中,安装程序通常使用%TEMP%目录中的子目录来解压缩Dll、EXEs或其他有效负载等二进制文件。当安装程序创建子目录和文件时,通常不会设置适当的权限来限制写访问,攻击者可以使用此技术将合法二进制文件替换为恶意二进制文件,作为在更高权限级别执行代码的手段。

3.6.5 动态链接器劫持(T1574.006)

攻击者可通过劫持动态链接器加载共享库的环境变量来执行恶意代码。在程序的执行准备阶段,动态链接器从环境变量和文件加载共享库的指定绝对路径,首先加载环境变量中指定的库,优先于具有相同函数名的系统库。这些变量经常被开发人员用来调试二进制文件,而无需重新编译,并在不改变原始库的情况下实现自定义函数。

3.6.6 PATH环境变量的路径拦截(T1574.007)

攻击者可以通过劫持用于加载库的环境变量来执行恶意代码。攻击者可能会将程序放在PATH环境变量存储的目录列表中的历史条目中,然后在Windows通过该路径列表中顺序搜索时将执行该程序,以搜索从脚本或命令行调用的二进制文件。

3.6.7 搜索顺序劫持的路径拦截(T1574.008)

攻击者可通过劫持用于加载其他程序的搜索顺序来执行恶意代码。由于某些程序不使用完整路径调用其他程序,对手可能会将自己的文件放在调用程序所在的目录中,导致操作系统由于调用程序的请求启动其恶意软件。

当攻击者利用Windows搜索未给定路径的程序的顺序时,就会发生搜索顺序劫持。

3.6.8 未引用路径的路径拦截(T1574.009)

攻击者可通过劫持易受攻击的文件路径引用来执行恶意代码。方法是将可执行文件放在路径内的较高级别的目录中,以便Windows选择要启动的恶意可执行文件。

如果定期调用可执行文件,此技术可用于持久性,如果拦截的可执行文件由较高特权进程启动,则可用于特权升级。

3.6.9 服务文件权限弱点(T1574.010)

攻击者可以通过劫持服务使用的二进制文件来执行恶意代码。攻击者可能会利用Windows服务权限中的弱点来替换在服务启动时执行的二进制文件。这些服务进程可以自动执行特定的二进制文件,攻击者可以使用此技术将合法二进制文件替换为恶意二进制文件,作为在更高权限级别执行代码的手段。

3.6.10 服务注册权限弱点(T1574.011)

攻击者可以通过劫持服务使用的注册表项来执行恶意代码,利用服务相关的注册表项的权限中的弱点,从最初指定的可执行文件重定向到他们控制的可执行文件,以便在服务启动时执行恶意代码。Windows将本地服务配置信息存储在HKLM\SYSTEM\CurrentControlSet\Services下的注册表中。存储在服务注册表项下的信息可以通过服务控制器sc等工具来操作以修改服务的执行参数。

如果未正确设置用户和组的权限并允许访问服务的注册表项,则攻击者可能会更改服务的binPath/ImagePath以指向恶意可执行文件。攻击者还可以为其恶意服务添加Parameters键或其他自定义子键,以建立持久性。

3.6.11 COR_PROFILER环境变量劫持(T1574.012)

攻击者可以利用COR_PROFILER环境变量劫持加载.NET CLR的程序的执行流。COR_PROFILER是一个.NET Framework功能,允许开发人员指定要加载到CLR的每个.NET进程中的分析DLL。

攻击者可利用COR_PROFILER来建立持久性,以便在每次调用CLR时在所有.NET进程的上下文中执行恶意DLL。

3.6.12 内核回调注入(T1574.013)

攻击者可能会使用kernelcallbacktable通过将原始回调函数替换为恶意代码来劫持进程的执行流,例如反射代码加载或进程注入到另一个进程中。

被篡改的函数通常使用Windows消息调用。在进程被劫持并执行恶意代码后,kernelcallbacktable也可能被恶意代码的其余部分恢复到原始状态。

3.6.13 缓解措施

ID

缓解措施

描述

M1013

应用开发者指南

在清单文件中包含哈希值,以帮助防止恶意库的侧加载

M1047

审计

通过审计工具检查侧加载漏洞、程序配置文件、脚本、PATH环境变量、服务和快捷方式中的路径拦截弱点,使用绝对路径指定搜索顺序。

卸载软件时清理旧的Windows注册表项,以避免没有关联的合法二进制文件的密钥。

M1040

端点行为防御

通过端点防御来阻止与进程注入或内存篡改相关的某些类型的行为。

M1038

执行预防

通过应用程序控制解决方案,识别并阻止通过劫持执行的潜在恶意软件。

M1022

限制文件和目录权限

设置目录访问控制,以防止在运行应用程序的文件夹和标准库文件夹中的应用程序的搜索路径中写入文件。

M1044

限制库加载

不允许加载远程Dll,启用安全DLL搜索模式

M1024

限制注册表权限

注册表权限控制

M1051

更新软件

定期更新软件以修复DLL侧加载漏洞的补丁。

M1052

用户账户控制

关闭UAC对标准用户的权限提升

M1018

用户账户管理

限制用户帐户和组的权限,以便只有授权管理员才能与服务更改和服务二进制目标路径位置进行交互。

3.6.14 检测

ID

数据源

数据组件

检测

DS0017

命令

命令执行

监控执行的命令和参数,这些命令和参数可能通过劫持操作系统运行程序的方式来执行恶意代码。

DS0022

文件

文件创建

监控新创建的文件。

文件修改

监控用于移动,重命名,更换或修改DLL的文件系统。监控与已知软件,补丁等不相关的过程加载的可疑DLL的变化。

监控对与软件更新无关的.manifest和.Local重定向文件的修改或创建。

DS0011

模块

模块加载

监控加载到一个进程中的DLL并检测具有相同文件名但异常路径的DLL。

DS0009

进程

进程创建

监控新创建的进程

DS0019

服务

服务元数据

监控在软件更新期间发生的二进制文件和服务可执行文件的更改。

DS0024

Windows注册表

Windows注册表修改

监控对windows注册表项所做的更改。

3.7 植入容器镜像(T1525)

攻击者可能会植入带有恶意代码的云或容器镜像,以便在获得对环境的访问权限后建立持久性。与上传恶意软件不同,此技术侧重于攻击者在受害者环境中的注册表中植入镜像。

3.7.1 缓解措施

ID

缓解措施

描述

M1047

审计

定期检查云部署中使用的镜像和容器的完整性,以确保它们未嵌入恶意软件。

M1045

代码签名

要求容器镜像由受信任的源签名。

M1026

特权账户管理

基于最小化授权原则管理容器镜像相关权限。

3.7.2 检测

ID

数据源

数据组件

检测

DS0007

镜像

镜像创建

监控用户与镜像和容器的交互,识别异常添加的镜像和容器。

镜像元数据

定期地基线虚拟机镜像以识别恶意修改或添加。

镜像修改

在容器化的环境中,可以通过监控Docker守护程序日志或Kubernetes审核日志来检测更改。

四、总结

本期主要介绍了持久化战术(二),涉及中间6项技术,下期将给大家介绍持久化战术(三),涉及持久化剩余技术介绍。敬请关注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/386317.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

魔兽世界335 自动加入公会教程

最近遇到新人进游戏不能自动加入公会的问题,论坛找了好久也没有找到解决办法。自己摸索后发现是核心的问题,下面教程开始1.利用GM账号进游戏,分别创建LM、BL角色,利用GM命令创建公会举例 LM角色名字:暴风 BL角色名字&a…

开发手册——一、编程规约_4.OOP规约

这篇文章主要梳理了在java的实际开发过程中的编程规范问题。本篇文章主要借鉴于《阿里巴巴java开发手册终极版》 下面我们一起来看一下吧。 1. 【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成 本,直接用类名来访…

聚观早报 |支付宝与阿里合作推出支付芯;多多视频DAU峰值破1.5亿

今日要闻:支付宝与阿里合作推出支付芯;保时捷中国召回Panamera系列汽车;「多多视频」DAU峰值破1.5亿;苏州立法禁止大数据“杀熟”;特斯拉投资者日首次开幕支付宝与阿里合作推出支付芯 3 月 2 日消息,支付宝…

taobao.item.sku.update( 更新SKU信息 )

¥开放平台免费API必须用户授权 *更新一个sku的数据 *需要更新的sku通过属性properties进行匹配查找 *商品的数量和价格必须大于等于0 *sku记录会更新到指定的num_iid对应的商品中 *num_iid对应的商品必须属于当前的会话用户 公共参数 请求地址: HTTP地址 http://gw.…

【C++修炼之路】23.哈希封装unordered系列

每一个不曾起舞的日子都是对生命的辜负 哈希封装unordered系列前言一.封装的迭代器二.改良后的HashTable.h三.封装的UnorderedSet.h四.封装的UnorderedMap.h五.Test.cpp及测试结果前言 unordered_map、unordered_set与map、set的区别是unoedered系列无序,除此之外功…

MD(消息摘要)、MAC(消息认证码)、数字签名的区别

MD(消息摘要)、MAC(消息认证码)、数字签名的区别 1.MD(消息摘要)-散列算法 摘要是哈希值,我们通过散列算法⽐如MD5算法就可以得到这个哈希值。摘要只是⽤于验证数据完整性和唯⼀性的哈希值,不管原始数据是什么样的&a…

【json代码diff效果展示】vue项目 手动实现高仿github的内容diff效果

文章目录1-1 vue-code-diff业务需求 : 思考: 对比两个json字符串,维护增删改的三个数组 遍历,进行三四五次if判断进入不同数组,渲染页面不对呀,数据展示,怎么根据json对应键展示字段呢&#xf…

Linux基础命令-gdisk使用GPT类型创建分区

文章目录 一 命令介绍 二 MBR和GPT的区别 MBR GPT 三 命令语法 四 基本参数 1 常用参数 2 操作菜单说明 五 参考实例 1 对磁盘设备进行分区 2 查看磁盘的所有分区表 命令总结 一 命令介绍 NAME gdisk - Interactive GUID partition table (GPT) manipulato…

VAE--part1

Variational Auto-Encoder, VAE__part1分布变换VAE慢谈VAE 初现分布标准化重参数技巧VAE的本质是什么?VAE的本质结构正态分布?变分在哪里参考博客仅做学习记录,侵删分布变换 VAE和GAN都是生成式模型,它们俩的目标基本一致&#x…

如何在 3dMax 中制作游戏中的战斧模型?

继续给大家分享3dMax教程:如何在3dsMax中制作战斧教程。 介绍 大家好!今天想和大家分享的是用3ds Max制作一把战斧,分享一下制作过程中用到的一些技巧和技巧。这是一个比较基础的教程,包括建模、雕刻、pbr贴图。 概念 这把战斧…

如何利用站内推广和站外推广提高转化率?

在如今的网络时代,拥有一个好的网站是非常重要的。但是,光有一个好的网站是不够的,为了达到我们的目标,需要不断地提高网站的转化率。而在实现这个目标的过程中,站内推广和站外推广是两个非常关键的因素。 站内推广是…

【企业服务器LNMP环境搭建】mysql安装

MySQL安装步骤: 1、相关说明 1.1、编译参数的说明 -DCMAKE_INSTALL_PREFIX安装到的软件目录-DMYSQL_DATADIR数据文件存储的路径-DSYSCONFDIR配置文件路径 (my.cnf)-DENABLED_LOCAL_INFILE1使用localmysql客户端的配置-DWITH_PARTITION_STORAGE_ENGINE使mysql支持…

Web3中文|值得了解:Web3的成功离不开什么?

即使受到负面新闻和部门监管的打击,区块链仍然是Web3应用程序开发、生态发展和主流采用的关键。围绕区块链技术的潜在用例及应用有很多争论,而最近相关讨论似乎已经进入了白热化的阶段。随着监管机构打击质押服务、禁止稳定币交易,以及对NFT支…

Delphi 中 FireDAC 数据库连接(多线程)

参见:Delphi 中 FireDAC 数据库连接(总览)本主题描述了如何在多线程环境下使用FireDAC。一、概述如果满足以下条件,FireDAC是线程安全的。一个连接对象和所有与之相关的对象(如TFDQuery、TFDTransaction等)…

CSS实现动画效果的菜单收起展开图标,html实现动画效果的箭头

效果 实现代码 此处JS代码引入了jquery <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>.menu-icon{position: absolute;left: 20%;top: 30%;transition: all .3s;}.menu-icon:before, .menu…

Rollup L2 and L3

1. 引言 前序博客有&#xff1a; Rollup DecentralizationRollup去中心化Rollup交易的固化流程 Layer 1&#xff1a;数据可用层Layer 2&#xff1a;执行层Layer 3&#xff1a;链下系统 所有系统设计中&#xff0c;都包含了某种可信元素&#xff0c;用于保护系统safety和live…

滑动窗口最大值:单调队列

239. 滑动窗口最大值 难度困难2154收藏分享切换为英文接收动态反馈 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例…

人像磨皮美颜sdk是什么?磨皮技术详解

每当讨论起美颜sdk的功能&#xff0c;“磨皮”肯定首当其冲&#xff0c;从一开始&#xff0c;这个功能就受到了很多人的欢迎&#xff0c;尤其是当它与美白、美颜结合在一起的时候&#xff0c;更是发挥出了最大的作用&#xff0c;时至今日它的热度依然不减。使用者可以通过磨皮功…

网络应用之css 显示特性

css 显示特性学习目标能够说出标签隐藏设置1. display 属性的使用display 属性是用来设置元素的类型及隐藏的&#xff0c;常用的属性有&#xff1a;none 元素隐藏且不占位置inline 元素以行内元素显示block 元素以块元素显示2. 示例代码<style>.box{/* 将块元素转化为行内…

2023年Java 高级工程师 1380 道面试题(附答案)分享

Java 面试八股文有必要背吗&#xff1f; 我的回答是&#xff1a;很有必要。你可以讨厌这种模式&#xff0c;但你一定要去背&#xff0c;因为不背你就进不了大厂。现如今&#xff0c;Java 面试的本质就是八股文&#xff0c;把八股文面试题背好&#xff0c;面试才有可能表现好。…