PowerShell木马免杀利器: Invoke-Obfuscation(过火绒)
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的动态扫描