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

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

原文地址:https://www.cnblogs.com/zlgxzswjy/p/9275818.html

时间: 2024-08-07 09:11:19

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

C#解码base64编码二进制数据的方法

在Convert类的静态方法Convert.FromBase64String,可以讲base64编码的字符串解码为等效的byte []数组. using System; static class MyModClass { public static byte[] Base64DecodeString(this string inputStr) { byte[] decodedByteArray = Convert.FromBase64String(inputStr); return (decod

C#解码base64编码的二进制数据的代码

将做工程过程常用的代码片段做个珍藏,下边代码段是关于C#解码base64编码的二进制数据的代码.using System;static class MyModClass{public static byte[] Base64DecodeString(this string inputStr){byte[] decodedByteArray = Convert.FromBase64String(inputStr);return (decodedByteArray);}} 原文地址:https://

[编码解码] Base64 编码换行和+号遍空格的处理

Android自身带有Base64加密与解密的包,可以方便地加密密码方便传输. String base64Token = Base64.encodeToString(token.trim().getBytes(), Base64.NO_WRAP); byte[] mmmm = Base64.decode(base64Token,Base64.DEFAULT); 在用Base64加密做签权的时候用Base64.DEFAULT一直不能签权成功.最后用Base64.NO_WRAP成功了. 看起来用法与

base64编码、解码的C语言实现

转自:http://www.cnblogs.com/yejianfei/archive/2013/04/06/3002838.html base64是一种基于64个可打印字符来表示二进制数据的表示方法.由于26=64,所以每6位为一个单位,对应某个可打印字符.三个字节共24位,对应于4个base64单位,即3个字节需要用4个可打印字符来表示.它常用来作为电子邮件的传输编码.在base64中的可打印字符包括大写英文字母A-Z,小写英文字母a-z.阿拉伯数字0-9,这样共有62个字符,此外两个可打印

python中base64编码与解码

引言: 在一些项目中,接口的报文是通过base64加密传输的,所以在进行接口自动化时,需要对所传的参数进行base64编码,对拿到的响应报文进行解码: Base64编码是一种"防君子不防小人"的编码方式.广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有"=",生成的编码都是ascii字符.优点:速度快,ascii字符,肉眼不可理解缺点:编码比较长,非常容易被破解,仅适用于加密非关键信息的场合python2中进行Base64编码和解码&g

Base64编码和解码

Base64这是一个二进制编码方法转换成可打印字符.主要用于邮件传输. Base64将64人物(A-Z,a-z,0-9,+,/)由于基本字符集.把所有的符号转换成字符集. 编码: 编码每次3节转为4字节.若输入字节数不是3的倍数.则在末尾填充0字节使其长度为3的倍数. 对于3字节.每次取出6位,并在前面加入2位0构成一个字节.以此字节为下标查找Base64码表(例如以下图)输出相应字符. 每次将3字节转为4字节(3*8=4*6),直至得到整个输入串的编码结果.最后,若之前在输入中加入了1个0字节

Base64编码解码算法

Base64不是什么新奇的算法了,不过如果你没从事过页面开发(或者说动态页面开发,尤其是邮箱服务),你都不怎么了解过,只是听起来很熟悉. 对于黑客来说,Base64与MD5算法有着同样的位置,因为电子邮箱(e-mail)正文就是base64编码的. 那么,我们就一起来深入的探讨一下这个东东吧. 对于一种算法,与其问"它是什么?",不如问"它实现了什么?" Base64实现了:将任意字节转为可读字符的编码. 我们知道,除了页面上的文本,计算机中的数据还有很多是不可见的

JavaScript: 详解Base64编码和解码

转载自:http://my.oschina.net/goal/blog/201032#OSC_h2_11 摘要 Base64是最常用的编码之一,比如开发中用于传递参数.现代浏览器中的<img />标签直接通过Base64字符串来渲染图片以及用于邮件中等等.Base64编码在RFC2045中定义,它被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式. JavaScript Base64 Unicode UTF16 UTF8 编码 目录[-] 字符编码

openssl pem转cer文件 并用base64编码解码过程

#!/bin/bash#pem转ceropenssl x509 -outform der -in 3324861__ksjgs.com.pem -out ksjgs-bak.cer#aes 128加密并用base64编码openssl enc -aes-128-cbc -in ksjgs-bak.cer -out ksjgs-bak-enc.log -a #解密#base64解码base64 -d ksjgs-bak-enc.log > ksjgs-bak-unbase64.log#aes 12