一键免杀Exe2PowerShell PowerShell2EXE PS2EXE EXE2PS1

admin 2023年8月3日14:05:56评论67 views字数 2479阅读8分15秒阅读模式

在不同的环境,管理员水平参差不齐,配置的防护策略不一,有些禁止执行PowerShell,遇到这种环境,我们需要执行一些PowerShell脚本,可以将ps1转成exe来执行。当然也有遇到禁止基于web执行exe的情况,可以将后缀改成txt等格式来执行,但也有可能防护软件不看后缀而是看MZ头,这种情况改文件后缀是没用的,可以尝试将EXE转成ps1。又或者说杀软对EXE分析比较透查杀比较强,上传exe无法使用,这种情况也需要将exe转成ps1来执行,exe转ps1可轻松过微软的Defender、360等杀软,其它未测,大家自行测试,两年前的Ladon.ps1至今都免杀360,但EXE很快被杀,可见360对于ps1脚本查杀能力很弱。转成powershell就是有签名的白名单程序啊,对杀软来说是减恶意分值的,又方便内存加载文件不落地执行。

PowerShell2EXE

文本框输入PowerShell代码,点击PowerShell->EXE即可生成tmp.exe

一键免杀Exe2PowerShell PowerShell2EXE PS2EXE EXE2PS1

Exe2PowerShell

在文本框中输入PowerShell代码,点击EXE->PowerShell即可,系统默认禁止执行ps1脚本,可以使用以下命令绕过运行powershell脚本。

powershell -exec bypass ./tmp.ps1

一键免杀Exe2PowerShell PowerShell2EXE PS2EXE EXE2PS1

PS:如果使用LadonGui工具先将powershell代码转成exe,再将exe转成powershell脚本,生成的ps1脚本可直接执行。

下面是3年前 免杀Ladon或自定义EXE教程

http://k8gege.org/Ladon/Exe2Powershell.html

背景

有很多人和我说exe被杀了怎么办?我问大家一句mimikaz被杀了你怎么办,是不是用它的PowerShell版或者转成其它格式来免,当然也可以直接修改源码免,但由于是公开的里面很多函数都被杀软盯得很死,加上很多人根本不是很懂代码,对一个公开并且很受欢迎的工具做源码免杀也是很花时间的。所以网上有不少免杀MZ的方法,EXE不能用时大家也会去用PowerShell版远程加载读取等,怎么到Ladon这你们就不知道怎么办了呢?不是一样的原理吗?难道是因为PS版体积较大?有些PY或GO写的工具先不说一般最小就2-3M,有些工具甚至几M甚至几十M也就一个功能你都肯传到目标,而那个功能Ladon也有甚至可能比它还好。Ladon就算是PowerShell版也不过2-3M,能为了一个功能上传几十M,怎么就不能传2-3M的PS版Ladon?难道打算上传一堆几M或十几M的工具到目标?不是吧,阿SIR

由于PowerShell版我也很少用到,所以Github上只转到6.6版本,其它版本大家可以按需转

https://github.com/k8gege/PowerLadon (9.23测试,世界杀软网全免,本地卡巴全免)

免杀原理

由于很多杀软对于powershell脚本的查杀能力比较差,所以可以将.NET程序转成PowerShell脚本,当然并非是反编译EXE再将代码转成PowerShell,这种方法一是难度大又麻烦吃力不讨好,PowerShell的兼容性我想大家应该深受其害,有些函数在C#里可用,但转成powershell可能兼容问题,所以最佳方案是转成BYTE、HEX、BASE64、ASCII、AES等(当初Python版的SCRUN免杀CS的套路在任何语言都可用),比如说大家可能看到网上有利用GO语言AES加密免杀CS等文章,这些方法我说过几次了?所以再次强调一下要懂得举一反三,你可以百度搜索C语言AES算法,然后加密CS,或者其它语言也可以。

内存加载

首先因为大部分杀软只是把Powershell当成文本来样,目前应该没几个可以模拟PowerShell或Hook查看最终执行的杀软。所以稍威加密下我们的程序,杀软由于扫描文本未发现恶意字符串或特定函数,那么基本上就不杀了,静态全免,但是如果你再把加密数据还原成EXE,那它肯定又杀了,所以我们得直接内存加载,方法很多,我们用.NET自带函数反射加载执行程序即可,PowerShelle写法[Reflection.Assembly]::Load,再通过反射调用传参。

Ladon免杀

首先将需要转的exe直接拖放至文本框,如Ladon.exe,点击EXE->PowerShell会生成一个脚本。

源码自行反编译此程序查看即可(注意反编译和逆向是两个概念,点个按钮反编译没任何难度 )

复制红线所示@和@里的字符串很长可能有2M
一键免杀Exe2PowerShell PowerShell2EXE PS2EXE EXE2PS1

替换Ladon6.6.ps1里面那个很长的字符串,注意长度那里也要替换如637440替换成1708544
一键免杀Exe2PowerShell PowerShell2EXE PS2EXE EXE2PS1

接下来把新版本的新增的功能参数添加上去即可,看模块对应参数个数来加就可以了
一键免杀Exe2PowerShell PowerShell2EXE PS2EXE EXE2PS1

EXE转PowerShell

上面教大家转Ladon,但是其它的EXE或DLL怎么用?以数学加法运算为例子

namespace Math{public class Methods{public Methods(){}public static int add(int a, int b){return a+b;}public int sub(int a, int b){return a-b;}}}

命令: 

csc.exe /target:library Math.cs

编译以上代码得到DLL,使用LadonGui一键转换得到PS1,在结尾处追加调用方法

其它程序同理,你写的EXE/DLL是什么命名空间、什么方法对应添加到最后一行
如图计算500+20的结果
一键免杀Exe2PowerShell PowerShell2EXE PS2EXE EXE2PS1

为什么换其它语言就免杀?

由于语言结构特性等,特别新出的语言,杀软要查杀它前提是不是得去研究那门语言的结构特征,这就是为什么同样的方法换个语言就

九种混淆方法

Ladon九种PowerShell命令混淆加密免杀方法
http://k8gege.org/Ladon/PowershellEncode.html


原文始发于微信公众号(K8实验室):一键免杀Exe2PowerShell PowerShell2EXE PS2EXE EXE2PS1

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年8月3日14:05:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一键免杀Exe2PowerShell PowerShell2EXE PS2EXE EXE2PS1https://cn-sec.com/archives/1930879.html

发表评论

匿名网友 填写信息