Waiting Thread Hijacking:基于线程自然唤醒的隐秘注入技术

💡 原文中文,约6500字,阅读约需16分钟。
📝

内容提要

等待线程劫持是一种隐蔽的进程注入技术,通过劫持等待状态的线程并修改其栈顶返回地址来执行payload。这种方法不创建新线程,避免监控,适用于对线程行为敏感的环境。其核心在于利用Windows线程调度机制,具有高隐蔽性和抗追踪性。

🎯

关键要点

  • 等待线程劫持是一种隐蔽的进程注入技术,通过劫持等待状态的线程执行payload。
  • 该技术不创建新线程,避免监控,适用于对线程行为敏感的环境。
  • 核心在于利用Windows线程调度机制,具有高隐蔽性和抗追踪性。
  • 技术原理包括查找进程PID,枚举等待状态线程,获取上下文,修改返回地址等步骤。
  • Windows线程调度状态由内核对象控制,ThreadState和WaitReason字段用于描述线程状态。
  • 选择WrQueue状态的线程进行劫持,因为其稳定性和不易被外部干扰。
  • 劫持控制流的方式依赖于修改栈顶返回地址,确保payload执行后能自然返回原逻辑。
  • 劫持流程包括枚举线程、获取返回地址、构造payload栈帧、恢复线程等步骤。
  • 成功注入后,控制台和Process Hacker中显示的注入地址一致,内存为RWX内存。
➡️

继续阅读