Bypass 利用 TLS 回调执行 Shellcode

admin 2024年4月17日18:31:45评论9 views字数 626阅读2分5秒阅读模式

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

PoC 遵循以下步骤:

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

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

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

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

  5. 注入两个 shellcode:g_FixedShellcode和主要有效负载。

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

  7. 恢复进程。

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

Bypass 利用 TLS 回调执行 Shellcode

实现RemoteTLSCallbackInjection.exe,生成 acmd.exe作为其主要负载。

工具地址:

https://pan.quark.cn/s/faee129d32bb

原文始发于微信公众号(TtTeam):Bypass 利用 TLS 回调执行 Shellcode

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月17日18:31:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Bypass 利用 TLS 回调执行 Shellcodehttp://cn-sec.com/archives/2665585.html

发表评论

匿名网友 填写信息