T1055.013: 进程替身
摘要
攻击者可能通过进程替身(process doppelgänging)将恶意代码注入进程,以规避基于进程的防御,并可能提升权限。进程替身是一种在另一个活动进程的地址空间中执行任意代码的方法。 Windows 事务性 NTFS(TxF)在 Vista 中引入,作为一种执行安全文件操作的方法。(Citation: Microsoft TxF) 为确保数据完整性,TxF 在给定时间只允许一个事务句柄写入文件。在写入句柄事务终止之前,所有其他句柄都与写入者隔离,并且只能读取句柄打开时存在的文件的已提交版本。(Citation: Microsoft Basic TxF Concepts) 为避免损坏,如果系统或应用程序在写入事务期间发生故障,TxF 会执行自动回滚。(Citation: Microsoft Where to use TxF) 尽管已弃用,但 TxF 应用程序编程接口(API)在 Windows 10 中仍然启用。(Citation: BlackHat Process Doppelgänging Dec 2017) 攻击者可能滥用 TxF 执行 [Process Injection](https://attack.mitre.org/techniques/T1055) 的一种无文件变体。与 [Process Hollowing](https://attack.mitre.org/techniques/T1055/012) 类似,进程替身涉及替换合法进程的内存,从而实现可能规避防御和检测的隐蔽恶意代码执行。进程替身对 TxF 的使用还避免了使用受高度监控的 API 函数,如 <code>NtUnmapViewOfSection</code>、<code>VirtualProtectEx</code> 和 <code>SetThreadContext</code>。(Citation: BlackHat Process Doppelgänging Dec 2017) 进程替身通过 4 个步骤实现 (Citation: BlackHat Process Doppelgänging Dec 2017): * Transact(事务)—— 使用合法可执行文件创建 TxF 事务,然后用恶意代码覆盖该文件。这些更改将被隔离,仅在事务上下文中可见。 * Load(加载)—— 创建共享内存段并加载恶意可执行文件。 * Rollback(回滚)—— 撤销对原始可执行文件的更改,从而有效地从文件系统中移除恶意代码。 * Animate(激活)—— 从被污染的内存段创建进程并启动执行。 此行为很可能不会导致权限提升,因为被注入的进程是由注入进程衍生出来的(因而继承了注入进程的安全上下文)。然而,通过进程替身进行的执行可能规避安全产品的检测,因为执行被掩盖在合法进程之下。
来源归属
来源:MITRE ATT&CK · 置信度:high
平台
- Windows
战术
Stealth
参考来源
- https://attack.mitre.org/techniques/T1055/013
- https://www.blackhat.com/docs/eu-17/materials/eu-17-Liberman-Lost-In-Transaction-Process-Doppelganging.pdf
- https://msdn.microsoft.com/library/windows/desktop/dd979526.aspx
- https://msdn.microsoft.com/library/windows/desktop/bb968806.aspx
- https://msdn.microsoft.com/library/windows/desktop/aa365738.aspx