Invoke-PSImage:将PS脚本隐藏进PNG像素中并用一行指令去执行它

今天给大家介绍的是一个名叫Invoke-PSImage的Power Shell脚本,而这个脚本可以将目标PS脚本嵌入到一个PNG图片文件的像素点中,并允许我们使用一行指令来执行该脚本。

Invoke-PSImage

Invoke-PSImage可以将一个PowerShell脚本中的字节嵌入到PNG图像文件的像素之中,并生成一行执行命令来帮助我们从文件或Web(传递-Web标记)执行它们。

它会利用图片中每个像素点最后4位有效位的2个颜色值来存储Payload数据,虽然图片质量会受到影响,但是一般来说是看不出来有多大区别的。图片需要存储为PNG格式,由于Payload数据存储在颜色值中,因此这种格式可以进行无损压缩并且不会影响到Payload的执行。它可以接受目前绝大多数的图片类型作为输入,但输出必须为PNG格式,因为输出的图片数据需要是无损的。

图片的每一个像素都需要存储脚本的一个字节,所以你需要根据脚本中的字节数据大小来选择图片(尽可能多的像素点)。例如,Invoke-Mimikatz需要一张1920x1200的图片来存储。

参数

-Script[filepath] 需要嵌入在图片中的脚本路径。 -Image[filepath] 需要嵌入的图片文件路径。 -Out[filepath] 输出文件路径。 -Web 输出一条用于读取图片文件的命令,你需要在主机中托管该图片,然后向命令中插入一条URL地址。

例子

创建一张图片,并在其中嵌入脚本”Invoke-Mimikatz.ps1”,然后输出一条执行命令,并从磁盘中执行Payload:

PS>Import-Module.\Invoke-PSImage.ps1

PS>Invoke-PSImage-Script .\Invoke-Mimikatz.ps1 -Image .\kiwi.jpg -Out .\evil-kiwi.png

   [Oneliner to execute from a file]

创建一张图片,并在其中嵌入脚本”Invoke-Mimikatz.ps1”,然后输出一条执行命令,并从Web端执行Payload(你还需要Web主机托管改图片,并编辑URL地址):

PS>Import-Module.\Invoke-PSImage.ps1

PS>Invoke-PSImage-Script .\Invoke-Mimikatz.ps1 -Image .\kiwi.jpg -Out .\evil-kiwi.png -Web

   [Oneliner to execute from the web]

执行一张托管在Web端的图片Payload:

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-12-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术博文

WIN10关机--常用的三种方法

1、开始菜单的关机选项 其实Win10恢复了开始菜单,在Win10系统开始菜单的顶部即可看到电源按钮状的“关机选项”,点击“关机选项”按钮,在弹出的菜单中选择“...

3057
来自专栏腾讯移动品质中心TMQ的专栏

基于自定义向导的C++单元测试环境自动化配置

导语:相信使用过Visual Studio的小伙伴都感受过VS向导的强大,通过应用程序向导,我们可以很方便地搭建应用程序,通过代码向导,可以大大提高我们编写代码...

20310
来自专栏iOS开发攻城狮的集散地

Xcode常用快捷键

2476
来自专栏小白安全

Invoke-PSImage:将PS脚本隐藏进PNG像素中并用一行指令去执行它

Invoke-PSImage Invoke-PSImage可以将一个PowerShell脚本中的字节嵌入到PNG图像文件的像素之中,并生成一行执行命令来...

2879
来自专栏跟着阿笨一起玩NET

Win7系统中必需记住的14个常用快捷键

在使用电脑时,多多少少地都会用到一些快捷键,尤其是在玩游戏,或使用一些软件时。快捷键不仅方便,如果用的好,甚至可以大大提升我们的工作效率。而且,快捷键不仅可以在...

781
来自专栏腾讯NEXT学位

使用Sublime Text编辑器 你所不知道的11个秘密

3127
来自专栏LIN_ZONE

laravel5.4+vue+element简单搭建(gulp+laravel Elixir)(转)

{ "private": true, "scripts": { "prod": "gulp --production", "dev": ...

993
来自专栏.Net移动开发

.Net语言 APP开发平台——Smobiler学习日志:如何在手机中调用邮件发送接口

最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便

1222
来自专栏Jerry的SAP技术分享

如何将UI5应用部署到Fiori On-Premise和On-Cloud的Launchpad上去

具体步骤参考我的博客: 如何将BSP应用配置成Fiori Launchpad上的一个tile

4386
来自专栏跟着阿笨一起玩NET

NuGet 无法连接到远程服务器-解决方法

安装EF4.3的步骤是首先安装VS扩展 NuGet,然后再使用NuGet安装EF程序包

2933

扫码关注云+社区

领取腾讯云代金券