T1055.012: 进程镂空

Stealth

摘要

攻击者可能将恶意代码注入挂起并镂空的进程,以规避基于进程的防御。进程镂空是一种在另一个活动进程的地址空间中执行任意代码的方法。 进程镂空通常通过以下方式执行:先创建一个处于挂起状态的进程,然后解除映射/镂空其内存,随后可用恶意代码替换。可以使用原生 Windows API 调用(如 <code>CreateProcess</code>)创建受害进程,其中包含一个用于挂起进程主线程的标志。此时可以使用诸如 <code>ZwUnmapViewOfSection</code> 或 <code>NtUnmapViewOfSection</code> 的 API 调用解除该进程的内存映射,然后分别通过 <code>VirtualAllocEx</code>、<code>WriteProcessMemory</code>、<code>SetThreadContext</code>,然后 <code>ResumeThread</code> 进行写入、重新对齐到注入的代码并恢复执行。(Citation: Leitch Hollowing)(Citation: Elastic Process Injection July 2017) 这与 [Thread Local Storage](https://attack.mitre.org/techniques/T1055/005) 非常相似,但它创建的是新进程,而不是针对已有进程。此行为很可能不会导致权限提升,因为被注入的进程是由注入进程衍生出来的(因而继承了注入进程的安全上下文)。然而,通过进程镂空进行的执行也可能规避安全产品的检测,因为执行被掩盖在合法进程之下。

来源归属

来源:MITRE ATT&CK · 置信度:high

平台

  • Windows

战术

Stealth

参考来源