RemotetlscallbackIndext方法利用TLS回调执行有效负载,而无需在远程过程中产生任何线程

admin 2025年2月23日01:03:42评论13 views字数 701阅读2分20秒阅读模式
RemotetlscallbackIndext方法利用TLS回调执行有效负载,而无需在远程过程中产生任何线程

此方法利用 TLS 回调来执行有效负载,而无需在远程进程中生成任何线程。此方法受到 无线程注入的启发 因为 RemoteTLSCallbackInjection 不会调用任何 API 调用来触发注入的有效负载。

实施步骤

PoC 遵循以下步骤:

  1. 使用CreateProcessViaWinAPIsW函数(即 RuntimeBroker.exe)创建一个暂停的进程。

  2. 获取远程进程映像基地址,然后读取该进程的 PE 头。

  3. 获取 TLS 回调函数的地址。

  4. 修补固定的 shellcode (即 g_FixedShellcode) 并使用运行时检索的值。此 shellcode 负责恢复 TLS 回调函数地址的原始字节和内存权限。

  5. 注入两个 shellcode:g_FixedShellcode 和主 payload。

  6. 修补 TLS 回调函数的地址并将其替换为我们注入的有效载荷的地址。

  7. 恢復過程。

然后, g_FixedShellcode shellcode将在调用主payload 之前恢复原始 TLS 回调的原始地址,以确保主 payload 只执行一次。TLS 回调可以在进程的整个生命周期内执行多次,因此通过将原始代码路径执行恢复到原始 TLS 回调函数来控制触发有效负载的次数非常重要。

演示

下图显示了我们的实现RemoteTLSCallbackInjection.exe,它生成一个cmd.exe 作为其主要有效载荷。

RemotetlscallbackIndext方法利用TLS回调执行有效负载,而无需在远程过程中产生任何线程

项目地址:

https://github.com/Maldev-Academy/RemoteTLSCallbackInjection

原文始发于微信公众号(Ots安全):RemotetlscallbackIndext方法利用TLS回调执行有效负载,而无需在远程过程中产生任何线程

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月23日01:03:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   RemotetlscallbackIndext方法利用TLS回调执行有效负载,而无需在远程过程中产生任何线程https://cn-sec.com/archives/3770596.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息