普通 APC注入
APC注入是一种在Windows操作系统中实现进程注入的技术。它利用了异步过程调用(Asynchronous Procedure Call)机制,允许在特定线程的上下文中异步执行代码。普通的APC注入通常需要目标线程进入“可警告(Alertable)”状态才能执行APC队列中的代码,这通常发生在线程调用如SleepEx、SignalObjectAndWait等函数时 。
EarlyBird APC注入
Early Bird APC注入是普通APC注入的一种变体,它主要针对创建时即被挂起的进程。这种技术利用了线程初始化时的行为,特别是调用未公开的NtTestAlert函数,该函数会清空并处理APC队列。通过在进程主线程的入口点之前执行注入的代码,Early Bird APC注入可以在进程开始执行前接管控制权,从而避开了反恶意软件产品的检测。
普通APC注入与EarlyBird注入的优劣
APC注入需要挂起的线程或可警告的线程才能成功执行shellcode,但是我们很难处于这些线程的状态,尤其在用户模式权限下。
与普通APC注入相比,Early Bird APC注入的优势在于它不需要目标线程进入Alertable状态,可以在进程启动的早期阶段执行注入操作,提高了注入的隐蔽性和成功率。
然而,Early Bird APC注入也有其局限性,比如它只能用于注入挂起的进程,并且在某些情况下可能会遇到32位和64位进程兼容性的问题
原文始发于微信公众号(蟹堡安全团队):普通APC注入与EarlyBird注入
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论