渗透测试 | 攻击者如何欺骗 POWERSHELL 安全日志并绕过 AMSI

2024-07-04 298 0

近年来,PowerShell tradecraft 在渗透测试人员、红队以及某种程度上的 APT 中的受欢迎程度有所下降。造成这种情况的原因有很多,但核心是在 PowerShell v5和 AMSI 中引入了 PowerShell 安全日志记录。这些为蓝队提供了应对 PowerShell 威胁的重要工具。

自这些介绍以来,已经发布了几个 AMSI 绕过,例如 Matt Grabber 的反射旁路或 Rastamouse 对 AmsiScanBuffer的修补,并且已经发布了一些 ScriptBlock 日志记录绕过,例如 Cobbr 的 ScriptBlock 日志记录旁路。但这些都涉及完全禁用日志记录。

ScriptBlock Smuggling 允许攻击者在绕过 AMSI 的同时将任何任意消息欺骗到 ScriptBlock 日志中。为了让事情变得更有趣,它还不需要执行任何反射或内存修补。特别是AMSI补丁,已经开始成为许多AV和EDR解决方案的目标,因此这是该技术的一大优势。本文将解析攻击者是如何欺骗 POWERSHELL 安全日志并绕过 AMSI,仅供网安人员参考,并制定相应的针对性防御措施。注:渗透测试需遵守我国相关法规,切勿将技术用于任何违法行为,任何违法行为与本文无关。

在深入了解 ScriptBlock Smuggling 的工作原理之前,我们需要简要概述 PowerShell 如何利用 AST 以及 AST 是什么。在不深入研究编译器和代码背后的计算机科学的情况下,AST 是一种树状结构,编译器从源代码创建它,以便能够创建机器代码。如果你的源代码如下所示:

while b ≠ 0​: 
        if a > b​: 
                a = a − b​ 
        else​ 
               b = b − a​ 
return a​ 

然后,编译器会将其转换为如下所示:

渗透测试 | 攻击者如何欺骗 POWERSHELL 安全日志并绕过 AMSI插图

​ 所有语言编译器都以这种方式工作,在 PowerShell 中创建 ScriptBlock 时也不例外。所有 PowerShell AST 的父节点是 ScriptBlock AST,除了树的子节点外,此对象还包含许多属性。其中一个属性是 Extent,就我们的目的而言,可以将其视为 ScriptBlock 的字符串表示形式。尽管它确实具有一些其他属性:渗透测试 | 攻击者如何欺骗 POWERSHELL 安全日志并绕过 AMSI插图1

那么,这对 PowerShell 中的安全功能有何重要意义?好吧,如果我们查看 PowerShell GitHub中的代码,我们会在 CompiledScriptBlock.cs


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论