跳转至

异步过程调用

对手可能会通过异步过程调用(APC)队列将恶意代码注入进程,以规避基于进程的防御并可能提升权限。APC注入是一种在单独的活动进程的地址空间中执行任意代码的方法。 APC注入通常通过将恶意代码附加到进程线程的APC队列(引用: Microsoft APC)来执行。排队的APC函数在线程进入可变状态时执行。(引用: Microsoft APC) 首先使用本机Windows API调用(如OpenThread)创建现有受害进程的句柄。此时可以使用QueueUserAPC调用函数(如指向恶意DLL的LoadLibrayA)。 一种称为“早鸟注入”的APC注入变体涉及创建一个挂起的进程,在进程入口点(以及可能的后续反恶意软件钩子)之前通过APC写入和执行恶意代码。(引用: CyberBit Early Bird Apr 2018) AtomBombing (引用: ENSIL AtomBombing Oct 2016) 是另一种变体,利用APC调用先前写入全局原子表的恶意代码。(引用: Microsoft Atom Table) 在另一个进程的上下文中运行代码可能允许访问进程的内存、系统/网络资源,并可能提升权限。通过APC注入执行还可能规避安全产品的检测,因为执行被掩盖在合法进程下。