Invoke-Obfuscation
简介
Invoke-Obfuscation工具下载地址: https://github.com/danielbohannon/Invoke-Obfuscation
这是一款针对PowerShell
文件的免杀工具, 此处对CS生成的PowerShell木马进行免杀
Invoke-Obfuscation是一款PowerShell混淆工具,可以将PowerShell脚本加密,使得它的检测和分析变得更加困难。该工具包含多种加密方法,可以单独使用也可以结合使用,以提高混淆的效果。Invoke-Obfuscation还有多个选项可以选择,如TOKEN、AST、STRING、ENCODING、COMPRESS和LAUNCHER,可以帮助你更好地混淆脚本
简单演示
1.CS生成ps木马
打开Cobalt Strike, 点击攻击>生成后门->Payload Generator

选择相应的监听, 生成powershell
木马

2.导入模块并加载
进入invoke-Obsfuscation
文件夹并打开powershell, 执行如下命令导入Invoke-Obfuscation
模块
Import-Module .\Invoke-Obfuscation.psd1
执行如下命令加载模块
Invoke-Obfuscation

随后进入工具命令行界面, 如下图所示, 该工具支持六种加密方式:
TOKEN: 将脚本转换为一个或多个PowerShell解析器令牌的序列
AST: 将脚本转换为抽象语法树
STRING: 混淆脚本中的字符串,使得脚本的意图变得模糊不清
ENCONDING: 将脚本转换为ASCII、Unicode或Base64编码
COMPRESS: 将脚本压缩,使得脚本的大小变小,从而使得脚本的传输和存储更加方便
LAUNCHER: 生成一个启动器,该启动器可以在目标系统上执行混淆后的脚本
3.输入要加密的脚本路径
set scriptpath C:\Users\hacker\Desktop\payload.ps1

4.加密脚本
此次我选择编码加密, 输入encoding
, 随后出现8种编码加密方式, 这里我简单介绍下常用的五种加密
ASCII编码
HEX(16进制)编码
octal(8进制)编码
Binary(2进制)编码
AES算法加密(最常用)

此处我选择5, 即AES算法加密
输入back
返回上级目录, 然后输入string
对脚本文件进行字符串混肴, 有三种字符串混肴方法, 此处我输入2选择了第二种

5.查看加密选项
可以看到加密前和加密后的脚本内容对比, 以及采用了何种加密方法和完整的加密命令
show options

6.输出脚本
输出加密后的脚本文件至工具目录
out test.ps1

杀软测试
火绒
使用火绒静态扫描脚本文件, 没有发现威胁

cmd命令行输入如下命令执行脚本, 火绒没有报毒, 成功过掉火绒动态扫描
PowerShell.exe -ExecutionPolicy Bypass -File .\test.ps1
至于为何要加上
-ExecutionPolicy Bypass
参数, 这是因为在默认情况下, powershell的安全策略规定不允许运行命令和文件, 但是可以通过添加此参数来绕过任意一个安全保护规则, 在真实的渗透环境中经常用到此参数来执行powershell脚本

WindowDefender
成功过掉WindowDefender的静态扫描

但是过不了WindowDefender的动态扫描

最后更新于