T1055.004: 异步过程调用
摘要
攻击者可能通过异步过程调用(APC)队列将恶意代码注入进程,以规避基于进程的防御,并可能提升权限。APC 注入是一种在另一个活动进程的地址空间中执行任意代码的方法。 APC 注入通常通过以下方式执行:将恶意代码附加到进程线程的 APC 队列 (Citation: Microsoft APC)。排队的 APC 函数在线程进入可变更状态时执行。(Citation: Microsoft APC) 首先使用原生 Windows API 调用(如 <code>OpenThread</code>)创建指向已有受害进程的句柄。此时可以使用 <code>QueueUserAPC</code> 调用一个函数(如指向恶意 DLL 的 <code>LoadLibrayA</code>)。 APC 注入的一种变体被称为「Early Bird 注入」,它涉及创建一个挂起的进程,在其中可以通过 APC 在该进程入口点(以及可能随后的反恶意软件钩子)之前写入并执行恶意代码。(Citation: CyberBit Early Bird Apr 2018) AtomBombing (Citation: ENSIL AtomBombing Oct 2016) 是另一种变体,它利用 APC 调用先前写入全局原子表(global atom table)的恶意代码。(Citation: Microsoft Atom Table) 在另一个进程的上下文中运行代码可能允许访问该进程的内存、系统/网络资源,并可能获得提升的权限。通过 APC 注入进行的执行也可能规避安全产品的检测,因为执行被掩盖在合法进程之下。
来源归属
来源:MITRE ATT&CK · 置信度:high
平台
- Windows
战术
Stealth
参考来源
- https://attack.mitre.org/techniques/T1055/004
- https://www.cyberbit.com/blog/endpoint-security/new-early-bird-code-injection-technique-discovered/
- https://blog.ensilo.com/atombombing-brand-new-code-injection-for-windows
- https://msdn.microsoft.com/library/windows/desktop/ms649053.aspx
- https://msdn.microsoft.com/library/windows/desktop/ms681951.aspx