powershell -enc参数无法解码base64编码payload的解决方案

时间:2024-10-09 08:06:07

powershell的-enc参数允许传入一个base64编码过的powershell脚本字符串作为参数来执行该powershell脚本,该方法常被用于绕过杀毒软件的主动防御机制。

今天下午在做一个后门程序时,通过在线base64编码网站编码的字符串竟然没法被powershell的-enc参数解析,解析时全是乱码,通过查找资料终于解决了这个问题

故将这个问题记录下来以备后续使用

方法引用自:http://www.pstips.net/question/5827.html

可以使用如下脚本,对所需powershell脚本进行编码,所得字符串可以被powershell的-enc参数解析

$fileContent = “所要编码的脚本”
$bytes = [System.Text.Encoding]::Unicode.GetBytes($fileContent)
$encodedCommand = [Convert]::ToBase64String($bytes)
echo $encodedCommand

编码后的脚本可以通过如下命令解析执行

powershell -enc $encodedCommand