T1006 |
直接访问逻辑卷 |
Windows允许程序直接访问逻辑卷。具有直接访问权限的程序可以通过分析文件系统数据结构直接从驱动器读取和写入文件。此技术可以绕过Windows文件访问控制以及文件系统监测工具。NinjaCopy之类的工具,可以在PowerShell中执行这些操作。 |
T1014 |
Rootkit |
攻击者可能使用rootkit来隐藏程序,文件,网络连接,服务,驱动程序和其他系统组件的存在。Rootkit是通过拦截、钩住和修改提供系统信息的操作系统API调用来隐藏恶意软件存在的程序。rootkit或rootkit启用功能可能驻留在操作系统的用户或内核级别或更低的级别,包括管理程序、主引导记录或系统固件。rootkit已经被用于Windows、Linux和Mac OS X系统。 |
T1578 |
修改云计算基础架构 |
攻击者可能尝试去修改云账户计算机服务基础结构以规避防御。对计算机服务基础结构的修改包括创建、删除或者修改一个或多个组件,例如计算机实例、虚拟机和快照。从修改基础结构组件获得的权限可能会绕过阻止访问现有基础结构的限制,修改基础结构组件可能使攻击者逃避检测并删除攻击者攻击时留下的痕迹。 |
T1578.004 |
修改云计算基础架构:恢复云实例 |
攻击者可能会在其执行完恶意活动后还原对云实例所做的更改,以逃避检测并删除其入侵痕迹,在高度虚拟化环境中(如基于云的基础架构),可以通过云管理仪表盘或云API恢复虚拟机(VM)或数据存储快照来实现。该技术的另外一种变化是利用附加到计算实例的临时存储,大多数云提供商都会提供各种类型的存储,包括持久性存储、本地存储和临时存储,其中临时存储类型通常在VM停止或重启时被重置。 |
T1578.003 |
修改云计算基础架构:删除云实例 |
攻击者可能在其执行执行完恶意活动后删除云实例以躲避检测和删除入侵痕迹。如果实例不可恢复,则删除实例或虚拟机可以删除有价值的取证工件或其它可疑行为的证据。攻击者可以创建云实例,并在达成其目标后终止该实例。 |
T1578.002 |
修改云计算基础架构:创建云实例 |
攻击者可以在云账户计算服务内创建新实例或虚拟机(VM)以逃避防御检测,创建新实例可允许攻击者绕过存在于当前账户实例上的防火墙规则和权限,攻击者可能创建一个账户中一个或多个卷的快照,创建新实例,安装快照,然后应用限制较少的安全策略从本地系统或远程数据工作台收集数据。创建新实例可以允许攻击者在环境中执行恶意活动,而不影响当前正在运行的实例。 |
T1578.001 |
修改云计算基础架构:创建快照 |
攻击者可能在云账户中创建快照或数据备份以逃避检测。快照是现有云计算机组件(例如虚拟机VM、虚拟硬盘驱动器或卷)的时间点副本,攻击者利用权限来创建快照,以绕过阻止访问现有计算机服务基础就够的限制,这与恢复云实例中攻击者还原快照以逃避检测并删除痕迹不同。攻击者可以创建云实例,将一个或多个创建的快照安装到该实例中,然后应用允许攻击者访问所创建实例的策略,例如:防火墙策略中允许攻击者通过SSH进行入站和出站。 |
T1600 |
弱化加密 |
为绕过数据在通信中的加密传输,攻击者可能会对网络设备的加密能力进行破坏。加密可用于保护传输的网络流量,以保持其机密性(防止未经授权的泄露)和完整性(防止未经授权的更改)。加密密码用于将明文消息转换为密文,并且在不使用相关解密密钥的情况下进行解密。通常,较长的密钥会增加密码分析但不使用密钥进行解密。攻击者入侵网络传输加密设备后,会对加密设备的加密方式进行修改。如,攻击者通过诸如修改系统映像、缩小密钥空间和禁用加密硬件等行为,用于降低或禁用设备安全加的能力,来获取更大的未经授权的泄露,也有助于攻击者进行数据操作、凭证访问或收集工作。 |
T1600.001 |
弱化加密:缩小秘钥空间 |
攻击者通过降低加密强度来减少解密加密的传输数据难度。攻击者通过减少秘钥长度(如从几百或几千的加密秘钥的字节减少到几个字节),降低加密软件对明文的加密。从而攻击者可在无秘钥的情况下以较低难度对加密进行进行解密。攻击者也可通过网络设备中的专有命令来修改加密程序或加密配置,从而缩小加密空间 |
T1600.002 |
弱化加密:禁用加密硬件 |
攻击者为减少在收集信息、篡改数据、盗取泄密信息的难度,可直接禁用专用的加密设备。为确保网络传输数据的安全,许多网络设备(如路由器、交换机、防火墙)都配备了专用的加密硬件来防止加密速度过慢或篡改的校验。当攻击者入侵到这些网络设备后,可能会直接禁用专用的加密硬件,如,修改加密的映像程序,使加密失效。通常也通过该技术降低加密的复杂度(如,缩小秘钥空间) |
T1564 |
隐藏痕迹 |
攻击者通过隐藏与其攻击行为相关痕迹的方式来达到逃避检测的目的。为了避免破坏用户的工作环境和防止用户修改系统上的一些文件和功能,操作系统默认配置了一些具有隐藏各种痕迹的功能,例如:重要系统文件和管理任务的执行。攻击者可能采用这些隐藏痕迹的方式,去躲避检测,如:攻击者会隐藏一些恶意文件、攻击者账户(即隐藏攻击者自己创建的账户)等。攻击者还会试图通过安全工具创建计算机隔离区(如通过使用虚拟化技术),以此来隐藏和恶意行为相关的痕迹。 |
T1564.008 |
隐藏痕迹:Email Hiding Rules |
攻击者可能使用电子邮件规则来隐藏受感染用户邮箱中的入站邮件。许多邮件客户端允许用户为各种邮件功能创建收件箱规则,包括将邮件移动到其他文件夹、将邮件标记为已读或删除邮件。可以在邮件客户端内或通过外部功能(如Windows系统上的New-InboxRule或Set-InboxRule PowerShell cmdlet)创建或修改规则。攻击者可能利用受感染用户邮箱中的电子邮件规则来删除和/或移动邮件到不太引人注意的文件夹。攻击者可能这样做以隐藏安全警报、C2通信或从受感染账户发送的内部钓鱼邮件的响应。组织内的任何用户或管理员(或具有有效凭据的攻击者)都可能能够创建规则来自动移动或删除电子邮件。这些规则可被滥用以削弱/延迟检测,如果电子邮件内容立即被用户或防御者看到的话。恶意规则通常根据邮件正文和主题行中的关键词(如恶意软件、可疑、网络钓鱼和黑客)过滤掉电子邮件。 |
T1564.002 |
隐藏痕迹:账户隐藏 |
攻击者通过创建隐藏账户以隐藏自己,在macOS中,每个账户都有一个与之相关的userID,当创建一个账户时,可以指定该账户的userID。在/Library/Preferences/com.apple.loginwindow中有一个名为Hide500Users的属性,可用于禁止用户ID为500及500以下的账户名出现在登录窗口中。当创建用户ID小于500的用户(例如:sudo dscl . -create /Users/username UniqueID 401),并启用该属性(设置为Yes),攻击者就将一个账户设置为隐藏账户。在Windows中,隐藏账户的账户名以“$”结尾。 |
T1564.009 |
隐藏痕迹:Resource Forking |
攻击者可能滥用资源分支来隐藏恶意代码或可执行文件,以逃避检测并绕过安全应用程序。资源分支为应用程序提供了一种结构化的方式来存储资源,如缩略图、菜单定义、图标、对话框和代码。使用ls -l@或xattr -l命令显示文件的扩展属性时,可以识别资源分支的使用。资源分支已被弃用,并被应用程序捆绑结构所取代。非本地化资源放置在应用程序捆绑包的顶层目录,而本地化资源放置在/Resources文件夹中。攻击者可以使用资源分支来隐藏可能直接存储在文件中的恶意数据。攻击者可以执行带有附加资源分支的内容,在指定的偏移量处,将其移动到可执行位置然后调用。资源分支内容也可能在执行前被混淆/加密。 |
T1564.006 |
隐藏痕迹:运行虚拟实例 |
攻击者可能使用虚拟实例执行恶意操作以躲避检测。存在各种各样的虚拟化技术,其可以模拟计算机或者计算机环境,通过在虚拟实例内部运行恶意代码,攻击者可以躲避无法监检测虚拟实例内部状态的安全工具的检测。此外,依靠虚拟网络技术(如:桥接模式的适配器),IP地址和主机名可能是不匹配且是未知的,此时,依靠虚拟化产生的网络流量是难以追溯到受感染的主机。攻击者可以利用对虚拟化的本机支持(如:Hyper-V)或删除运行虚拟实例所需的文件(如:VirtualBox的二进制文件)。运行虚拟实例后,攻击者可能会在来宾账户和主机之间创建一个共享文件夹,且具有虚拟实例与主机文件系统进行交互的权限。 |
T1564.007 |
隐藏痕迹:重写VBA源码 |
攻击者可以通过将VBA代码替换为正常数据,从而达到隐藏MS Office文档中嵌入的恶意VBA载荷。带有嵌入式VBA内容的MS Office文件将源代码存储到模块流中,每一个模块流中都有一个PerformanceCache,用于存储一个单独完成的VBA源码的编译版本,将其称为p-code,当_VBA_PROJECT流(其中包含VBA程序版本的相关描述信息)中指定的MS Office版本与主机MS Office程序版本相匹配的时候,p-code将被执行。攻击者可以使用零、正常代码或随机字节去重写位于VBA源代码处的代码,同时保留之前编译的恶意p-code,以此来隐藏恶意VBA代码。由于一些代码已经被隐藏在p-code中,因此可以绕过一些扫描恶意VBA源码的工具,绕过删除VBA源码,有些工具甚至认为不存在宏,此时如果_VBA_PROJECT流和主机MS Office的版本相匹配,则将直接执行p-code,否则会将正常非恶意的VBA源码解压缩并重新编译为p-code,从而删除恶意p-code,绕过监测分析。 |
T1564.003 |
隐藏痕迹:隐藏窗口 |
攻击者可以使用隐藏窗口的方式运行恶意程序,以达到躲避用户监测的目的。在某些情况下,可以将应用程序在执行时显示的窗口进行隐藏,管理员采用这种方式来避免程序在运行时对用户操作环境的影响。在Windows环境中,很多脚本语言都可以做到隐藏窗口的作用,例如;PowerShell、Jscrip和Visual Basic,一个示例就是 powershell.exe -WindowStyle Hidden。同样,在macOS系统上,属性列表文件(plist文件)列出了应用程序运行时的配置,这些文件有个标志是apple.awt.UIElement,可以用来使运行程序的图标不显示在任务栏(Dock)中,常见的应用场景是:当应用程序在系统中运行,但不想让其在Dock中显示。攻击者会利用这些方式,去隐藏一些窗口,以免被正常用户发现攻击者的攻击行为。 |
T1564.005 |
隐藏痕迹:隐藏的文件系统 |
攻击者可能使用隐藏的文件系统去隐藏对用户和安全工具而言的恶意行为。文件系统提供了一种用于存储和访问物理存储中数据的结构。通常,用户通过一个允许他们可以访问文件和目录的应用程序去与文件系统进行交互,这些文件和目录是其所在物理位置(例如:磁盘扇区)的抽象表述。标准的文件系统有:FAT、NTFS、EXT4和APFS,文件系统有一些其它的结构,如NTFS中包含卷启动记录(VBR)和主文件表(MFT)。攻击者可以在受感染主机上标准文件系统中的抽象文件系统上使用自己的抽象文件系统,此时,攻击者可以隐藏恶意的组件的存在以及隐藏来自安全工具的文件输入/输出,隐藏的文件系统(有时也称为虚拟文件系统)可以通过多种方式来实现:(1)将文件系统存储在磁盘结构或标准文件系统分区未使用的磁盘保留空间;(2)攻击者可以将自己的可移植分区映像作为文件放在标准文件系统之上;(3)攻击者还可以以非标准方式将文件分散在现有文件系统结构中。 |
T1564.001 |
隐藏痕迹:文件和目录隐藏 |
攻击者可能通过创建一些隐藏文件或隐藏文件夹来达到躲避检测的目的。为了防止正常用户意外修改系统上的特殊文件,大多数系统文件都会被隐藏起来,此时,用户以图形化界面浏览或使用常规命令查看(如在Linux或macOS系统中执行ls,在Windows中执行dir),这些文件都不会显示出来。在Linux和MAC系统中,用户可以创建以“.”开头的文件名的文件或文件夹,在默认情况下,这些文件或文件夹在Finder应用程序和执行标准命令(如:ls)时,都会被隐藏。用户必须通过一些特殊的配置才可看见这些文件或文件夹(如执行ls -la命令)。在macOS上的文件也可以通过使用UF_HIDDEN标志以防止在Finder.app中被发现。在Windows系统中,用户可以使用attrib.exe二进制文件创建异常文件。为了使用户的工作空间整理,很多应用程序都会创建一些隐藏文件和文件夹,例如:SSH应用会创建一个名字为.ssh的隐藏文件夹,里面包含用户的公钥和秘钥。攻击者使用这些方式可以隐藏系统上任何位置的文件和文件夹,以此来逃避检测(该检测方式是不对隐藏文件进行检测)。 |
T1564.004 |
隐藏痕迹:NTFS文件属性 |
攻击者可以会使用NTFS文件属性来隐藏其恶意数据,从而躲避检测。NTFS格式包括一个主文件表(MFT),MFT用于维护分区上每个文件/目录的记录。MFT有一些属性,如扩展属性(EA)和数据(当存在多个数据属性是称为备用数据流-ADSs),可用于存储任意数据(甚至是完整的文件)。攻击者可能会将恶意的数据或二进制文件存储在文件属性元数据中,而不是将其直接存储到文件中,以此方式来躲避一些检测,如静态指示扫描工具和防病毒软件。 |
T1564.010 |
隐藏痕迹:Process Argument Spoofing |
攻击者可能尝试通过覆盖进程内存来隐藏进程命令行参数。进程命令行参数存储在进程环境块(PEB)中,这是Windows用于存储进程各种相关信息的数据结构。PEB包括进程执行时引用的命令行参数。创建进程时,监控进程创建的防御工具/传感器可能会从PEB中检索进程参数。攻击者可能操纵进程PEB以规避防御。例如,可以滥用进程掏空(Process Hollowing)来以挂起状态生成具有良性参数的进程。在进程生成且PEB初始化后(工具/传感器可能记录进程信息),攻击者可能覆盖PEB以修改命令行参数(例如,使用原生API WriteProcessMemory()函数),然后使用恶意参数恢复进程执行。攻击者还可能使用恶意命令行参数执行进程,然后用良性参数修补内存,这可能绕过后续的进程内存分析。此行为还可能与其他技巧(如父PID欺骗)结合使用,以操纵或进一步规避基于进程的检测。 |
T1202 |
间接命令执行 |
攻击者可以利用允许命令执行的程序,通过绕过命令执行解析器的限制,可以达到命令执行的效果。各种Windows程序可用于执行命令,且可能无需调用cmd,例如:Forfiles、程序兼容性助手(pcalua.exe)、Linux Windows子系统(WSL)的组件以及其它实用程序可以通过命令和脚本解释器,运行窗口或通过脚本调用程序执行命令。攻击者可能利用这些特点去进行规避防御,特别是为了执行恶意命令而去破坏用于限制或阻止cmd使用的检测或缓解措施(如组策略)时。 |
T1140 |
反混淆/解码文件或者信息 |
攻击者可能会使用混淆文件或信息来隐藏入侵的分析结果。他们可能需要独特的机制来解码或反混淆处理该信息,具体取决于他们怎么使用这些处理的数据。这种方法可以使用在内置恶意软件功能或使用系统上存在的实用程序上。 |
T1036 |
伪装 |
攻击者可能试图去操作他们工件的特点,以使其对用户和安全工具而言显的合法与正常。伪装是指攻击者为了逃避防御与观察而操作合法或恶意对 |