T1047 |
Windows 管理规范 |
Windows 管理规范 (WMI) 是 Windows 管理的一个功能,它为本地和远程访问 Windows 系统组件提供了统一的环境。它依赖于本地和远程访问的 WMI 服务以及远程访问的服务器消息块(SMB) 和远程过程调用服务(RPCS)。RPC 在 135 端口上运行。攻击者可以使用 WMI 与本地和远程系统进行交互,并将其用作执行许多策略功能的手段,例如收集发现的信息和远程执行文件,作为横向移动的一部分。 |
T1129 |
共享模块 |
攻击者可能滥用共享模块来执行恶意有效载荷。可以指示 Windows 模块加载器从任意本地路径和任意通用命名约定(UNC)网络路径加载 DLL,这一功能位于 ntdll.dll 中,是 Windows 本机 API 的一部分,该 API 由 Win32 API 的 CreateProcess、LoadLibrary 等函数调用。模块加载器可以加载 DLL:(1) 通过指定 IMPORT 目录中的(完全限定或相对)DLL 路径名;(2) 通过 EXPORT 转发到另一个 DLL,用(完全限定或相对)路径名指定(但不带扩展名);(3) 通过 NTFS 联结或 symlink program.exe.local 使用目录的完全限定或相对路径名,该目录包含在 IMPORT 目录中指定的 DLL 或转发的 EXPORT;(4) 通过嵌入式或外部“应用程序清单”。文件名是指 IMPORT 目录中的条目或转发的 EXPORT。攻击者可以使用此功能在受害者系统上执行任意代码的方式。例如,恶意软件可以执行共享模块以加载其它组件或功能。 |
T1651 |
云管理命令 |
攻击者可能会滥用云管理服务在虚拟机内执行命令。AWS Systems Manager、Azure RunCommand 和 Runbooks 等资源允许用户利用已安装的虚拟机代理在虚拟机中远程运行脚本。如果攻击者获得云环境的管理权限,他们可能会滥用云管理服务在环境的虚拟机中执行命令。此外,入侵服务提供商或委派管理员帐户的攻击者同样可以利用信任关系在连接的虚拟机中执行命令。 |
T1053 |
计划任务/工作 |
攻击者可能滥用任务计划功能来促进恶意代码的初始或重复执行。所有主要操作系统中都存在实用程序,用于安排在指定日期和时间执行的程序或脚本。也可以在远程系统上调度任务,只要满足适当的身份验证(例如:Windows 环境中的 RPC 和文件和打印机共享)。在远程系统上调度任务通常需要成为远程系统上的管理员或特权组的成员。攻击者可以在系统启动时使用任务调度来执行程序,也可以在计划的基础上执行程序以实现持久性。这些机制也可能被滥用,以在指定帐户的上下文中运行进程(例如具有更高权限/特权的帐户)。 |
T1053.005 |
计划任务/工作:计划任务 |
攻击者可能滥用 Windows 任务调度程序来执行任务调度,以初始或重复执行恶意代码。在 Windows 中有多种访问任务计划程序的方法。schtasks 可以直接在命令行上运行,也可以通过控制面板的管理员工具部分中的 GUI 打开任务调度程序。在某些情况下,攻击者使用.net 包装器来执行 Windows 任务调度程序,或者攻击者使用 Windows netapi32 库来创建计划任务。废弃的 at 工具也可能被攻击者滥用(例如:at (Windows)),尽管 at.exe 不能访问由 schtasks 或控制面板创建的任务。攻击者可以在系统启动时使用 Windows 任务调度程序执行程序,或者在计划的基础上执行程序以实现持久性。Windows 任务调度程序也可以作为横向移动的一部分被滥用来进行远程执行,或者在指定帐户(例如系统)的上下文中运行进程。 |
T1053.007 |
容器编排作业 |
攻击者可能滥用容器编排工具(如 Kubernetes)提供的任务调度功能来调度配置为执行恶意代码的容器部署。容器编排作业类似于 Linux 系统上的 cron 作业,会在特定日期和时间运行这些自动化任务。这种类型的部署也可以配置为随着时间的推移维护一定数量的容器,从而在集群内自动实现持久化。在 Kubernetes 中,可以使用 CronJob 来调度运行一个或多个容器以执行特定任务的作业。攻击者因此可能利用 CronJob 来调度在集群内各个节点上执行恶意代码的作业。 |
T1053.003 |
计划任务/工作:Cron |
攻击者可能滥用 cron 实用程序来执行任务调度,以初始或重复执行恶意代码。cron 实用程序是用于类似 Unix 的操作系统的基于时间的作业调度程序。crontab 文件包含要运行的 cron 条目的时间表以及指定的执行时间。任何 crontab 文件都存储在特定于操作系统的文件路径中。攻击者可能会在 Linux 或 Unix 环境中使用 cron 在系统启动时执行程序,或者定期执行程序以实现持久性。cron 也可能被滥用为横向移动的一部分来执行远程执行,或在指定帐户的上下文中运行流程。 |
T1053.006 |
计划任务/工作:Systemd 计时器 |
攻击者可能滥用 Systemd 计时器来执行任务调度,以初始或重复执行恶意代码。Systemd 计时器是控制服务的文件扩展名为.timer 的单元文件。计时器可以设置为在日历事件上运行,也可以设置为在相对于起点的时间跨度之后运行。在 Linux 环境中,它们可以作为 Cron 的替代品。每个.timer 文件必须有一个对应的同名的.service 文件,例如 example.timer 和 example.service,.service 文件是由 Systemd 系统和 Service manager 管理的 Systemd 服务单元文件。特权定时器写入 /etc/systemd/system/ 和 /usr/lib/systemd/system,用户级别写入 ~/.config/systemd/user/。攻击者可能使用 systemd 计时器在系统启动时或在计划的基础上执行恶意代码以实现持久性。使用特权路径安装的计时器可以用来维护根级别的持久性。攻击者也可以安装用户级别的计时器来实现用户级别的持久性。 |
T1053.002 |
计划任务/工作:At (Windows) |
攻击者可能滥用 at.exe 实用程序来执行任务调度,以初始或重复执行恶意代码。at 实用程序作为 Windows 中的可执行程序,用于在指定的时间和日期调度任务。使用 at 要求 Task Scheduler 服务正在运行,并且该用户必须作为本地 Administrators 组的成员登录。在 Windows 环境中,攻击者可以使用 at.exe 在系统启动时或在计划的基础上执行程序以实现持久性。at 也可以作为横向移动的一部分被滥用来进行远程执行,或者在指定帐户(例如系统)的上下文中运行进程。注意:at.exe 命令行工具在 Windows 的当前版本中已被弃用,取而代之的是 schtasks。 |
T1106 |
本机 API |
攻击者可以直接与本机 OS 应用程序接口(API)进行交互以执行一些操作。本机 API 提供了一种可控制的方法去调用内核中低级 OS 服务,例如涉及到硬件设备、内存和进程的服务,在系统引导系统期间(当系统组件尚未初始化时)和在常规操作期间执行任务和请求时会调用这些本机 API。本机 API 提供的功能也可以通过接口或动态库向用户模式的应用程序公开,例如:诸如 Windows API 的 CreateProcess() 或 GNU fork() 之类的功能允许程序或脚本启用其它进程,这可允许 API 调用者执行二进制文件、运行 CLI 命令和加载模块等,数千种相似 API 函数存在各种操作系统中。更高级别的框架,如 Microsoft .NET 和 macOS Cocoa 可以用于和本机 API 交互,这些框架通常也为 API 功能提供语言包,以满足代码的易用性和可执行性的要求。攻击者可能利用这些本机 API 作为一种执行行为的手段,类似于命令行和脚本解释器,本机 API 及其接口层次结构提供了与受害者系统进行交互并利用受害系统各种组件的机制。 |
T1610 |
部署容器 |
攻击者可能会在环境中部署容器以促进执行或逃避防御。在某些情况下,攻击者可能部署一个新容器来执行与特定映像或部署相关的进程,例如执行或下载恶意软件的进程。在其他情况下,攻击者可能部署一个未配置网络规则、用户限制等的新容器,以绕过环境中现有的防御。容器可以通过多种方式部署,例如通过 Docker 的创建和启动 API,或通过诸如 Kubernetes 仪表板或 Kubeflow 之类的 Web 应用程序。攻击者可能基于检索或构建的恶意映像,或从在运行时下载并执行恶意有效载荷的良性映像部署容器。 |
T1059 |
命令和脚本解析器 |
攻击者可能会滥用命令和脚本解析器去执行命令、脚本或二进制文件,这些接口和语言提供了与计算机系统进行交互的方式,并且是不同平台间的共同功能。大部分系统都会内置一些命令行界面和脚本解析的能力,如 macOS 和 Linux 发行版中包含某种形式的 Unix Shell,Windows 中包含 Windows Command Shell 和 PowerShell。除了系统中内置的解析器外,也存在一些跨平台的解析器,如 Python,以及通常与客户端应用程序关联的解析器,如 JavaScript 和 Visual Basic。攻击者可能会以各种方式将这些技术作为执行任意命令的方式,命令和脚本可以嵌入到钓鱼邮件中初始访问有效载荷内容中发送给受害者,或者作为从现存 C2 服务器上下载的辅助有效载荷。攻击者可能通过交互式终端或 shell 执行命令。 |
T1059.007 |
命令和脚本解析器:JavaScript |
攻击者可能会滥用 JavaScript 的各种实现方式来执行。JavaScript 是一种与平台无关的脚本语言(在运行时,即时编译),通常与网页中的脚本有关,不过 JS 也可以在浏览器之外的运行时环境中执行。Jscript 是微软实现相同脚本的标准,Jscript 通过 Windows 脚本引擎解析,因此与 Windows 的许多组件(如组件对象模型和 Internet Explorer HTML 应用程序页面)集成在一起。自动化 JavaScript(JXA)是一种基于 JavaScript 的 macOS 脚本语言,作为 OSX 10.10 中引入的 Apple 开放脚本架构(OSA)一部分包含在内,Apple 的 OSA 提供脚本功能以控制应用程序、与操作系统的接口以及连接到 Apple 其它内部 API。从 OSX 10.10 开始,OSA 仅支持两种语言:JXA 和 AppleScript。脚本可以通过命令行程序 osascript 执行,其可以通过 osacompile 被编译为应用程序或脚本文件,且其可以通过利用 OSAKit 框架在其它程序内存中被编译和执行。攻击者可能会滥用 JavaScript 的各种实现方式来执行各种操作,常见的用途包括在网站上托管恶意脚本作为路过式攻击的一部分,或者下载并执行这些脚本文件作为有效辅助载荷。由于这些有效载荷都是基于文本,因此攻击者也常将其内容作为混淆文件或信息的一部分进行混淆。 |
T1059.002 |
命令和脚本解析器:AppleScript |
攻击者可能滥用 AppleScript 来执行,AppleScript 是一种基于 macOS 的脚本语言,旨在通过被称为 AppleEvents 的应用程序间消息来控制应用和部分的操作系统,这些 AppleEvent 信息可以独立发送,也可以作为脚本的一部分发送,这些事件可以定位打开的窗口、发送击键,并与几乎所有本地或远程打开的应用程序进行交互。通过 osascript /path/to/script 或 osascript -e “script here” 从命令行运行脚本,除了命令行外,还可以通过多种方式运行脚本,包括邮件规则、Calendar.app 警报和 Automator 工作流。AppleScripts 也可以通过将 #!/usr/bin/osascript 添加到脚本文件的开头,进而作为纯文本脚本执行。AppleScripts 并不需要调用 osascript 去执行,可以使用 macOS 本机 API NSAppleScript 或 OSAScript 从 mach – O 二进制文件中执行它们,二者均独立于 /usr/bin/osascript 命令行实用程序执行代码。攻击者可能滥用 AppleScript 去执行各种行为,如与打开的 SSH 连接进行交互,移至远程计算机,甚至向用户呈现虚假对话框,这些事件不能远程启动应用程序(可以在本地启动应用程序),但是如果其已经在远程运行,则他们可以与应用程序进行交互。在 macOS 10.10 Yosemite 或更高版本上,AppleScript 能够执行本地 API,否则将需要以 mach – O 二进制文件格式进行编译和执行,由于其为一种脚本语言,因此它可以用于启动更常见的技术,如通过 Python 启用一个反向 shell。 |
T1059.008 |
命令和脚本解析器:网络设备命令行解析器 |
攻击者可能会滥用网络设备上的脚本或内置的命令行解析器(CLI)去执行恶意命令或有效载荷,CLI 是用户和管理员与设备进行交互以查看系统信息、修改设备操作以及诊断和管理功能的主要方式,CLI 通常包含不同命令所需要的各种不同级别的权限。脚本解析器可以自动化执行任务,并可以扩展网络操作系统中设置的命令集之外的功能,通过一个直接的控制台连接或远程方式(如 telnet 或 ssh)可以访问 CLI 和脚本解析器。攻击者可以使用网络 CLI 更改网络设备的行为和操作方式,CLI 也可以用于拦截流量或操作数据,修改启动配置参数以加载恶意系统软件或禁用安全功能或日志记录以躲避检测。 |
T1059.001 |
命令和脚本解析器:PowerShell |
攻击者可能滥用 PowerShell 来执行命令和脚本,PowerShell 是 Windows 操作系统中包含强大交互式命令行界面和脚本的环境,攻击者可以使用 PowerShell 去执行很多操作,包含信息的发现和代码的执行。如:包含可用于运行可执行文件的 Start – Process cmdlet 和在本地或远程计算机(尽管使用 PowerShell 连接远程系统需要管理员权限)上运行命令的 Invoke – Command cmdlet。PowerShell 可以用于从 Internet 上下载并运行可以执行文件,这些可执行文件可以从磁盘或内存中执行而无需接触磁盘。有许多基于 PowerShell 的攻击测试工具,如 Empire、PowerSploit、PoshC2 和 PSAttack。PowerShell 命令或脚本可以在不直接调用 powershell.exe 二进制文件的情况下通过.NET 框架和 Windows 公共语言接口(CLI)公开的 PowerShell 底层 System.Management.Automation 程序集 DLL 的接口运行。 |
T1059.004 |
命令和脚本解析器:Unix 命令提示符 |
攻击者可能会滥用 Unix Shell 命令和脚本来执行,Unix Shell 是 Linux 和 macOS 系统上主要命令提示符,尽管 Unix 命令提示符存在很多变体(如:sh、bash、zsh 等),具体取决于特定的操作系统或发行版,Unix 命令提示符可以使用某些需要提升权限的命令来控制系统的各个方面。Unix 命令提示符也支持脚本,这些脚本支持顺序执行命令以及其它典型的程序操作,如条件和循环。Shell 脚本常见的用法包括长时间、重复的任务,或者需要在多个系统上执行同一组命令。攻击者也可以利用 Unix 命令提示符执行各种命令和有效载荷,可以通过命令和控制通道或在横向移动期间(如使用 SSH)与 Unix 命令提示符进行交互,攻击者还可以利用 shell 脚本在受害者主机上传递或执行多个命令,或作为持久化有效载荷的一部分。 |
T1059.006 |
命令和脚本解析器:Python |
攻击者可能滥用 Python 命令和脚本来执行,Python 是一种很流行的脚本或编程语言,其具有许多执行很多功能的能力。Python 可以从命令行(通过 python.exe 解析器)或通过可以编写并分发到不同系统的脚本(.py)交互执行 Python,Python 代码也可以编译成二进制可执行文件。Python 附带了许多与底层系统交互的内置软件包,如文件操作和设备 I/O。攻击者可以使用这些库来下载和执行命令或其它脚本,以执行各种恶意行为。 |
T1059.003 |
命令和脚本解析器:CMD |
攻击者可能滥用 Windows 命令提示符去执行,Windows Command Shell(cmd)是 Windows 系统上主要的命令提示符,Windows 命令提示符几乎可用于控制系统的任何方面,并具有不同命令子集的各种权限。批处理文件(如:.bat、.cmd)也提供了一系列 shell 命令去运行,以及常规脚本操作列表(如条件和循环),批处理常见用法包括长时间、重复的任务,或者需要在多个系统上运行同一组命令。攻击者也可以利用 cmd 执行各种命令和有效载荷,常见的用法包括利用 cmd 执行单个命令或滥用 cmd 与通过命令和控制信道进行输入、输出、转发进行交互。 |
T1059.005 |
命令和脚本解析器:Visual Basic |
攻击者可能会滥用 Visual Basic (VB) 来执行,VB 是由微软创建的一种编程语言,可通过 Windows API 与多种 Windows 技术(如组件对象模型和本机 API)进行交互,尽管被标记为遗留物,没有未来的发展计划,但 VB 已经在.NET Framework 和跨平台.NET Core 中集成和支持。创建了基于 VB 的派生语言,如 Visual Basic for Applications (VBA) 和 VBScript。VBA 是 Microsoft Office 及一些第三方应用程序内置的一种事件驱动的编程语言,VBA 使文档能够包含用于自动执行主机上的任务和其它功能的宏,VBScript 是 Windows 主机上默认的脚本语言,也可以代替 Internet Explorer 上的 HTML 应用程序(HTA)网页上的 JavaScript 使用(尽管大多数现代浏览器不支持 VBScript)。攻击者可能使用 VB 有效载荷执行恶意命令,常见的恶意用法包括使用 VBScript 自动执行行为或将 VBA 内容嵌入到附件的有效负载中。 |
T1609 |
容器管理命令 |
攻击者可能滥用容器管理服务在容器内执行命令。诸如 Docker 守护程序、Kubernetes API 服务器或 kubelet 之类的容器管理服务可能允许对环境内的容器进行远程管理。在 Docker 中,攻击者可能在容器部署期间指定一个执行脚本或命令的入口点,或者他们可能使用 docker exec 等命令在运行的容器内执行命令。在 Kubernetes 中,如果攻击者有足够的权限,他们可以通过与 Kubernetes API 服务器、kubelet 交互,或运行 kubectl exec 等命令在集群中的容器中获得远程执行权限。 |
T1204 |
用户执行 |
攻击者可以通过用户的特定操作来达到获取执行策略的目的。受害者一般遭受过社会工程攻击诱使他们执行可疑代码,如一般受害者遭受鱼叉攻击时,运行一个恶意文件或打开一个连接文件。虽然用户执行 (User Execution) 通常发生在初始访问(Initial Access)不久之后,但也可能发生在入侵的其他阶段,例如当攻击者将文件放置在共享目录中或用户桌面,希望用户单击它时;或发送在内部的钓鱼攻击后。 |
T1204.002 |
用户执行:恶意文件 |
攻击者可以通过用户的特定操作来达到获取执行策略的目的。受害者一般遭受过社会工程攻击诱使他们打开一个恶意文件,恶意文件打开后将加载恶意代码并执行。常见的手段是通过钓鱼附件。攻击者一般构建常用的可疑文件格式诱导受害者打开文件,这些文件格式包含.doc、.pdf、.xls、.rtf、.exe、.lnk、.pif、.cpl 等。攻击者为诱导受害者打开文件通常会对文件进行伪装。恶意文件通常常在拥有初次访问权限后发生,但它可能发生在入侵的其他阶段,例如攻击者将文件放在共享目录或用户桌面上希望受害者打开。可能在内部网络钓鱼后不久出现。 |
T1204.003 |
恶意映像 |
攻击者可能依赖用户运行恶意映像来促进执行。亚马逊网络服务(AWS)的亚马逊机器映像(AMIs)、谷歌云平台(GCP)映像和 Azure 映像,以及 Docker 等流行的容器运行时都可能被植入后门。被植入后门的映像可能通过上传恶意软件上传到公共存储库,然后用户可能在未意识到映像恶意的情况下从该映像下载并部署实例或容器,从而绕过专门实现初始访问的技术。这可能导致在实例或容器中执行恶意代码,例如执行加密货币挖掘的代码。攻击者还可能以某种方式命名映像,以增加用户错误地从该映像部署实例或容器的机会。 |
T1204.001 |
用户执行:恶意连接 |
攻击者可以通过用户的特定操作来达到获取执行策略的目的。受害者可能遭受社会工程攻击诱导他们去点击恶意连接,然后加载并执行可疑程序或代码。该技术方式一般通过鱼叉式攻击携带的钓鱼连接,当点击连接文件则可加载其它攻击代码,如针对浏览器或其它应用的漏洞攻击代码。同时,连接文件也可诱导用户下载其它恶意文件。 |
T1072 |
软件部署工具 |
攻击者可以访问并使用安装在企业网络内的第三方软件套件(例如管理、监测和部署系统),在网络中横向移动。出于管理目的,第三方应用程序和软件部署系统可能在网络环境中使用(例如,SCCM,VNC,HBSS,Altiris 等)。对第三方网络范围或企业范围软件系统的访问可以使攻击者能够在连接到此类系统的所有系统上执行远程代码,该访问权限可用于横向移动到其它系统,收集信息或产生特定效果,例如擦拭所有端点上的硬盘驱动器。此操作所需的权限因系统配置而异;本地凭据可以直接访问第三方系统,或者可能需要特定的域凭据。然而,系统可能需要一个管理帐户才可以登录或执行其操作的预期目的。 |
T1559 |
进程间通信 |
攻击者可能会利用进程间通信(IPC)机制来执行本地代码或命令。进程间通常用 IPC 进行共享数据、相互通信、同步执行,IPC 还经常用于避免死锁之类的情况,死锁在进程陷入循环等待模式时经常发生。攻击者可能会利用 IPC 来执行任意代码或命令,IPC 机制可能因操作系统的不同而异,但其通常以通过编程语言、脚本或本机的接口(如 Windows 动态数据库交换或组件对象模型)访问的形式存在,更高级的执行介质,如命令和脚本解释器,也可以利用底层 IPC 机制来实现。 |
T1559.002 |
进程间通信:动态数据交换 |
攻击者可以使用动态数据交换技术(DDE)去执行任意命令。DDE 是一种客户端 – 服务器的协议,是应用程序之间的一次性或连续的进程通信(IPC)协议。一旦建立连接后,程序可以自动化交换由字符串、温数据链接(数据项更改时的通知)、热数据链接(数据更改时的重复数据)和命令执行请求组成的事务。对象链接和嵌入(OLE)或在文档之间链接数据的功能最初是通过 DDE 实现的,尽管已被组件对象模型取代,但仍可以通过在 Windows 10 和大多数 Microsoft Office 2016 的注册表中的键值启用 DDE。Microsoft Office 文档可以通过直接或嵌入文件来执行 DDE 命令,并可以通过网络钓鱼或托管的 WEB 内容来执行,从而避免使用 Visual Basic for Applications (VBA) 宏。攻击者也可以利用 DDE 来操作一台被受损的机器(这台机器不能直接访问命令和脚本解释器)。 |
T1559.001 |
进程间通信:组件对象模型 |
攻击者可以通过 Windows 组件对象模型(COM)来执行本地代码。COM 是本机 Windows 应用程序接口(API)的进程间通信(IPC)组件,其可以使软件对象之间的交互,或实现一个或多个接口的可执行代码间的交互,通过 COM,客户对象可以调用服务的对象方法,这些方法通常是二进制动态链接库(DLL)或可执行文件(EXE)。各种 COM 接口的暴露,可能使攻击者通过各种编程语言(如 C、C++、Java 和 Visual Basic)调用该接口执行任意命令,还存在特定的 COM 对象,可以直接执行代码执行功能之外的能力,如创建计划任务,无文件下载执行,和其它攻击者用于特权提升和持久化的攻击行为。 |
T1559.003 |
XPC 服务 |
攻击者可以向 XPC 服务守护程序提供恶意内容以执行本地代码。macOS 使用 XPC 服务在各种进程之间进行基本的进程间通信,例如在 XPC 服务守护程序和第三方应用程序特权辅助工具之间。应用程序可以使用低级 XPC 服务 C API 或高级 NSXPCConnection API 向作为根用户运行的 XPC 服务守护程序发送消息,以处理需要提升权限的任务(例如网络连接)。应用程序负责提供作为 XPC 服务蓝图的协议定义。开发人员通常使用 XPC 服务为应用程序客户端和守护程序之间提供稳定性和特权分离。攻击者可以滥用 XPC 服务来执行恶意内容。恶意执行请求可以通过应用程序的 XPC 服务处理程序传递。这可能还包括识别和滥用不当的 XPC 客户端验证和/或输入参数的不良清理,以进行特权提升的利用。 |
T1203 |
客户端执行程序漏洞利用 |
由于不安全的编码产生的软件漏洞,可能会导致软件无法预期的执行结果。攻击者可以通过有针对性的漏洞利用来获取任意代码执行权限。通常,攻击性工具包最有价值的攻击是那些可用于在远程系统上攻击执行的代码,因为通过这些代码可用于获取目标系统的访问权限。对于用户经常在工作中会用到的相关应用程序文件,由于它们的高实用性而成为漏洞利用研究和开发的有用目标。几种已知的漏洞利用类型:1. 基于浏览器的利用 Web 浏览器是“漏洞利用攻击”和“鱼叉式钓鱼链接”的常见目标。客户终端系统可能会因为 Web 浏览被攻击,或受到某些用户的鱼叉式电子邮件中的链接攻击。这些通常不需要用户执行相关操作就完成了漏洞利用。2. 办公应用 网络钓鱼也可以针对常见的办公和生产力应用程序(例如 Microsoft Office)。恶意文件将直接作为附件或通过下载链接下载。这些恶意文件要求用户打开或运行文件达到漏洞利用。3. 常见的第三方应用 在目标网络中部署的常见软件或作为其一部分的其他应用程序也可以用于开发。企业环境中常见的 Adobe Reader 和 Flash 之类的应用程序经常被攻击利用来获得系统访问权限。根据软件和漏洞的性质,可能会在浏览器中利用某些漏洞,或者要求用户打开某些文件。例如,一些 Flash 利用已作为 Microsoft Office 文档中的对象提供。 |
T1569 |
系统服务 |
攻击者可能滥用系统服务或守护程序来执行命令或程序。攻击者可以通过与服务交互或创建服务来执行恶意内容。许多服务被设置为在启动时运行,这有助于实现持久性(创建或修改系统进程),但攻击者也可能滥用服务进行一次性或临时执行。 |
T1569.001 |
系统服务:Launchctl |
攻击者可能滥用 launchctl 来执行命令或程序。Launchctl 控制着 macOS 的启动过程,该过程处理类似 Launch Agent 和 Launch Daemon,但是可以执行其他命令或程序本身。Launchctl 支持在命令行上以交互方式接收子命令,甚至从标准输入重定向。通过加载或重新加载 Launch Agent 或 Launch Daemon,攻击者可以安装持久性或执行他们所做的更改。从 launchctl 运行命令非常简单:launchctl submit -l — /Path/to/thing/to/execute “arg” “arg” “arg”。如果 launchctl 是一个允许的进程,攻击者可以滥用此功能来执行代码,甚至绕过应用程序控制。 |
T1569.002 |
系统服务:服务执行 |
攻击者可能滥用 Windows 服务控制管理器来执行恶意命令或有效负载。Windows 服务控制管理器(services.exe)是用于管理和操作服务的界面。用户可以通过 GUI 组件以及系统实用程序(如 sc.exe 和 Net)访问服务控制管理器。PsExec 还可以通过服务控制管理器 API 创建的临时 Windows 服务来执行命令或有效负载。攻击者可能利用这些机制来执行恶意内容。这可以通过执行新的或修改的服务来实现。此技术是在服务持久性或特权升级期间与 Windows Service 结合使用来执行的。 |
T1648 |
无服务器执行 |
攻击者可能滥用无服务器计算、集成和自动化服务在云环境中执行任意代码。许多云提供商提供各种无服务器资源,包括计算引擎、应用程序集成服务和 Web 服务器。攻击者可能以各种方式滥用这些资源作为执行任意命令的手段。例如,攻击者可能使用无服务器函数执行恶意代码,如加密货币挖掘恶意软件(即资源劫持)。攻击者还可能创建能够进一步破坏云环境的函数。例如,攻击者可能使用 AWS 中的 IAM:PassRole 权限或 Google Cloud 中的 iam.serviceAccounts.actAs 权限向无服务器云函数添加额外的云角色,然后该函数可能能够执行原始用户无法执行的操作。无服务器函数还可以响应云事件(即事件触发执行)被调用,有可能随着时间的推移实现持久执行。例如,在 AWS 环境中,攻击者可能创建一个 Lambda 函数,该函数会自动向用户添加额外的云凭据,并创建一个相应的 CloudWatch 事件规则,每当创建新用户时调用该函数。类似地,攻击者可能在 Office 365 环境中创建一个 Power Automate 工作流,该工作流会转发用户收到的所有电子邮件,或者每当用户被授予对 SharePoint 中文档的访问权限时创建匿名共享链接。 |