免杀-APC注入

APC注入

0x00 APC 介绍

APC 异步过程调用

是一个链状的数据结构

可以让一个线程在其本应该的执行步骤前执行其他代码,

每个线程都维护这一个APC链。

当线程从等待状态苏醒后,会自动检测自己得APC队列中是否存在APC过程。

所以只需要将目标进程的线程的APC队列里面添加APC过程,当然为了提高命中率可以向进程的所有线程中添加APC过程。

然后促使线程从休眠中恢复就可以实现APC注入。

APC注入的一些前置如下:

  • 线程在进程内执行
  • 线程会调用在APC队列中的函数
  • 应用可以给特定线程的APC队列压入函数(有权限控制)
  • 压入队列后,线程将按照顺序优先级执行(FIFO)
  • 这种注入技术的缺点是只有当线程处在alertable状态时才去执行这些APC函数