前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >将PowerShell脚本编码到PNG文件

将PowerShell脚本编码到PNG文件

作者头像
Khan安全团队
发布2021-03-10 15:43:26
发布2021-03-10 15:43:26
1.6K00
代码可运行
举报
文章被收录于专栏:Khan安全团队Khan安全团队
运行总次数:0
代码可运行

调用-PSImage

Invoke-PSImage接收一个PowerShell脚本,并将脚本的字节编码为PNG图像的像素。它生成一个oneliner,用于从文件或从网络上执行。

它可以只使用有效载荷数据创建一个新的图像,也可以将有效载荷嵌入到现有图像的最不重要的字节中,使其看起来像一张实际的图片。图像被保存为PNG,并且可以无损压缩而不影响执行有效载荷的能力,因为数据存储在颜色本身。在创建新的图片时,普通的PowerShell脚本实际上被大大压缩了,通常生成的png的文件大小约为原始脚本的50%。

使用嵌入方法,每个像素中的2个颜色值中最不重要的4位被用来存放有效载荷。图像质量会因此受到影响,但看起来还是不错的。它可以接受大多数图像类型作为输入,但输出将始终是一个PNG,因为它需要无损。图像的每一个像素都用来容纳一个字节的脚本,所以你需要的图像的像素数至少与你脚本中的字节数相同。这很容易--例如,Invoke-Mimikatz适合放在1920x1200的图像中。

使用方法:

-Script [filepath] 要嵌入到图片中的脚本的路径。

-Out [filepath] 保存图片的文件(图片为PNG格式)。

-Image [filepath] 要嵌入脚本的图片。(可选) -图片 [文件路径] 要嵌入脚本的图片。

-WebRequest 使用 Net.WebClient 输出一个从网上读取图像的命令。你需要托管图像并将URL插入到命令中。

-使用 System.Windows.Forms.PictureBox 输出一个命令,用于从 Web 中读取图像。您需要托管图像并将URL插入到命令中。

例子

创建一个嵌入了脚本 "Invoke-Mimikatz.ps1 "的镜像,并输出一个oneliner从磁盘上执行。

代码语言:javascript
代码运行次数:0
运行
复制
PS>Import-Module .\Invok-PSImage.ps1。PS>Invoke-PSImage -Script .\Invok-Mimikatz.ps1 -Out .\evil-kiwi.png -Image .\kiwi.jpg

[从文件中执行Oneliner]

创建一个嵌入了 "Invoke-Mimikatz.ps1 "脚本的图片,并输出一个oneliner从网络上执行(你仍然需要托管图片和编辑URL)。

代码语言:javascript
代码运行次数:0
运行
复制
PS>Import-Module .\Invok-PSImage.ps1。PS>Invoke-PSImage -Script .\Invok-Mimikatz.ps1 -Out .\evil-kiwi.png -Image .\kiwi.jpg -WebRequest

[从网络上执行的Oneliner]

项目地址:

https://github.com/peewpw/Invoke-PSImage

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Khan安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档