freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

渗透测试 | 攻击者如何欺骗 POWERSHELL 安全日志并绕过 AMSI
anye 2024-06-22 15:20:14 114695

近年来,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​ 

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

1719040403_6676799305bf213f68812.png!small

​ 所有语言编译器都以这种方式工作,在 PowerShell 中创建 ScriptBlock 时也不例外。所有 PowerShell AST 的父节点是 ScriptBlock AST,除了树的子节点外,此对象还包含许多属性。其中一个属性是 Extent,就我们的目的而言,可以将其视为 ScriptBlock 的字符串表示形式。尽管它确实具有一些其他属性:1719040414_6676799e2478d80faaf83.png!small

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

可试读前30%内容
¥ 19.9 全文查看
9.9元开通FVIP会员
畅读付费文章
最低0.3元/天
# 系统安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 anye 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
anye LV.2
专注于车联网安全研究
  • 5 文章数
  • 5 关注者
利用init_module绕过SELinux
2025-02-19
Python的Pytoileur包存在shellcode
2024-06-04
渗透测试 | 如何通过git clone CVE-2024-32002 实现RCE
2024-05-20