APC 注入是一种在单独的活动进程的地址空间中执行任意代码的方法。
APC 注入通常通过将恶意代码附加到进程线程的 APC 队列[1]来执行。排队的 APC 函数在线程进入可变状态时执行。[1]现有受害者进程的句柄首先使用本机 Windows API 调用创建,例如OpenThread. 此时QueueUserAPC可以用来调用一个函数。
APC 注入的一种变体,涉及创建一个暂停的进程,在该进程的入口点(以及可能的后续反恶意软件挂钩)之前,可以通过 APC 编写和执行恶意代码。AtomBombing 是另一种变体,它利用 APC 调用先前写入全局原子表的恶意代码。
步骤
- 找到在远程进程中注入代码的完美威胁。
- 将 shellcode 复制/传送到远程进程。
- 调用QueueAPC,这在远程进程中创建 APC 对象,并将该对象放入 APC 队列中以便稍后执行它。
- 将您的远程威胁设置为可变状态。
- 执行排队的 APC 对象。