不生成线程的远程TLS回调注入Poc




点击蓝字 关注我们

不生成线程的远程TLS回调注入Poc

免责声明

本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。

如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。

文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。

关于

利用 TLS 回调执行有效负载,而不在远程进程中生成任何线程

RemoteTLSCallbackInjection

概述

此方法利用 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 回调函数来控制有效负载被触发的次数非常重要。

演示

下图显示了我们的实现,RemoteTLSCallbackInjection.exe生成 acmd.exe作为其主要负载。

不生成线程的远程TLS回调注入Poc


项目地址

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



欢迎关注SecHub网络安全社区,SecHub网络安全社区目前邀请式注册,邀请码获取见公众号菜单【邀请码】

#


企业简介   


赛克艾威 – 网络安全解决方案提供商


       北京赛克艾威科技有限公司(简称:赛克艾威),成立于2016年9月,提供全面的安全解决方案和专业的技术服务,帮助客户保护数字资产和网络环境的安全。


安全评估|渗透测试|漏洞扫描|安全巡检

代码审计|钓鱼演练|应急响应|安全运维

重大时刻安保|企业安全培训

不生成线程的远程TLS回调注入Poc

联系方式

电话|010-86460828 

官网|https://sechub.com.cn

不生成线程的远程TLS回调注入Poc

关注我们

不生成线程的远程TLS回调注入Poc
不生成线程的远程TLS回调注入Poc
不生成线程的远程TLS回调注入Poc

公众号:sechub安全

哔哩号:SecHub官方账号


原文始发于微信公众号(SecHub网络安全社区):不生成线程的远程TLS回调注入Poc

版权声明:admin 发表于 2024年2月26日 上午10:16。
转载请注明:不生成线程的远程TLS回调注入Poc | CTF导航

相关文章