psobf:一款针对PowerShell的代码混淆处理工具

2024-10-15 47 0

关于psobf

psobf是一款针对PowerShell的代码混淆处理工具,广大安全研究人员可以轻松使用该工具完成对PowerShell代码的安全加固和混淆处理。

psobf基于Go语言开发,是一款PowerShell脚本工具。该工具的主要目的是混淆 PowerShell 代码,增强代码的安全性。该脚本提供 5 个级别的混淆,从基本混淆到脚本碎片化。这允许用户根据自己的特定需求定制混淆级别。

功能介绍

1、混淆级别:四个混淆级别,每个级别都比前一个更复杂。

2、通过将脚本拆分成单个字符来进行 1 级混淆。

3、脚本的 2 级为 Base64 编码。

4、级别 3 使用不同的 PowerShell 解码方法替代 Base64 编码。

5、脚本的 4 级压缩和 Base64 编码将在运行时解码和解压缩。

5、级别 5 将脚本分割成多个部分并在运行时重建。

6、压缩和编码:级别 4 包括在以 base64 编码之前对脚本进行压缩。

7、变量混淆:添加了一个函数来混淆 PowerShell 脚本中的变量名称。

8、随机字符串生成:生成随机字符串以混淆变量名。

工具要求

Go

工具安装

由于该工具基于Go开发,因此我们首先需要在本地设备上安装并配置好最新版本的Go环境。

源码获取

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/TaurusOmar/psobf.git

Go安装

go install github.com/TaurusOmar/psobf@latest

工具使用

混淆级别示例

混淆级别分为5个选项,首先你需要有一个需要混淆的PowerShell文件,假设你有一个文件,文件名称script.ps1如下:

Write-Host "Hello, World!"

级别 1:基本混淆

使用 1 级混淆运行脚本:

./obfuscator -i script.ps1 -o obfuscated_level1.ps1 -level 1

这将生成一个obfuscated_level1.ps1以模糊化内容命名的文件。结果将是你的脚本的一个版本,其中每个字符都用逗号分隔并在运行时组合。

结果(级别 1):

$obfuscated = $([char[]]("`W`,`r`,`i`,`t`,`e`,`-`,`H`,`o`,`s`,`t`,` `,`"`,`H`,`e`,`l`,`l`,`o`,`,` `,`W`,`o`,`r`,`l`,`d`,`!`,`"`") -join ''); Invoke-Expression $obfuscated

第 2 级:Base64 编码

使用 2 级混淆运行脚本:

./obfuscator -i script.ps1 -o obfuscated_level2.ps1 -level 2

这将生成一个obfuscated_level2.ps1以 base64 编码的内容命名的文件。执行此脚本时,它将在运行时解码并运行。

结果(级别 2):

$obfuscated = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String('V3JpdGUtSG9zdCAiSGVsbG8sIFdvcmxkISI=')); Invoke-Expression $obfuscated

第 3 级:替代 Base64 编码

使用 3 级混淆执行脚本:

./obfuscator -i script.ps1 -o obfuscated_level3.ps1 -level 3

此级别使用 PowerShell 中略有不同的 base64 编码和解码形式,添加了额外的混淆层。

结果(级别 3):

$e = [System.Convert]::FromBase64String('V3JpdGUtSG9zdCAiSGVsbG8sIFdvcmxkISI='); $obfuscated = [System.Text.Encoding]::UTF8.GetString($e); Invoke-Expression $obfuscated

级别 4:压缩和 Base64 编码

使用4级混淆执行脚本:

./obfuscator -i script.ps1 -o obfuscated_level4.ps1 -level 4

此级别在对脚本进行 base64 编码之前对其进行压缩,使分析更加复杂。结果将在运行时解码和解压。

结果(级别 4):

$compressed = 'H4sIAAAAAAAAC+NIzcnJVyjPL8pJUQQAlRmFGwwAAAA='; $bytes = [System.Convert]::FromBase64String($compressed); $stream = New-Object IO.MemoryStream(, $bytes); $decompressed = New-Object IO.Compression.GzipStream($stream, [IO.Compression.CompressionMode]::Decompress); $reader = New-Object IO.StreamReader($decompressed); $obfuscated = $reader.ReadToEnd(); Invoke-Expression $obfuscated

第五级:脚本碎片化

使用 5 级混淆运行脚本:

./obfuscator -i script.ps1 -o obfuscated_level5.ps1 -level 5

此级别将脚本分割成多个部分,并在运行时重新构建。

结果(级别 5):

$fragments = @(

'Write-',

'Output "',

'Hello,',

' Wo',

'rld!',

'"'

);

$script = $fragments -join '';

Invoke-Expression $script

工具使用演示

项目地址

psobf:【GitHub传送门


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

办事处网络安全监控与事件响应;国外员工终端安全性怎么保障 | FB甲方群话题讨论
拿不下总统之位,那就用热加载拿下验证码识别与爆破好了!
Sooty:一款SoC分析一体化与自动化CLI工具
shiro CVE-2016-6802 路径绕过(越权)
Apache Solr 身份验证绕过漏洞(CVE-2024-45216)详解
llama_index的CVE-2024-4181漏洞根因分析

发布评论