我有一个powershell.ps1脚本,我对其进行了如下的base64编码
$Base64 = [System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes('c:\path\to\powershell.ps1'));
现在,我已将此输出存储到base64.txt文件中。
我试图通过CMD如下启动该脚本,
powershell.exe -EncodedCommand (Base64String)
但是我最终遇到了以下错误
Cannot process the command because the value specified with -EncodedCommand is not properly encoded. The value must be Base64 encoded.
我意识到CMD没有占用整个(Base64String)。我的(Base64String)的全长是11,133个字符。但是CMD只接受8160个字符。
是否有任何方法或解决方法来运行此base64编码?
谢谢。
答案 0 :(得分:0)
这对我有用(myscript.ps1
包含 base64 编码的命令):
powershell -encodedcommand (Get-Content 'myscript.ps1' -Raw)
这与您在 Bash 中所做的非常相似:
$ powershell -encodedcommand `cat myscript.ps1`
Obs:解决一些评论,有时确实需要这样做。我的特殊用例是在检测我的纯文本 shell 代码的 Windows 机器上躲避 AV 的同时执行反向 shell。