点击蓝字 关注我们
免责声明
本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。
如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。
文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。
关于
利用 TLS 回调执行有效负载,而不在远程进程中生成任何线程
RemoteTLSCallbackInjection
概述
此方法利用 TLS 回调来执行有效负载,而不在远程进程中生成任何线程。此方法受到无线程注入的启发,因为 RemoteTLSCallbackInjection 不会调用任何 API 调用来触发注入的有效负载。
实施步骤
PoC 遵循以下步骤:
-
使用该函数创建一个挂起的进程
CreateProcessViaWinAPIsW
(即RuntimeBroker.exe
)。 -
获取远程进程映像基地址,然后读取进程的 PE 标头。
-
获取 TLS 回调函数的地址。
-
使用运行时检索的值修补固定的 shellcode(即g_FixedShellcode )。该 shellcode 负责恢复 TLS 回调函数地址的原始字节和内存权限。
-
注入两个 shellcode:
g_FixedShellcode
和主要有效负载。 -
修补 TLS 回调函数的地址并将其替换为我们注入的有效负载的地址。
-
恢复进程。
然后, shellcodeg_FixedShellcode
将通过在调用主有效负载之前恢复原始 TLS 回调的原始地址来确保主有效负载仅执行一次。TLS 回调可以在进程的生命周期内执行多次,因此通过将原始代码路径执行恢复到原始 TLS 回调函数来控制有效负载被触发的次数非常重要。
演示
下图显示了我们的实现,RemoteTLSCallbackInjection.exe
生成 acmd.exe
作为其主要负载。
项目地址
https://github.com/Maldev-Academy/RemoteTLSCallbackInjection
欢迎关注SecHub网络安全社区,SecHub网络安全社区目前邀请式注册,邀请码获取见公众号菜单【邀请码】
#
企业简介
赛克艾威 – 网络安全解决方案提供商
北京赛克艾威科技有限公司(简称:赛克艾威),成立于2016年9月,提供全面的安全解决方案和专业的技术服务,帮助客户保护数字资产和网络环境的安全。
安全评估|渗透测试|漏洞扫描|安全巡检
代码审计|钓鱼演练|应急响应|安全运维
重大时刻安保|企业安全培训
联系方式
电话|010-86460828
官网|https://sechub.com.cn
关注我们
公众号:sechub安全
哔哩号:SecHub官方账号
原文始发于微信公众号(SecHub网络安全社区):不生成线程的远程TLS回调注入Poc