H

PSOBF -Powershell obfuscator

AVvXsEi0Nkj2pYfytR3MP4aH6QnUVqrvmlVHLp3FCgGzvbN9_dnxSEB0w0ks1tQjZVhFXFH3zXlSlJAhJEe_X-ryCS2_3Z_0B5SbbgPTV7PsLjVz7xfnLq-IaF-He11ie2g_yGbbCM65gYNGbErJ0YoeL1wsHBW8LcY4N52l-MvTsIYXORE2S6ozV3wFtC3p04rS=w640-h400

用GO编写的Powershell脚本混淆的工具。该计划的主要目的是混淆PowerShell代码,以使其分析和检测更加困难。该脚本提供了5个层次的混淆,从基本混淆到脚本碎片。这使用户可以根据其特定需求来量身定制混淆级别。
./psobf -h
██████╗███████╗███████╗██████╗
██╔══████╔════╝██╔═══════███╔═════╝
██████╔╝███████╗██║██████╔╝███████╗██║
██╔═══╝██╔═══╝
██║██║
╚═╝╚═══════╝╚════╝
@taurusomar
v.1.0
USAGE:/obfuscator -i inputfile -o outputfile -level 1 | 2 | 2 | 3 | 4 | 5
Options:
- 我字符串
PowerShell脚本文件的名称。
-Level int
混淆水平(1至5)。 (默认1)
-o字符串
混淆脚本的输出文件的名称。 (默认'obfuscated.ps1')
混淆级别:
1:基本的混淆,将脚本分为单个字符。
2: base64脚本编码。
3:替代基本64用不同的powershell解码方法编码。
4:脚本的压缩和基本64编码将在运行时解码和解压缩。
5:脚本分解为多个部分,并在运行时重建。

Features:​

混淆级别:四个级别的混淆,每个级别都比上一个更为复杂。通过将脚本分配到单个字符中,Level 1观察。 2级基本64编码脚本。使用不同的powershell解码方法编码的3级替代基本64。脚本的4级压缩和基本64编码将在运行时解码和解压缩。 5级将脚本分解为多个部分,并在运行时重建。压缩和编码:级别4包括脚本压缩,然后在Base64中编码它。添加了可变的obfuscation:一个函数以混淆powershell脚本中的变量名称。随机字符串Generation:随机字符串是为可变名称混淆而生成的。
AVvXsEi0Nkj2pYfytR3MP4aH6QnUVqrvmlVHLp3FCgGzvbN9_dnxSEB0w0ks1tQjZVhFXFH3zXlSlJAhJEe_X-ryCS2_3Z_0B5SbbgPTV7PsLjVz7xfnLq-IaF-He11ie2g_yGbbCM65gYNGbErJ0YoeL1wsHBW8LcY4N52l-MvTsIYXORE2S6ozV3wFtC3p04rS=w640-h400

Install​

GO安装github.com/taurusomar/psobf@latest

Example of Obfuscation Levels​

混淆级别分为5个选项。首先,您需要有一个要混淆的powershell文件。假设您有一个名为script.ps1的文件,带有以下内容:
写作主持人“你好,世界!”

Level 1: Basic Obfuscation​

以1级混淆运行脚本。
./obfuscator -i script.ps1 -o obfuscated_level1.ps1 -level 1这将生成一个名为obfuscated_level1.ps1的文件,并带有混淆的内容。结果将是脚本的一个版本,其中每个字符都被逗号分隔并在运行时组合。Result (level 1)$ obfuscated=$([char [](' ``,'',h h` h` Invoke-Expression $ obfustated

Level 2: Base64 Encoding​

使用2级obfuscation :运行脚本
./obfuscator -i script.ps1 -o obfuscated_level2.ps1 -level 2这将生成一个名为obfuscated_level2.ps1的文件,其中base64中的内容。执行此脚本时,它将在运行时进行解码并运行。Result (level 2)$ obfuscated=[System.Text.Coding] :UTF8.GetString([[System.Convert] :Frombase64String('v3jpdgutsg9zdcaccaisgvsbg8sifdvcmxkisi='v3jpdgutsg9zdcaccaisgvsbg8sifdvcmxkisi=''''''''''');调用表达$混淆

Level 3: Alternative Base64 Encoding​

用3级obfuscation执行脚本:
./obfuscator -i script.ps1 -o obfuscated_level3.ps1 -level 3此级别使用base64编码和解码的形式略有不同,在powerShell中添加了额外的混淆层。Result (level 3)$ e=[SYSTEM.CONVERT] :FROMBASE64STRING('V3JPDGUTSG9ZDCAISGVSBG8SIFDVCMXKISI='); $ obfuscated=[System.Text.Coding] :UTF8.GETSTRING($ e);调用表达$混淆

Level 4: Compression and Base64 Encoding​

用4级obfuscation执行脚本:
./obfuscator -i script.ps1 -o obfuscated_level4.ps1 -level 4此级别在base64中编码它之前会压缩脚本,从而使分析更加复杂。结果将在运行时进行解码和解压缩。Result (level 4)$ compressed='H4SiaaaaaaaaaAc+nizcnjvyjpl8pjuqqalrmfgwwaaaa='; $ bytes=[system.convert] : frombase64string($ compressed); $ stream=new-object io.memorystream(,$ bytes); $ deckSpressed=new-object io.compression.gzipstream($ stream,[io.compression.compressionmode] :decompress); $ reader=new-object io.streamreader($ deckompresed); $ obfuscated=$ reader.readtoend(); Invoke-Expression $ obfuscated

Level 5: Script Fragmentation​

使用5级obfuscation :运行脚本
./obfuscator -i script.ps1 -o obfuscated_level5.ps1-级别5此级别将脚本分为多个部分,并在运行时重建它。Result (level 5)$ fragments=@((
'写-',
'输出'',
'你好,',
'wo',
'rld!',
'''
);
$ script=$ fragments -join'';
Invoke-Expression $脚本此程序用于教育和研究目的。它不应用于恶意活动。
 
后退
顶部