0x00 混淆代码对于 powershell 绕过 AMSI 来说,混淆代码是绕过 AMSI 最基础的步骤,因为大部分绕过方法还是要执行 AMSI 语句,这个用来绕过的语句本身也是要被 AMSI 检测的,所以要对这个绕过语句进行混淆处理。这块严格来说不是绕过 AMSI,而是绕过 AMSI 对接的安全产品的规则,自带的 windows defender 的规则非常容易绕过。攻击姿势经过简单的分割测试,可以确定有如下规则字符串'AmsiUtils'字符串'amsiInitFailed'同时出现[Ref].Assembly.GetTypeGetFieldSetValue($null,$true)powershell 语法极为灵活,下面简单列举几种绕过的方法。使用 like 避免出现完整字符串 + 拆分成多条语句避免同时出现关键字对方法名进行字符串拼接拆分成变量除了手动混淆,也可以使用专门的混淆工具,如:https://github.com/danielbohannon/Invoke-Obfuscation不过要注意,一些混淆手法是对命令进行加密,再利用Invoke-Expression执行解密的命令,这样是无法绕过 AMSI 的,因为Invoke-Expression执行的命令将会被 AMSI 检测,效果如下:检测方法对于分割绕过,可以将同一 po
...
继续阅读
(2)